Skip site navigation (1)Skip section navigation (2)
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>