Establishing any IPC communication channel has setup costs and per message or per "message batch" usage costs:
(CPU cycles + context switches) / channel setup
(CPU cycles + context switches) / msg[-batch]
Further, as recent Linux kernel network stack work has discovered, cache effects strongly proscribe batch processing rather than per-msg (or per packet) processing (seems obvious, I guess "in hindsight") to make 10G and above network links work well:
Batch processing of network packets https://lwn.net/Articles/763056/
and see also:
User-space networking with Snabb https://lwn.net/Articles/713918/
Is there a paper quantifying and comparing various IPC mechanism costs?
Specifically and separately, is there a paper quantifying the setup and use costs of shared memory IPC (possibly in comparison with any other IPC mechanism)?
TIA,
On Sat, Sep 15, 2018 at 02:08:53PM +1000, Zenaan Harkness wrote:
Establishing any IPC communication channel has setup costs and per message or per "message batch" usage costs:
(CPU cycles + context switches) / channel setup
(CPU cycles + context switches) / msg[-batch]
Further, as recent Linux kernel network stack work has discovered, cache effects strongly proscribe batch processing rather than per-msg (or per packet) processing (seems obvious, I guess "in hindsight") to make 10G and above network links work well:
Batch processing of network packets https://lwn.net/Articles/763056/
and see also:
User-space networking with Snabb https://lwn.net/Articles/713918/
Is there a paper quantifying and comparing various IPC mechanism costs?
Specifically and separately, is there a paper quantifying the setup and use costs of shared memory IPC (possibly in comparison with any other IPC mechanism)?
For reference, some reading and performance data re "user library" level IPC - mostly Java: http://psy-lob-saw.blogspot.com/p/lock-free-queues.html
l4-hackers@os.inf.tu-dresden.de