5 ms·
Does anyone more familiar with Hurd know how they addressed performance issues encountered by other Mach-based kernels? I remember reading that one of Mach's bo
by csb6 2mo ago
Does anyone more familiar with Hurd know how they addressed performance issues encountered by other Mach-based kernels? I remember reading that one of Mach's bottlenecks was validating that each IPC message had proper permissions/access when sending them between processes due to the large number and frequency of messages.
- glhaynes 2mo agoIs there reason to think they've addressed them?
- floxy 2mo agoIs that a bottleneck anymore? Maybe something that was appreciable in 1994 isn't a big performance hit in 2026?
- Analemma_ 2mo agoIsn't it even worse now? The faster computers get, the more that software-induced bottlenecks hurt.
- Manozco 2mo agoI'm not a Hurd contributor ( or any OS kernel / library ). I'm not sure this holds today. One example I can see is related to crypto. We used to have specific hardware for computing cryptography functions but it's now handled directly in standard hardware and the software has not evolved ( but it's been faster and faster to compute checksum functions )
- monocasa 2mo agoI mean, every major arch has crypto specific acceleration instructions.
- doubled112 2mo agoI could see just powering through because modern hardware is fast enough to do so being an option. Adding 20% to a 10 second operation is a lot longer on a wall clock than adding 20% to a 1 second operation.
- monocasa 2mo agoIf anything, Mach style IPC has gotten worse because of the greater overhead if kernel/user transitions. Spectre really did a number on context switching overhead.
- 0cf8612b2e1e 2mo agoWhat even is a 20% delta in performance? Like a five year old difference in hardware design. If I could get a micro kernel with a better security profile than Linux, that doesn’t sound so bad. I could easily be using a ten year old chip for my day to day browsing and probably wouldn’t notice.
- yjftsjthsd-h 2mo ago> If I could get a micro kernel with a better security profile than Linux, that doesn’t sound so bad. I suggest that you look at genode/sculpt:)
- Analemma_ 2mo agoPeople lost their shit when Spectre mitigations added 20% overhead to kernel calls though. Why wouldn't they do the same for microkernel overhead?
- floxy 2mo agoIf people really cared about performance, we'd be doing something other than the bloated way we have been doing things. https://winworldpc.com/product/qnx/144mb-demo https://winworldpc.com/product/qnx/144mb-demo
- pjmlp 2mo agoThe same people are perfectly fine with Electron crap all over the place, they don't really care about overhead.
- naasking 2mo agoYes, it's worse because processors clocks are much faster than memory clocks.
- panick21_ 2mo agoYes, you want to do more IPC, its basically linear with the increase in performance. So the amount of overhead stays the same basically. At least in IPC benchmarks and those tend to be important. Making that fast is fundamental to any OS.
- floxy 2mo agoSo for an I/O heavy program like a web browser, what percentage of CPU time is spent in syscalls? Someone must have that data for Firefox. 1%? 10%? And then that moves to 1.1% (or 11%)? And then every other program is even less affected? Curious if anyone is in the know.
- panick21_ 2mo agoIt depends on the OS, some OS have some way to do IO that gets around that. iouring or things like that. I don't know how Hurd does IO. Most microkernals have methods to do IO in a different way. If they don't then likely they would pretty slow when doing I/O heavy operations.
- lanstin 2mo agoFirefox isn’t io bound it is spending a ton of CPU parsing network buffers and rendering UI. Nginx is IO bound in general - for my headless go stateful server, i could get syscall6 up to 20% of the profile time. It was a fight between GC in the gRPC code allocating for headers and the syscall6 for top single profile footprint.
- floxy 2mo agoLooking forward to reading the results of your benchmarking Hurd vs. Linux.
- ZiiS 2mo agoLets get to a usable feature set before optimization.
- ColdStream 2mo agoThis is what I like about Haiku OS, they have focused a lot functionality and have that fairly solid, now optimization and stability is being worked on more closely.
- darksaints 2mo agoMach's problem wasn't that it had slow IPC, but rather that in terms of microkernels, Mach was pretty damn big. There are some very fast microkernels out there, like the L4 family, which negate the IPC overhead of microkernels by being small enough to fit entirely in the L2 cache of most processors. Linux may only have the single IPC call per round trip, but it's a fucking huge kernel and there is typically a ton of cache thrashing going on.
- jstimpfle 2mo agoAre you saying there is cache thrashing because callers often sercice rheid own requests themselves? If you don't want to service requests in the same thread, doesnt it mean you have to spend entire core(s) for running the kernel?
- floxy 2mo ago>small enough to fit entirely in the L2 cache Shouldn't the "hot" path fit in the L1 of a "modern" processor (100 kB+)?
- deleted 2mo ago[deleted]
- pjmlp 2mo agoMost RTOS for high integrity computing deployments are microkernel based, and the large majority of cloud deployments are running on top of microkernels, which is basically what a type 1 hypervisor ends up being, even more so, if it they are serverless workloads running directly on top of the hypervisor.