Re: KVM: x86: Reconsider the current approach of vPMU

From: Like Xu
Date: Thu Feb 10 2022 - 07:09:09 EST


On 10/2/2022 5:00 am, Sean Christopherson wrote:
On Wed, Feb 09, 2022, Peter Zijlstra wrote:
On Wed, Feb 09, 2022 at 04:10:48PM +0800, Like Xu wrote:
On 3/2/2022 6:35 am, Jim Mattson wrote:
3) TDX is going to pull the rug out from under us anyway. When the TDX
module usurps control of the PMU, any active host counters are going
to stop counting. We are going to need a way of telling the host perf

I presume that performance counters data of TDX guest is isolated for host,
and host counters (from host perf agent) will not stop and keep counting
only for TDX guests in debug mode.

Right, lots of people like profiling guests from the host. That allows
including all the other virt gunk that supports the guest.

We (real-world production environments) have a number of PMU use cases
(system-wide or zoomed in on each guest) to characterize different guests on the host.


Guests must not unilaterally steal the PMU.

The proposal is to add an option to allow userspace to gift the PMU to the guest,

Please define the verb "gift" in more details.

How do we balance the performance data collection needs of the
'hypervisor user space' and the 'system-wide profiler user space' ?

not to let the guest steal the PMU at will. Off by default, certain capabilities
required, etc... are all completely ok and desired, e.g. we also have use cases
where we don't want to let the guest touch the PMU.

One ideological hurdle here (between upstream and vendor-defined Linux) is whether we
let the host's perf be the final arbiter of PMU resource allocation, rather than not being able
to recycle this resource once it has been dispatched or gifted to the (TDX or normal) guests.


David's response in the original thread[*] explains things far better than I can do.

[*] https://lore.kernel.org/all/CABOYuvbPL0DeEgV4gsC+v786xfBAo3T6+7XQr7cVVzbaoFoEAg@xxxxxxxxxxxxxx