← Back to context

Comment by darksaints

3 hours ago

Mach'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.

>small enough to fit entirely in the L2 cache

Shouldn't the "hot" path fit in the L1 of a "modern" processor (100 kB+)?

Are 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?