Path: utzoo!attcan!uunet!mcsun!ukc!icdoc!qmw-cs!liam From: liam@cs.qmw.ac.uk (William Roberts) Newsgroups: comp.protocols.nfs Subject: Re: Is RPC in SVR4 implemented in kernel or user level? Keywords: SVR4 Message-ID: <2503@sequent.cs.qmw.ac.uk> Date: 12 Jul 90 10:04:52 GMT References: <1990Jul10.032917.13692@cbnews.att.com> <103795@convex.convex.com> Organization: Computer Science Dept, QMW, University of London, UK. Lines: 37 In <103795@convex.convex.com> thurlow@convex.com (Robert Thurlow) writes: >The kernel has to do RPC over UDP/IP for NFS accesses, so some files >are needed there. More files are needed to do RPC for general user >level applications, and they live in the libraries. The common files >in the Sun NFSSRC reference port are identical; our revision control >system has links in some underlying directories to ensure that the >changes made are made to both kernel and user level code. Interesting. Back in NFS 3.0 days there was a significant difference in that kernel RPC is assumed to be for NFS purposes and so assumes idempotence, whereas that user-level RPC stuff doesn't make this assumption. The actual difference this makes is in the handling of the xid when a request times out. In the kernel case (idempotent) the xid for the retransmission is the same as the original request and so a delayed reply to the original message would be acceptable. In the user level case (non idempotent) the xid is incremented so a delayed reply to the original request will actually be rejected. The non-idempotence assumption is why the dreadful slowness of the mountd daemon actually causes severe problems (see annual discussions on this group). I have been saying for years that SunRPC should allow you to specify which behaviour you want, but nobody ever seems to take any notice. Back to Rob's message: if you have identcial source, do you still have this distinction in the behaviour and if so, how do you achieve it? -- William Roberts ARPA: liam@cs.qmw.ac.uk Queen Mary & Westfield College UUCP: liam@qmw-cs.UUCP Mile End Road AppleLink: UK0087 LONDON, E1 4NS, UK Tel: 071-975 5250 (Fax: 081-980 6533)