On Fri, May 15, 2020 at 08:24:58AM -0600, Jens Axboe wrote: > On 5/15/20 4:54 AM, Stefano Garzarella wrote: > > The first patch adds the new 'cq_flags' field for the CQ ring. It > > should be written by the application and read by the kernel. > > > > The second patch adds a new IORING_CQ_NEED_WAKEUP flag that can be > > used by the application to enable/disable eventfd notifications. > > > > I'm not sure the name is the best one, an alternative could be > > IORING_CQ_NEED_EVENT. > > > > This feature can be useful if the application are using eventfd to be > > notified when requests are completed, but they don't want a notification > > for every request. > > Of course the application can already remove the eventfd from the event > > loop, but as soon as it adds the eventfd again, it will be notified, > > even if it has already handled all the completed requests. > > > > The most important use case is when the registered eventfd is used to > > notify a KVM guest through irqfd and we want a mechanism to > > enable/disable interrupts. > > > > I also extended liburing API and added a test case here: > > https://github.com/stefano-garzarella/liburing/tree/eventfd-disable > > Don't mind the feature, and I think the patches look fine. But the name > is really horrible, I'd have no idea what that flag does without looking > at the code or a man page. Why not call it IORING_CQ_EVENTFD_ENABLED or > something like that? Or maybe IORING_CQ_EVENTFD_DISABLED, and then you > don't have to muck with the default value either. The app would set the > flag to disable eventfd, temporarily, and clear it again when it wants > notifications again. You're clearly right! :-) The name was horrible. I agree that IORING_CQ_EVENTFD_DISABLED should be the best. I'll send a v2 changing the name and removing the default value. Thanks, Stefano