On Mon, Mar 24, 2025, Mingwei Zhang wrote:
+{
- if (event->attr.exclude_guest && __this_cpu_read(perf_in_guest)) {
My vote is for s/perf_in_guest/guest_ctx_loaded, because "perf in guest" doesn't accurately describe just the mediated PMU case. E.g. perf itself is running in KVM guests when using an emulated vPMU, or no vPMU at all.
And with a Kconfig to guard the mediated PMU, this check (and others) can be elided at compile time for architectures that don't support a mediated PMU (or if KVM is disabled).
/*
* (now + times[total].offset) - (now + times[guest].offset) :=
* times[total].offset - times[guest].offset
*/
return READ_ONCE(times[T_TOTAL].offset) - READ_ONCE(times[T_GUEST].offset);
- }
- return now + READ_ONCE(times[T_TOTAL].offset);
+}