Subject: Re: [RFC PATCH v12 10/11] arm64: add mechanism to let user choose which counter to return

From: Marc Zyngier <[email-masked]>
Date: Mon, 25 May 2020 16:28:21 +0100

On 2020-05-25 15:18, Jianyong Wu wrote:
> Hi Marc,
> 
>> -----Original Message-----
>> From: Marc Zyngier <[email-masked]>
>> Sent: Monday, May 25, 2020 5:17 PM
>> To: Richard Cochran <[email-masked]>; Jianyong Wu
>> <[email-masked]>
>> Cc: [email-masked]; [email-masked]; [email-masked];
>> [email-masked]; [email-masked]; 
>> [email-masked];
>> Mark Rutland <[email-masked]>; [email-masked]; Suzuki Poulose
>> <[email-masked]>; Steven Price <[email-masked]>; linux-
>> [email-masked]; [email-masked];
>> [email-masked]; [email-masked]; Steve Capper
>> <[email-masked]>; Kaly Xin <[email-masked]>; Justin He
>> <[email-masked]>; Wei Chen <[email-masked]>; nd <[email-masked]>
>> Subject: Re: [RFC PATCH v12 10/11] arm64: add mechanism to let user
>> choose which counter to return
>> 
>> On 2020-05-24 03:11, Richard Cochran wrote:
>> > On Fri, May 22, 2020 at 04:37:23PM +0800, Jianyong Wu wrote:
>> >> In general, vm inside will use virtual counter compered with host use
>> >> phyical counter. But in some special scenarios, like nested
>> >> virtualization, phyical counter maybe used by vm. A interface added
>> >> in ptp_kvm driver to offer a mechanism to let user choose which
>> >> counter should be return from host.
>> >
>> > Sounds like you have two time sources, one for normal guest, and one
>> > for nested.  Why not simply offer the correct one to user space
>> > automatically?  If that cannot be done, then just offer two PHC
>> > devices with descriptive names.
>> 
>> There is no such thing as a distinction between nested or non-nested.
>> Both counters are available to the guest at all times, and said guest 
>> can
>> choose whichever it wants to use. So the hypervisor (KVM) has to 
>> support
>> both counters as a reference.
>> 
> It's great that we can decide which counter to return in guest kernel.
> So we can abandon these code, including patch 9/11 and 10/11, that
> expose the interface to userspace to do the decision.
> 
>> For a Linux guest, we always know which reference we're using (the 
>> virtual
>> counter). So it is pointless to expose the choice to userspace at all.
>> 
> So, we should throw these code of deciding counter type in linux
> driver away and just keep the hypercall service of providing both
> virtual counter and physical counter in linux to server non-linux
> guest.
> Am I right?

Exactly. We control Linux, and so far nothing is using the physical
counter directly. It is only using the virtual counter.
On the other side, this is *only* Linux. Other operating systems
will need to pick the reference clock that matches their own.
If one day we change Linux to use the physical counter, we'll
have to do the same thing.

         M.
-- 
Jazz is not dead. It just smells funny...