eventfd: new EFD_STATE flag
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(-)