Date: Thu, 15 Jun 2000 13:14:24 -0600 (MDT) From: Nate Williams <nate@yogotech.com> To: Alfred Perlstein <alfred@FreeBSD.org> Cc: Nate Williams <nate@yogotech.com>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern uipc_socket.c uipc_socket2.c src/sys/sys socket.h Message-ID: <200006151914.NAA25610@nomad.yogotech.com> In-Reply-To: <20000615120807.M18462@fw.wintelcom.net> References: <200006151818.LAA31278@freefall.freebsd.org> <200006151845.MAA25472@nomad.yogotech.com> <20000615120807.M18462@fw.wintelcom.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> > > alfred 2000/06/15 11:18:43 PDT > > > > > > Modified files: > > > sys/kern uipc_socket.c uipc_socket2.c > > > sys/sys socket.h > > > Log: > > > add socketoptions DELAYACCEPT and HTTPACCEPT which will not allow an accept() > > > until the incoming connection has either data waiting or what looks like a > > > HTTP request header already in the socketbuffer. > > > Reviewed by: silence on hackers. > > > > Huh? I never saw this. I object to adding application specific code > > inside the kernel. > > It's not really a signifigant amount of code if you look at the > delta, the performance difference is signifigant though. > You'll be happy when I release my http server that uses this. > > The final patch is up at: > > http://people.freebsd.org/~alfred/kblob/kblob-final.diff > > Here is the original message titled: "big patch" > > >From bright@wintelcom.net Tue Jun 13 17:04:32 2000 > Date: Tue, 13 Jun 2000 17:23:37 -0700 > From: Alfred Perlstein <bright@wintelcom.net> > To: hackers@freebsd.org > Subject: big patch: rlimits, accept filters and kblob. This subject line (which I do remember) has no mention of HTTP application code. > Message-ID: <20000613172336.S18462@fw.wintelcom.net> > Mime-Version: 1.0 > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > User-Agent: Mutt/1.2i > Status: RO > Content-Length: 1856 > Lines: 52 > > Hey guys, I have some patches here which implement a number of things. > > 1) fixes dangerous races in per-uid limiting code This is a bug-fix. > 2) 2 accept filters which will not mark a socket as completed for accept() > until either: > 1) there is data available to be read > 2) there is an http request in the socketbuffer I didn't think there was a consensus on this, or on kblob. Neither was there much discussion on this. Also, I *really* don't like the accept() changes, since we (and a number of others) are currently taking advantage of the fact that we can 'ping' a host by contacting a known port and if accepts the connection, which we subsuquently close. ICMP is often filtered, but in our equipment (which happens to be installed the customer's site), we run a the 'echo' port for our internal ping. Waiting until data is sent (or received) is a bad thing, IMO, and probably violates the TCP specifications. > 3) kblob, a kernel hack for preloading data into the kernel to send out > on multiple descriptors, very similar to sendfile but more lightweight > and pretty useful for serving many small chunks of data over stream > sockets. I'd like *alot* more discussion on this. Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006151914.NAA25610>