Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Jun 2000 12:25:10 -0700
From:      Alfred Perlstein <alfred@FreeBSD.org>
To:        Nate Williams <nate@yogotech.com>
Cc:        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:  <20000615122510.N18462@fw.wintelcom.net>
In-Reply-To: <200006151914.NAA25610@nomad.yogotech.com>; from nate@yogotech.com on Thu, Jun 15, 2000 at 01:14:24PM -0600
References:  <200006151818.LAA31278@freefall.freebsd.org> <200006151845.MAA25472@nomad.yogotech.com> <20000615120807.M18462@fw.wintelcom.net> <200006151914.NAA25610@nomad.yogotech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Nate Williams <nate@yogotech.com> [000615 12:14] wrote:
> > 
> > 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.

Well it's not 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.

Yes, also ignored.

> > 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.

Obviously not, the email was ignored.

> 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.

That's not what the code does, nothing funky happens with TCP
connections, the socket is accepted, however it is not presented
to the application until data arrives.

> > 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.

I don't see why, it allows for extremely low overhead (0 copy)
sending of data down sockets.

It's been discussed (back at BSDcon even) I hoped someone would
have said "hey good idea Alfred" and implemented it by now.

I'm up for implementation discussion, however, I'm not up for
discussing whether it's going in or not, unless something better
is presented, it is.

Basically win2k can come close to us in server performance without
this, and this will again allow us to completely blow them out of
the water.

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."


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?20000615122510.N18462>