High-level point: traditional M:N systems require careful kernel/libc coordination. This was too complex. Modern systems lean on user-level threading with explicit management (using the given kernel apis) of concurrency and parallelism. I'm not arguing for/against any system.
Task creation is mostly allocating a stack for the kernel too. I have to repeat that we did these measurements for Rust and found that M:N was not worth it *for performance reasons*, not just for compatibility.
-
-
I don't know the history here. Did you use cactus stacks? Without scheduler activations, system interactions (eg syscalls) will often get slower. I'd imagine most rust apps use more system calls than thread operations.
-
We used M:N with segmented stacks for a while with a lot of caching, but were disappointed by the performance. So we moved to M:N larger stacks. Eventually we threw out the whole thing and went to 1:1.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.