Andreas Kling
fdfc66db61
Kernel+LibC: Allow clock_gettime() to run without syscalls
...
This patch adds a vDSO-like mechanism for exposing the current time as
an array of per-clock-source timestamps.
LibC's clock_gettime() calls sys$map_time_page() to map the kernel's
"time page" into the process address space (at a random address, ofc.)
This is only done on first call, and from then on the timestamps are
fetched from the time page.
This first patch only adds support for CLOCK_REALTIME, but eventually
we should be able to support all clock sources this way and get rid of
sys$clock_gettime() in the kernel entirely. :^)
Accesses are synchronized using two atomic integers that are incremented
at the start and finish of the kernel's time page update cycle.
2021-08-10 19:21:16 +02:00
..
2021-08-07 11:48:00 +02:00
2021-08-10 19:21:16 +02:00
2021-08-10 02:49:37 +02:00
2021-08-09 22:52:09 +02:00
2021-08-08 00:03:45 +02:00
2021-08-08 00:28:10 +02:00
2021-08-08 14:24:54 +02:00
2021-08-10 02:49:37 +02:00
2021-08-08 00:03:45 +02:00
2021-08-10 02:49:37 +02:00
2021-08-09 11:46:31 +02:00
2021-08-08 00:03:45 +02:00
2021-08-08 10:55:36 +02:00
2021-08-08 00:08:24 +02:00
2021-08-10 19:21:16 +02:00
2021-07-11 00:26:17 +02:00
2021-08-10 19:21:16 +02:00
2021-08-09 11:46:30 +02:00
2021-08-07 11:48:00 +02:00
2021-08-04 11:01:16 +02:00
2021-07-07 21:57:01 +02:00
2021-07-27 13:15:16 +02:00
2021-08-09 21:05:25 +02:00
2021-08-09 21:05:25 +02:00
2021-08-09 21:05:25 +02:00
2021-08-08 00:03:45 +02:00
2021-07-11 01:46:59 +02:00
2021-08-10 02:49:37 +02:00
2021-07-11 14:14:51 +02:00
2021-08-07 15:21:58 +02:00
2021-08-06 22:25:00 +02:00
2021-08-07 11:48:00 +02:00
2021-07-15 11:04:30 +02:00
2021-08-08 14:24:54 +02:00
2021-07-07 10:05:55 +02:00
2021-08-07 11:48:00 +02:00
2021-08-07 11:48:00 +02:00
2021-08-09 21:05:25 +02:00
2021-06-28 15:55:00 +02:00
2021-08-06 22:25:00 +02:00
2021-08-06 22:25:00 +02:00
2021-07-20 18:05:05 +02:00
2021-07-11 14:10:58 +02:00
2021-07-07 15:32:17 +02:00
2021-08-07 11:48:00 +02:00
2021-07-08 10:11:00 +02:00
2021-07-14 13:12:25 +02:00
2021-07-07 15:32:17 +02:00
2021-08-04 20:14:54 +02:00
2021-08-04 20:14:54 +02:00
2021-07-27 13:15:16 +02:00
2021-07-18 17:31:13 +02:00
2021-07-29 10:38:31 +02:00
2021-07-27 13:15:16 +02:00
2021-08-04 20:14:54 +02:00
2021-08-06 22:25:00 +02:00
2021-07-19 08:46:55 +02:00
2021-08-06 14:05:58 +02:00
2021-07-08 11:43:34 +02:00
2021-08-08 14:24:55 +02:00
2021-08-10 19:21:16 +02:00
2021-07-20 18:05:05 +02:00
2021-07-28 18:59:53 +02:00
2021-08-08 00:03:45 +02:00
2021-08-07 13:30:59 +02:00
2021-08-06 14:05:58 +02:00
2021-08-08 00:03:45 +02:00
2021-08-07 11:48:00 +02:00
2021-08-04 19:53:04 +02:00
2021-08-04 19:53:04 +02:00
2021-08-01 08:10:16 +02:00
2021-08-10 02:49:37 +02:00
2021-08-08 14:24:55 +02:00
2021-07-27 13:15:16 +02:00
2021-08-06 14:05:58 +02:00
2021-07-04 20:08:28 +01:00
2021-08-06 14:05:58 +02:00
2021-08-10 02:49:37 +02:00
2021-08-10 02:49:37 +02:00
2021-08-06 00:37:47 +02:00
2021-07-11 21:37:38 +02:00
2021-06-24 17:35:49 +04:30
2021-08-08 00:03:45 +02:00
2021-08-03 18:44:01 +02:00
2021-08-10 13:01:39 +02:00
2021-08-06 14:05:58 +02:00
2021-08-06 14:05:58 +02:00
2021-07-18 17:31:13 +02:00
2021-08-07 11:48:00 +02:00
2021-08-07 11:48:00 +02:00