Skip to content

pollfs: filesystem abstraction for pollable objects

Davi Arnaut lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest22 patches 48 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/22pollfs: kernel-side API headerinclude/linux/pollfs_fs.h+57 -00 replies
2/22pollfs: file system operationsfs/Makefile fs/pollfs/Makefile fs/pollfs/file.c +1 more+247 -00 replies
3/22pollfs: asynchronously wait for a signalinclude/linux/init_task.h include/linux/sched.h kernel/fork.c +1 more+8 -00 replies
4/22pollfs: pollable signalfs/pollfs/Makefile fs/pollfs/signal.c init/Kconfig+153 -00 replies
5/22pollfs: pollable signal compat codefs/pollfs/signal.c+85 -00 replies
6/22pollfs: export the plsignal system callinclude/linux/syscalls.h kernel/sys_ni.c+3 -00 replies
7/22pollfs: x86, wire up the plsignal system callarch/i386/kernel/syscall_table.S include/asm-i386/unistd.h+3 -10 replies
8/22pollfs: x86_64, wire up the plsignal system callarch/x86_64/ia32/ia32entry.S include/asm-x86_64/unistd.h+5 -20 replies
9/22pollfs: pollable hrtimersfs/pollfs/Makefile fs/pollfs/timer.c init/Kconfig+206 -02 replies
10/22pollfs: export the pltimer system callinclude/linux/syscalls.h kernel/sys_ni.c+3 -00 replies
11/22pollfs: x86, wire up the pltimer system callarch/i386/kernel/syscall_table.S include/asm-i386/unistd.h+3 -10 replies
12/22pollfs: x86_64, wire up the pltimer system callarch/x86_64/ia32/ia32entry.S include/asm-x86_64/unistd.h+4 -10 replies
13/22pollfs: asynchronous futex waitinclude/linux/futex.h kernel/futex.c+118 -920 replies
14/22pollfs: pollable futexfs/pollfs/Makefile fs/pollfs/futex.c init/Kconfig+162 -039 replies
15/22pollfs: export the plfutex system callinclude/linux/syscalls.h kernel/sys_ni.c+3 -00 replies
16/22pollfs: x86, wire up the plfutex system callarch/i386/kernel/syscall_table.S include/asm-i386/unistd.h+3 -10 replies
17/22pollfs: x86_64, wire up the plfutex system callarch/x86_64/ia32/ia32entry.S include/asm-x86_64/unistd.h+4 -10 replies
18/22pollfs: check if a AIO event ring is emptyfs/aio.c include/linux/aio.h+18 -00 replies
19/22pollfs: pollable aiofs/pollfs/Makefile fs/pollfs/aio.c init/Kconfig+111 -00 replies
20/22pollfs: export the plaio system callinclude/linux/syscalls.h kernel/sys_ni.c+3 -00 replies
21/22pollfs: x86, wire up the plaio system callarch/i386/kernel/syscall_table.S include/asm-i386/unistd.h+3 -10 replies
22/22pollfs: x86_64, wire up the plaio system callarch/x86_64/ia32/ia32entry.S include/asm-x86_64/unistd.h+4 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [patch 00/22] pollfs: filesystem abstraction for pollable objects

This patch set introduces a new file system for the delivery of pollable events through file descriptors. To the detriment of debugability, pollable objects are a nice adjunct to nonblocking/epoll/event-based servers.

The pollfs filesystem abstraction provides better mechanisms needed for creating and maintaining pollable objects. Also the pollable futex approach is far superior (send and receive events from userspace or kernel) to eventfd and fixes (supercedes) FUTEX_FD at the same time.

The (non) blocking and object size (user <-> kernel) semantics and are handled internally, decoupling the core filesystem from the "subsystems" (mere push and pop operations).

Currently implemented waitable "objects" are: signals, futexes, ai/o blocks and timers.

More details at each patch.

http://haxent.com/~davi/pollfs/

Comments are welcome.

--
Davi Arnaut