Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's because IPC is not low-latency.

No modern processor architecture has a proper message passing mechanism. All of them expect you to use interruptions; with it's inherent problems of losing cache, disrupting pipelines, and well, interrupting your process flow.

All the modern architectures are also so close to have a proper message passing mechanism that it's unsettling. You actually need this to have uniform memory in a multi-core CPU. They have all the mechanisms for zero copy sharing of memory, enforcing coherence, atomicity, etc. AFAIK, they just lack a userspace mechanism to signal other processes.




Futexes allow low-latency signalling to other processes, and FUTEX_SWAP [1, 2] promises to decrease the cost even further.

[1]: https://lore.kernel.org/lkml/20200722234538.166697-1-posk@po...

[2]: https://www.phoronix.com/news/Google-User-Thread-Futex-Swap


This doesn't seem to touch on any of the points on my comment.

It does take a lot of unnecessary stuff out of the way. But isn't enough to change the picture at all.


> This doesn't seem to touch on any of the points on my comment.

What points did your comment make? You didn't define "signalling" specifically enough to discuss. Can you elaborate on precisely what kind of "signaling" primitive processors or operating systems should provide?




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: