Date: Mon, 23 Nov 1998 14:50:42 -0800 (PST) From: Marc Slemko <marcs@znep.com> To: Dan Strick <dan@math.berkeley.edu> Cc: hackers@FreeBSD.ORG Subject: Re: AMD/NFS problems with 3.0 Message-ID: <Pine.BSF.4.05.9811231445580.19474-100000@alive.znep.com> In-Reply-To: <199811230032.QAA03103@math.berkeley.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 22 Nov 1998, Dan Strick wrote: > (Please ignore my previous posting. I somehow neglected to rewrite the > temporary mail message file after editing it into this:) > > > > At first I though this might be related to these messages that went > > > to the log the first time I started amd: > > > > > > noconn option exists, and was turned OFF! (May cause NFS hangs > > > on some systems...) > > > > These are always printed out. I guess I should comment them out, or > > determine if we really can use the optimization. The comments in the > > code by the Columbia people are often out of date with respect to > > FreeBSD-CURRENT. > > I have often wondered what this was really about. Can someone explain? I have no idea what this is really about, but... > > At first I thought the issue was tcp versus udp, but this turns out to > be wrong. The issue seems to be if the BSD connect() system call is used > to associate the local BSD datagram (i.e. UDP) "socket" with the remote nfs > server datagram "socket". The alternative would be to skip the connect() > and specify the destination address every time a packet is sent and > examine the source address every time a packet is received. > > I don't really understand the issue here. UDP is essentially a > connectionless protocol. I don't understand the function of the BSD > connect() system call other than as a programming convenience. The issue is that if you don't do a connect(), then there is a lot more processing that that the kernel has to do. It doesn't have a pcb with info about the sender/recipient without a connect(), it has to figure out stuff about the source and destination each time, etc. See udp_output(), especially the in_pcb{connect|disconnect} calls that are done if an address is passed instead of being connect()ed. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9811231445580.19474-100000>