Skip to contentSkip to conversation

eventfd: new EFD_STATE flag

PATCH New Michael S. Tsirkin 1 participant 1 message Jul 28, 2009 KVM

lore
Share & tools
lore
#0 lore raw

cover eventfd: new EFD_STATE flag

Davide, all,

This RFC series implements a new EFD_STATE flag for eventfd. When set, this changes eventfd behaviour in the following way:
- write simply stores the value written, and is always non-blocking
- read unblocks when the value written changes, and returns the value written

Motivation: we'd like to use eventfd in qemu to pass interrupts from (emulated or assigned) devices to guest. For level interrupts, the counter supported currently by eventfd is not a good match: we really need to set interrupt to a level, typically 0 or 1, wake the guest if there was a change and and give the guest ability to see the last value written.

Does extending eventfd in this way make sense? Please comment.

Michael S. Tsirkin (2):
eventfd: reorganize the code to simplify new flags
eventfd: EFD_STATE flag

 fs/eventfd.c            |   83 +++++++++++++++++++++++++++++++++++++++--------
 include/linux/eventfd.h |    3 +-
 2 files changed, 71 insertions(+), 15 deletions(-)