git: d00ba10be5 - main - Status/2023Q1/timerfd: Add report

From: Lorenzo Salvadore <salvadore_at_FreeBSD.org>
Date: Sat, 25 Mar 2023 10:26:19 UTC
The branch main has been updated by salvadore:

URL: https://cgit.FreeBSD.org/doc/commit/?id=d00ba10be5db70ae7834ef9dbb7e237fea413966

commit d00ba10be5db70ae7834ef9dbb7e237fea413966
Author:     Jake Freeland <jfree@FreeBSD.org>
AuthorDate: 2023-03-23 23:42:50 +0000
Commit:     Lorenzo Salvadore <salvadore@FreeBSD.org>
CommitDate: 2023-03-25 10:25:59 +0000

    Status/2023Q1/timerfd: Add report
    
    Reviewed by:    status (Pau Amma <pauamma@gundo.com>)
    Approved by:    carlavilla (mentor)
    Differential Revision: https://reviews.freebsd.org/D39238
---
 .../en/status/report-2023-01-2023-03/timerfd.adoc  | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/website/content/en/status/report-2023-01-2023-03/timerfd.adoc b/website/content/en/status/report-2023-01-2023-03/timerfd.adoc
new file mode 100644
index 0000000000..0b971fc047
--- /dev/null
+++ b/website/content/en/status/report-2023-01-2023-03/timerfd.adoc
@@ -0,0 +1,22 @@
+=== Native Linux timerfd
+
+Links: +
+link:https://reviews.freebsd.org/D38459[Differential revision] URL: link:https://reviews.freebsd.org/D38459[https://reviews.freebsd.org/D38459]
+
+Contact: Jake Freeland <jfree@FreeBSD.org>
+
+The timerfd facility is a set of Linux-standard system calls that operate on interval timers.
+These timers are analogous to per-process timers but are represented by a file descriptor, rather than a process.
+These file descriptors may be passed to other processes, are preserved across fork(2), and may be monitored via kevent(2), poll(2), or select(2).
+
+A timerfd implementation in FreeBSD already exists for Linux compatibility, but
+link:https://reviews.freebsd.org/D38459[this differential revision]
+makes the interface native.
+The goal behind this change is to ease the FreeBSD porting process for programs that include timerfd.
+
+This specific implementation avoids adding new names to the system call table.
+Instead, timerfd_create() is wrapped by the specialfd() system call.
+The timerfd_gettime() and timerfd_settime() calls are wrapped ioctl()s.
+
+Developers that wish to support FreeBSD should avoid using timerfd.
+The kqueue() EVFILT_TIMER filter is preferred for establishing arbitrary timers.