Re: [RFC PATCH v2] ptp: Add vDSO-style vmclock support
From: Peter Hilber <hidden>
Date: 2024-06-28 11:33:35
Also in:
linux-arm-kernel, linux-rtc, lkml, virtualization
On 27.06.24 18:03, David Woodhouse wrote:
I've updated the tree at https://git.infradead.org/users/dwmw2/linux.git/shortlog/refs/heads/vmclock (but not yet the qemu one). I think I've taken into account all your comments apart from the one about non-64-bit counters wrapping. I reduced the seq_count to 32 bit to make room for a 32-bit flags field, added the time type (UTC/TAI/MONOTONIC) and a smearing hint, with some straw man definitions for smearing algorithms for which I could actually find definitions. The structure now looks like this: struct vmclock_abi {
[...]
/* * What time is exposed in the time_sec/time_frac_sec fields? */ uint8_t time_type; #define VMCLOCK_TIME_UNKNOWN 0 /* Invalid / no time exposed */ #define VMCLOCK_TIME_UTC 1 /* Since 1970-01-01 00:00:00z */ #define VMCLOCK_TIME_TAI 2 /* Since 1970-01-01 00:00:00z */ #define VMCLOCK_TIME_MONOTONIC 3 /* Since undefined epoch */ /* Bit shift for counter_period_frac_sec and its error rate */ uint8_t counter_period_shift; /* * Unlike in NTP, this can indicate a leap second in the past. This * is needed to allow guests to derive an imprecise clock with * smeared leap seconds for themselves, as some modes of smearing * need the adjustments to continue even after the moment at which * the leap second should have occurred. */ int8_t leapsecond_direction; uint64_t leapsecond_tai_sec; /* Since 1970-01-01 00:00:00z */ /* * Paired values of counter and UTC at a given point in time. */ uint64_t counter_value; uint64_t time_sec; /* Since 1970-01-01 00:00:00z */
Nitpick: The comment is not valid any more for TIME_MONOTONIC.