On Thu, 20 Mar 2025 06:03:35 +0000,
Akihiko Odaki <akihiko.odaki@xxxxxxxxxx> wrote:
On 2025/03/20 3:51, Oliver Upton wrote:
On Wed, Mar 19, 2025 at 06:38:38PM +0000, Marc Zyngier wrote:
On Wed, 19 Mar 2025 11:51:21 +0000, Akihiko Odaki <akihiko.odaki@xxxxxxxxxx> wrote:
What about setting the flag automatically when a user fails to pin
vCPUs to CPUs that are covered by one PMU? There would be no change if
a user correctly pins vCPUs as it is. Otherwise, they will see a
correct feature set advertised to the guest and the cycle counter
working.
How do you know that the affinity is "correct"? VCPU affinity can be
changed at any time. I, for one, do not want my VMs to change
behaviour because I let the vcpus bounce around as the scheduler sees
fit.
Checking the affinity when picking the default PMU; the vCPU affinity
is the only thing that rules the choice of the default PMU even now.
Perhaps we may model the API as follows: introduce another "composite"
PMU that works on any core but only exposes the cycle counter. Robust
VMMs will choose it or one of hardware PMUs with
KVM_ARM_VCPU_PMU_V3_SET_PMU. KVM will choose the default PMU according
to the vCPU affinity at the point of KVM_ARM_VCPU_INIT otherwise. If
the affinity is covered by one hardware PMU, that PMU will be chosen
as the default. The "composite" PMU will be the default otherwise.
This makes no sense to me. A VCPU is always affine to a PMU, because
we do not support configurations where only some CPUs have a PMU. This
is an all-or-nothing situation.
More importantly, you keep suggesting the same "new default", and I
keep saying NO.
My position is clear: if you want a *new* behaviour, you *must* add a
new flag that the VMM explicitly provides to enable this CC-only PMU.
No change in default behaviour at all.
I'm not going to move from that.
M.