4 ms·
It started off when Dillon disagreed with the way FreeBSD was doing NUMA. He had his own ideas, so went off to ferment them.
by philjohn 8y ago
It started off when Dillon disagreed with the way FreeBSD was doing NUMA. He had his own ideas, so went off to ferment them.
- loeg 8y agoSMP, not NUMA, but otherwise yes.
- org3432 8y agoI vaguely recall this as well, do you remember what was better about his approach?
- loeg 8y agoHah, I wasn't around at that time. I believe FreeBSD 5 went ahead and did the same thing most other BSDs and Linux did initially, which was the so-called "Giant" lock scheme, where only one CPU could be in the kernel at a time. The plan being to gradually break things into smaller locks. That's more or less worked (for FreeBSD and maybe NetBSD — OpenBSD still has notoriously poor kernel concurrency in 2018), but didn't yield high concurrency up front, and there are still vestigial uses of Giant in FreeBSD. I think Dillon had some sort of lock token thing? It looks like they're described here, under "LWKT Serializing Tokens:" https://www.dragonflybsd.org/docs/developer/Locking_and_Synchronization/ https://www.dragonflybsd.org/docs/developer/Locking_and_Sync... . Looks somewhat easier to integrate but also some tradeoffs — proper restart when all your lock tokens get dropped seems like it might be fiddly.
- bch 8y agoThis touches on it a bit... https://web.archive.org/web/20170621023517/http://www.onlamp.com/pub/a/bsd/2004/07/08/dragonfly_bsd_interview.html https://web.archive.org/web/20170621023517/http://www.onlamp...