:and B_WANTED code also required protection to avoid races), it would
:make a big performance improvement to just go make sure that all the
:BUF_ calls are already protected rather than needlessly add those splbio
:and splx calls.
:
: Kirk
Not as big as removing the lockmgr() code and replacing it with something
more efficient. Do you realize that the change from B_BUSY to lockmgr()
in the getnewbuf() has halved its loop performance? 8 subroutine calls
have been indirectly added to the core loop. Eight! And none of them
trivial. The serial counter you added halved it again. The loop
performance is now 1/4 what it was before, which means that every time
getnewbuf() cannot find a new buffer at the beginning of its scan its
inefficiencies are compounded 4x per element. I spent a lot of time
working on getnewbuf()'s performance and all those gains have now been
erased.
Look, I agree that we needed to change the B_BUSY stuff to some sort of
new locking system, but that doesn't mean we have to throw the kitchen sink
in along with it! And it doesn't mean that we have to create a mess in
the code just to support certain essentricies that I am almost certain we
can do without.
-Matt
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message