[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e0935a7cc42ad34e71c17f3b5ada4a16a8d1f539.camel@infradead.org>
Date: Sat, 15 Jun 2024 09:01:31 +0100
From: David Woodhouse <dwmw2@...radead.org>
To: Peter Hilber <peter.hilber@...nsynergy.com>,
linux-kernel@...r.kernel.org, virtualization@...ts.linux.dev,
virtio-dev@...ts.oasis-open.org
Cc: "Michael S. Tsirkin" <mst@...hat.com>, Jason Wang <jasowang@...hat.com>,
Xuan Zhuo <xuanzhuo@...ux.alibaba.com>, Richard Cochran
<richardcochran@...il.com>, netdev@...r.kernel.org, Marc Zyngier
<maz@...nel.org>, Mark Rutland <mark.rutland@....com>, Daniel Lezcano
<daniel.lezcano@...aro.org>, Thomas Gleixner <tglx@...utronix.de>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [RFC PATCH v3 5/7] virtio_rtc: Add PTP clocks
On Mon, 2023-12-18 at 08:38 +0100, Peter Hilber wrote:
>
> + ret = viortc_hw_xtstamp_params(&hw_counter, &cs_id);
> + if (ret)
> + return ret;
> +
> + ktime_get_snapshot(&history_begin);
> + if (history_begin.cs_id != cs_id)
> + return -EOPNOTSUPP;
I think you have to call ktime_get_snapshot() anyway to get a snapshot
from before your crosststamp? But I still don't much like the fact that
you need to use it to work out which cs_id is being used.
Shouldn't get_device_system_crosststamp() pass that to its get_time_fn
as a hint?
On x86, you are likely to find that history_begin.cs_id is the KVM
clock, so this will return -EOPNOTSUPP and userspace will have to fall
back to PTP_SYS_OFFSET. I note the KVM PTP clock actually *converts* a
TSC-based crosststamp to kvmclock µs for itself, so that it can report
*cs_id = CSID_X86_KVM_CLK. Not sure how I feel about that though. I'm
inclined to suggest that it shouldn't, as anyone who wants accurate
timekeeping shouldn't be using the KVM clock anyway.
But we should at least be relatively consistent about it.
Download attachment "smime.p7s" of type "application/pkcs7-signature" (5965 bytes)
Powered by blists - more mailing lists