b_freelist TAILQ/SLIST
Alexander Motin
mav at FreeBSD.org
Fri Jun 28 15:37:13 UTC 2013
On 28.06.2013 18:14, Adrian Chadd wrote:
> .. i'd rather you narrow down _why_ it's performing better before committing it.
If you have good guesses -- they are welcome. All those functions are so
small, that it is hard to imagine how congestion may happen there at
all. I have strong feeling that lock spinning there consumes
incomparably much more CPU time then the locked region itself could consume.
> Otherwise it may just creep up again after someone does another change
> in an unrelated part of the kernel.
Big win or small, TAILQ is still heavier then STAILQ, while it is not
needed there at all.
> You're using instructions-retired; how about using l1/l2 cache loads,
> stores, etc? There's a lot more CPU counters available.
I am using unhalted-cycles, that is more reasonable then
instructions-retired. What's about other counters, there are indeed a
lot of them, but it is not always easy to get something useful out of them.
> You have a very cool problem to solve. If I could reproduce it locally
> I'd give you a hand.
You'd need a lot of hardware and patches to reproduce it in full. But if
you like to see this with your own eyes, I can give you an SSH access to
my test machine.
--
Alexander Motin
More information about the freebsd-hackers
mailing list