Hacker News new | ask | show | jobs
by Koshkin 2733 days ago
Looks like its goal is to provide a built-in support for implementing distributed systems (clustering, NUMA, etc.).
1 comments

It started off when Dillon disagreed with the way FreeBSD was doing NUMA. He had his own ideas, so went off to ferment them.
SMP, not NUMA, but otherwise yes.
I vaguely recall this as well, do you remember what was better about his approach?
Hah, 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_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.