Re: [PATCH v2 5/5] perf: Correct perf sampling with guest VMs

From: Colton Lewis
Date: Thu Sep 12 2024 - 16:31:11 EST


Sean Christopherson <seanjc@xxxxxxxxxx> writes:

On Wed, Sep 11, 2024, Colton Lewis wrote:
Previously any PMU overflow interrupt that fired while a VCPU was
loaded was recorded as a guest event whether it truly was or not. This
resulted in nonsense perf recordings that did not honor
perf_event_attr.exclude_guest and recorded guest IPs where it should
have recorded host IPs.

Rework the sampling logic to only record guest samples for events with
exclude_guest clear. This way any host-only events with exclude_guest
set will never see unexpected guest samples. The behaviour of events
with exclude_guest clear is unchanged.

Nit, "with exclude_guest clear" is easy to misread as simply "with exclude_guest"
(I did so at least three times). Maybe

The behavior of exclude_guest=0 events is unchanged.

or

The behavior of events without exclude_guest is unchanged.

I think it's also worth explicitly calling out that events that are configured
to sample both host and guest may still be prone to misattributing a PMI that
arrived in the host as a guest event, depending on the KVM arch and/or vendor
behavior.

Done