tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Microbenchmarks



On Thu, May 29, 2008 at 12:05:42PM -0400, Thor Lancelot Simon wrote:

> On Thu, May 29, 2008 at 12:27:10PM +0100, Andrew Doran wrote:
> > Hi,
> > 
> > I thought I'd post this because it makes for interesting reading. It's the
> > output of Sun's libmicro, comparing these systems in (mostly) default
> > configurations: NetBSD-current, NetBSD 4.0, Fedora Core 9, FreeBSD 7.
> > The output and libmicro's home page:
> > 
> >     http://www.netbsd.org/~ad/libmicro.html
> >     http://www.opensolaris.org/os/project/libmicro/
> 
> Any thoughts on why we do so much worse at conn_connect than everything
> else tested, even NetBSD 4?

I initially thought it was down to the socket locking, but I'm not convinced
that's the problem any more. What stands out is that all the Unix domain
operations are really fast in -current but we have lost ground with IP. At a
guess, maybe something in the IP code has been pessimized.

Some other random observations:

Fork and exec seem comparatively slow, although a lot faster than 4.0. That
could do with fixing, along with the connect problem.

Many of the operations that touch ffs seem slower (u or usr in the name).
It's hard to tell what's going on with vfs just from looking at the results
but it does seem marginally slower.

select/poll are slower. I hacked up a "poll cache" as seen in Solaris/Linux,
making the kernel state semi-persistent between calls, like a poor man's
kqueue. With the cache it seems to be about 9us for the poll_1000 test; I
think that's close to what it would be on Solaris. Hopefully we can
implement that in the future.

Andrew


Home | Main Index | Thread Index | Old Index