Hi - This patchset implements timerfd on top of #alarm, for the most part. Our underlying CLOCK_ work is lacking, and there are probably other issues. But it does pass the timerfd test from Linux (which I expanded to catch a few more bugs of mine).
Barret The following changes since commit 3239f74daaf67295d1ae65b52cee8f053bb2945e: Set qemu's port-forwarding to port 22 (2016-04-07 14:14:51 -0400) are available in the git repository at: [email protected]:brho/akaros.git timerfd for you to fetch changes up to 75686820dce0764f084cfdab6a4492340b2cc2b8: Port tests/timerfd.c (2016-04-14 17:08:39 -0400) ---------------------------------------------------------------- View this online at: https://github.com/brho/akaros/compare/3239f74daaf6...75686820dce0 ---------------------------------------------------------------- Barret Rhoden (14): Modify glibc's printf for use from VC ctx (XCC) Implement clock_gettime() (XCC) Add two time conversion helpers to glibc (XCC) Use FD taps for event delivery for #alarm Add user helpers save_err and restore_err (XCC) Implement pipes in userspace (XCC) Export sys/plan9_helpers.h from glibc (XCC) Add helpers for common 9ns functions (XCC) Change #alarm cancel method Add the helper strtoul_from_ubuf() Add period and count to #alarm Implement timerfd on top of #alarm (XCC) Import timerfd test from Linux Port tests/timerfd.c kern/drivers/dev/alarm.c | 278 ++++++++++++++----- kern/include/devalarm.h | 10 +- kern/include/ns.h | 2 +- kern/include/ros/bits/syscall.h | 2 +- kern/src/ns/sysfile.c | 46 ---- kern/src/ns/util.c | 18 ++ kern/src/syscall.c | 17 -- tests/alarm.c | 46 +--- tests/cs.c | 2 +- tests/evq_block.c | 4 +- tests/timerfd.c | 296 +++++++++++++++++++++ .../glibc-2.19-akaros/sysdeps/akaros/Makefile | 9 + .../glibc-2.19-akaros/sysdeps/akaros/Versions | 11 +- .../glibc-2.19-akaros/sysdeps/akaros/accept.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/bind.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/bits/errno.h | 2 + .../sysdeps/akaros/bits/timerfd.h | 29 ++ .../sysdeps/akaros/clock_gettime.c | 27 ++ .../glibc-2.19-akaros/sysdeps/akaros/connect.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/errno.c | 21 ++ .../glibc-2.19-akaros/sysdeps/akaros/gethstbyad.c | 2 +- .../sysdeps/akaros/gethstbyad_r.c | 2 +- .../sysdeps/akaros/gethstbynm2_r.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/getpeername.c | 2 +- .../sysdeps/akaros/getprtname_r.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/getsockname.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/getsockopt.c | 2 +- .../sysdeps/akaros/getsrvbynm_r.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/getsrvbypt.c | 2 +- .../sysdeps/akaros/getsrvbypt_r.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/listen.c | 2 +- .../sysdeps/akaros/parlib-compat.c | 19 +- .../glibc-2.19-akaros/sysdeps/akaros/pipe2.c | 62 +++-- .../sysdeps/akaros/plan9_sockets.c | 34 ++- .../glibc-2.19-akaros/sysdeps/akaros/recv.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/recvfrom.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/send.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/sendto.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/setsockopt.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/shutdown.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/socket.c | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/socketpair.c | 2 +- .../{plan9_sockets.h => sys/plan9_helpers.h} | 14 +- .../glibc-2.19-akaros/sysdeps/akaros/sys/timerfd.h | 52 ++++ .../glibc-2.19-akaros/sysdeps/akaros/timerfd.c | 208 +++++++++++++++ .../glibc-2.19-akaros/sysdeps/akaros/vfprintf.c | 21 +- user/benchutil/alarm.c | 45 ++-- user/benchutil/include/benchutil/alarm.h | 5 +- user/benchutil/pvcalarm.c | 45 +--- user/iplib/epoll.c | 4 +- user/parlib/debug.c | 45 ---- user/parlib/debugfmt.c | 196 -------------- user/parlib/include/parlib/stdio.h | 3 - 53 files changed, 1072 insertions(+), 545 deletions(-) create mode 100644 tests/timerfd.c create mode 100644 tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/bits/timerfd.h create mode 100644 tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/clock_gettime.c rename tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/{plan9_sockets.h => sys/plan9_helpers.h} (95%) create mode 100644 tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/timerfd.h create mode 100644 tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/timerfd.c delete mode 100644 user/parlib/debugfmt.c -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
