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

Can we have syscall chaining finally? Please? There is literally no reason why we couldn't have it.


Do you mean io_uring?


No. Io_uring is a message passing system where you tell the kernel to do something and let you know when it's done.

Syscall chaining refers to having the kernel execute consecutive systemcalls without switching the context back to userspace.

An example of this might be closing a multitude of file descriptors or registering signals or writing the same data to multiple fds etc, which becomes prohibitely expensive if you need to do it multiple times quickly, and actually doing it even once is really expensive if your sets are large.


> having the kernel execute consecutive systemcalls without switching the context

io_uring enables exactly this

https://kernel.dk/io_uring.pdf


Only for io, which is not the same thing.


Despite the name, there is nothing io-specific about the io_uring interface. Non-io syscalls can be added. Io syscalls just tend to benefit the most (due to call frequency).


> Syscall chaining refers to having the kernel execute consecutive systemcalls without switching the context back to userspace.

io_uring already gives you that. You can submit multiple operations in a batch and link the operations together so that if one operation in a chain of linked operations fails, io_uring won't try to execute the rest.


Which is not syscall chaining, but message chaining, of io.


Huh? It is literally system call chaining. You can make many system calls via io_ioring.


Doesn’t that address fanout, not chaining?

Chaining RPC calls requires something more sophisticated.


Io_uring doesn't even address fanout if you mean writing the same data to multiple fds.

Io_uring is just a way to have "do this and tell me when it's done" io.


I imagine extensions to eBPF are more likely.




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

Search: