Re: [RFC PATCH v9 6/8] psci: Add hvc call service for ptp_kvm.

Marc Zyngier
2020-01-13T11:16:33Z

Hi Jianyong,

On 2020-01-13 10:30, Jianyong Wu wrote:
> Hi Marc,
>
>> -----Original Message-----
>> From: Marc Zyngier <maz@kernel.org>
>> Sent: Friday, January 10, 2020 6:56 PM
>> NV breaks that assumtion, because the guest hypervisor is using the
>> physical
>> counter. Also, let's not forget that the hypercall isn't Linux
>> specific.
>> I can write my own non-Linux guest and still use this hypercall.
>> Nothing in
>> there says that I can't use the physical counter if I want to.
>>
>> So somehow, you need to convey the the hypervisor the notion of
>> *which*
>> counter the guest uses.
>>
>> Does it make sense? Or am I missing something?
>>
> I know what you say. Let me try to solve this problem.
> Step 0, summary out all the conditions we should process, which will
> sever as branch condition.(now only normal virt and nested virt, I
> think)

No. You shouldn't think of the various use cases, but of which time
references a guest can use. You don't need nested virt to use the
physical
counter, for example.

> Step 1, figure out the set of reference counter value used by guest
> in all condition.

That should be for the guest to tell you when it calls into the PV
service.

> Step 2, determine which reference counter value will be used by guest
> in a certain condition in hypercall.
> In step 1, can we give the set only 2 elements that one is physical
> counter the other is virtual counter?

I don't think returning the two values is useful. Just return what the
guest asks for.

> For step 2, I have no idea for that now. can you give me some hint
> about it?

Just expand your SMC call to take a parameter indicating the reference
counter, and return the sampled (or computed) value corresponding to
that counter.

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