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

From: Marc Zyngier
Date: Mon Jan 13 2020 - 06:16:30 EST


Hi Jianyong,

On 2020-01-13 10:30, Jianyong Wu wrote:
Hi Marc,

-----Original Message-----
From: Marc Zyngier <maz@xxxxxxxxxx>
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...