David Woodhouse
bc484a5096
ptp: vmclock: Use hw_cycles from snapshot for precise TSC pairing
...
When the system clocksource is kvmclock or Hyper-V (not the TSC directly),
vmclock_get_crosststamp() falls through to a separate get_cycles() call,
losing the atomic pairing between the system time snapshot and the TSC
reading.
Now that ktime_get_snapshot_id() populates hw_cycles with the underlying
TSC value for derived clocksources, use it when available. This gives a
perfect (system_time, tsc) pairing for the device time calculation.
The SUPPORT_KVMCLOCK wrapper is still needed to convert the TSC into
kvmclock nanoseconds for system_counter->cycles, because otherwise
get_device_system_crosststamp() can't interpret the result against the
system clock.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk >
Signed-off-by: Thomas Gleixner <tglx@kernel.org >
Assisted-by: Kiro:claude-opus-4.6-1m
Link: https://patch.msgid.link/20260604095755.64849-4-dwmw2@infradead.org
2026-06-05 14:25:03 +02:00
..
2026-04-15 08:45:00 -07:00
2026-05-01 16:32:42 -07:00
2026-04-24 13:23:50 -07:00
2026-04-27 11:38:16 +02:00
2026-04-23 12:21:14 -07:00
2026-04-27 06:48:16 +09:00
2026-04-24 15:06:55 -07:00
2026-04-13 09:19:42 -04:00
2026-04-24 13:23:50 -07:00
2026-04-27 15:52:51 -06:00
2026-04-25 16:20:52 -07:00
2026-04-26 14:03:20 -07:00
2026-06-05 14:25:03 +02:00
2026-04-24 13:23:50 -07:00
2026-04-06 09:04:53 +02:00
2026-04-17 14:09:02 -07:00
2026-04-14 17:10:15 -07:00
2026-04-16 17:37:03 +08:00
2026-04-17 15:52:58 -07:00
2026-04-21 14:12:01 -07:00
2026-04-04 03:15:39 +09:00
2026-04-17 10:29:01 -07:00
2026-04-24 11:44:52 -07:00
2026-04-30 11:37:39 +02:00
2026-04-14 15:32:39 -07:00
2026-04-24 09:54:45 -07:00
2026-04-10 11:21:06 -03:00
2026-04-06 09:04:53 +02:00
2026-04-24 11:59:46 -07:00
2026-05-01 12:49:29 +10:00
2026-04-02 15:55:09 +02:00
2026-04-22 18:36:40 -07:00
2026-04-02 22:33:44 +02:00
2026-04-12 23:29:31 -07:00
2026-04-24 11:44:52 -07:00
2026-04-15 14:37:32 -07:00
2026-04-06 09:43:18 -05:00
2026-04-24 13:23:50 -07:00
2026-04-20 00:03:38 +02:00
2026-04-12 22:06:02 +02:00
2026-04-24 13:23:50 -07:00
2026-04-21 08:22:18 -07:00
2026-04-22 18:36:40 -07:00
2026-04-07 10:06:50 +02:00
2026-04-17 11:12:42 -07:00
2026-04-17 07:18:03 -07:00
2026-04-09 13:49:19 +01:00
2026-04-18 13:10:14 -05:00
2026-05-01 11:26:15 -07:00
2026-04-17 14:18:55 -07:00
2026-04-17 11:12:42 -07:00
2026-04-20 11:31:01 -07:00
2026-04-24 13:23:50 -07:00
2026-04-10 10:29:58 +02:00
2026-04-02 17:06:09 +02:00
2026-04-27 15:08:04 +02:00
2026-04-24 13:23:50 -07:00
2026-06-04 11:04:18 +02:00
2026-04-27 18:00:43 -07:00
2026-04-15 14:41:21 -07:00
2026-04-13 10:40:26 -07:00
2026-04-27 15:47:21 -06:00
2026-04-06 09:04:53 +02:00
2026-04-18 11:29:14 -07:00
2026-04-17 15:46:46 +02:00
2026-04-02 17:05:56 +02:00
2026-04-24 09:54:45 -07:00
2026-04-23 11:22:16 -07:00
2026-04-14 16:48:56 -07:00
2026-04-17 10:22:08 -07:00
2026-04-18 16:59:09 -07:00
2026-04-20 12:02:24 -07:00
2026-04-08 12:01:37 +02:00
2026-04-19 08:47:40 -07:00
2026-04-01 16:03:05 +02:00
2026-06-02 11:39:58 +02:00
2026-06-05 14:25:03 +02:00
2026-04-23 08:37:07 -07:00
2026-04-30 13:12:29 +09:00
2026-04-17 14:18:55 -07:00
2026-04-20 16:46:22 -07:00
2026-04-23 08:57:24 -07:00
2026-04-06 09:37:51 -05:00
2026-04-25 16:39:03 -07:00
2026-04-28 14:45:02 +02:00
2026-04-27 15:52:51 -06:00
2026-04-17 14:18:55 -07:00
2026-04-17 10:16:53 -07:00
2026-05-01 10:14:39 +09:00
2026-04-24 13:23:50 -07:00
2026-04-21 08:22:18 -07:00
2026-04-16 20:34:34 -07:00
2026-04-14 08:55:18 -07:00
2026-04-10 13:10:28 +02:00
2026-04-19 08:44:41 -07:00
2026-04-08 22:27:16 -04:00
2026-04-05 13:53:44 -07:00
2026-04-21 08:22:18 -07:00
2026-04-04 00:47:50 +02:00
2026-04-21 12:01:22 -06:00
2026-04-23 16:50:42 -07:00
2026-04-22 17:02:55 +02:00
2026-04-26 09:51:29 -07:00
2026-06-04 11:04:17 +02:00
2026-04-03 10:55:12 +02:00
2026-04-07 21:06:59 +02:00
2026-04-23 15:32:59 +02:00
2026-04-23 10:24:02 -07:00
2026-04-23 10:24:02 -07:00