| ▲ | riyaneel 2 days ago | |||||||
eventfd always pays a syscall on both sides (~200-400ns) regardless of load. Tachyon slow path only kick in under genuine starvation: the consumer spins first, then FUTEX_WAIT, and the producer skips FUTEX_WAKE entirely if the consumer still spinning. At sustainable rates the slow path never activates. | ||||||||
| ▲ | mananaysiempre 2 days ago | parent [-] | |||||||
> eventfd always pays a syscall on both sides (~200-400ns) regardless of load. It’s fairly standard to make the waiting side spin a bit after processing some data, and only issue another wait syscall if no more data arrives during the spin period. (For instance, io_uring, which does this kind of IPC with a kernel thread on the receiving side, literally lets you configure how long said kernel thread should spin[1].) | ||||||||
| ||||||||