Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 1997 15:51:03 -0600 (MDT)
From:      Nate Williams <nate@mt.sri.com>
To:        "Justin T. Gibbs" <gibbs@plutotech.com>
Cc:        Nate Williams <nate@mt.sri.com>, Bruce Evans <bde@zeta.org.au>, current@freebsd.org
Subject:   Re: cvs commit: src/sys/conf files src/sys/dev/vx if_vx.c if_vxreg.h src/sys/i386/apm apm.c src/sys/i386/conf GENERIC files.i386 src/sys/i386/eisa 3c5x9.c aha1742.c aic7770.c bt74x.c eisaconf.c eisaconf.h if_fea.c if_vx_eisa.c src/sys/i386/i386 autoconf.c ... 
Message-ID:  <199709222151.PAA03325@rocky.mt.sri.com>
In-Reply-To: <199709222145.PAA03221@pluto.plutotech.com>
References:  <199709222134.PAA03250@rocky.mt.sri.com> <199709222145.PAA03221@pluto.plutotech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> >> If we implement high resolution timers, we will probably pay the O(hash 
> >> chain length) insertion sort price in timeout and schedule a one shot
> >> timer for the next event that needs to run meaning that softclock is no
> >> longer tied to hz.
> >
> >Then, why implement the darn thing at all, when we could simply add a
> >hash-table to make untimeout more effecient, and not lose backwards
> >compatability with all of the BSD code?  I don't see what else the new
> >code buys us that couldn't be done simply and with less overhead (in
> >terms of code and new structure overhead)?
> >
> >Then, we'd be O(n) for timeout, O(1) for softclock, and O(1) for
> >untimeout, which would be the same but with complete backwards
> >compatability.  The best of both worlds. :)
> 
> I don't want to pay O(n) for anything.

O(hash chain length) ~= O(n).

> Perhaps I'm greedy.  I can
> perform upwards of 200 (real life, seek bound) transactions a second
> with bonnie on a single Atlas II with the CAM code.  I can perform
> even more if I'm doing sequential reads.  I can pretty much sustain
> that rate to multiple drives meaning even a higher rate of timeout/
> untimeout calls.  Going from 2 * O(n) to O(n) is not anywhere near
> the same as going to 2 * O(1).

See above.  You aren't paying anything more for the 'high-resolution'
timer case with the old code (with untimeout hash-table, not yet
implemented) vs. the new code (with ordered insertion in the hash-table
list, not yet implemented).



Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709222151.PAA03325>