On 1/20/2020 3:15 PM, Stefan Metzmacher wrote: > Hi Jens, > >>> Thanks! >>> >>> Another great feature would the possibility to make use of the >>> generated fd in the following request. >>> >>> This is a feature that's also available in the SMB3 protocol >>> called compound related requests. >>> >>> The client can compound a chain with open, getinfo, read, close >>> getinfo, read and close get an file handle of -1 and implicitly >>> get the fd generated/used in the previous request. >> >> Right, the "plan" there is to utilize BPF to make this programmable. >> We really need something more expressive to be able to pass information >> between SQEs that are linked, or even to decide which link to run >> depending on the outcome of the parent. >> >> There's a lot of potential there! > > I guess so, but I don't yet understand how BPF works in real life. > > Is it possible to do that as normal user without special privileges? > > My naive way would be using some flags and get res and pass fd by reference. > Just have been discussing related stuff. See the link if curious https://github.com/axboe/liburing/issues/58 To summarise, there won't be enough flags to cover all use-cases and it will slow down the common path. There should be something with zero-overhead if the feature is not used, and that's not the case with flags. That's why it'd be great to have a custom eBPF program (in-kernel) controlling what and how to do next. I don't much about eBPF internals, but probably we will be able to attach an eBPF program to io_uring instance. Though, not sure whether it could be done without privileges. -- Pavel Begunkov