Message ID | 20230531075052.43239-1-cloudliang@tencent.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] KVM: x86/pmu: Add documentation for fixed ctr on PMU filter | expand |
Gentle ping. 在 2023/5/31 15:50, Jinrong Liang 写道: > From: Jinrong Liang <cloudliang@tencent.com> > > Update the documentation for the KVM_SET_PMU_EVENT_FILTER ioctl > to include a detailed description of how fixed performance events > are handled in the pmu filter. The action and fixed_counter_bitmap > members of the pmu filter to determine whether fixed performance > events can be programmed by the guest. This information is helpful > for correctly configuring the fixed_counter_bitmap and action fields > to filter fixed performance events. > > Suggested-by: Like Xu <likexu@tencent.com> > Reported-by: kernel test robot <lkp@intel.com> > Link: https://lore.kernel.org/oe-kbuild-all/202304150850.rx4UDDsB-lkp@intel.com > Signed-off-by: Jinrong Liang <cloudliang@tencent.com> > --- > > v3: > - Rebased to 5c291b93e5d6(tag: kvm-x86-next-2023.04.26) > - Revise documentation to enhance user understanding. (Sean) > - Post this patch separately from the selftests changes. (Sean) > > v2: > - Wrap the code from the documentation in a block of code; (Bagas Sanjaya) > > v1: > https://lore.kernel.org/kvm/20230414110056.19665-5-cloudliang@tencent.com > > Documentation/virt/kvm/api.rst | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst > index a69e91088d76..9f680eb89b2b 100644 > --- a/Documentation/virt/kvm/api.rst > +++ b/Documentation/virt/kvm/api.rst > @@ -5122,6 +5122,24 @@ Valid values for 'action':: > #define KVM_PMU_EVENT_ALLOW 0 > #define KVM_PMU_EVENT_DENY 1 > > +Via this API, KVM userspace can also control the behavior of the VM's fixed > +counters (if any) by configuring the "action" and "fixed_counter_bitmap" fields. > + > +Specifically, KVM follows the following pseudo-code when determining whether to > +allow the guest FixCtr[i] to count its pre-defined fixed event:: > + > + FixCtr[i]_is_allowed = (action == ALLOW) && (bitmap & BIT(i)) || > + (action == DENY) && !(bitmap & BIT(i)); > + FixCtr[i]_is_denied = !FixCtr[i]_is_allowed; > + > +KVM always consumes fixed_counter_bitmap, it's userspace's responsibility to > +ensure fixed_counter_bitmap is set correctly, e.g. if userspace wants to define > +a filter that only affects general purpose counters. > + > +Note, the "events" field also applies to fixed counters' hardcoded event_select > +and unit_mask values. "fixed_counter_bitmap" has higher priority than "events" > +if there is a contradiction between the two. > + > 4.121 KVM_PPC_SVM_OFF > --------------------- > > > base-commit: 5c291b93e5d665380dbecc6944973583f9565ee5
On Wed, 31 May 2023 15:50:52 +0800, Jinrong Liang wrote: > Update the documentation for the KVM_SET_PMU_EVENT_FILTER ioctl > to include a detailed description of how fixed performance events > are handled in the pmu filter. The action and fixed_counter_bitmap > members of the pmu filter to determine whether fixed performance > events can be programmed by the guest. This information is helpful > for correctly configuring the fixed_counter_bitmap and action fields > to filter fixed performance events. > > [...] Applied to kvm-x86 docs, thanks! [1/1] KVM: x86/pmu: Add documentation for fixed ctr on PMU filter https://github.com/kvm-x86/linux/commit/b35babd3abea -- https://github.com/kvm-x86/linux/tree/next
diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst index a69e91088d76..9f680eb89b2b 100644 --- a/Documentation/virt/kvm/api.rst +++ b/Documentation/virt/kvm/api.rst @@ -5122,6 +5122,24 @@ Valid values for 'action':: #define KVM_PMU_EVENT_ALLOW 0 #define KVM_PMU_EVENT_DENY 1 +Via this API, KVM userspace can also control the behavior of the VM's fixed +counters (if any) by configuring the "action" and "fixed_counter_bitmap" fields. + +Specifically, KVM follows the following pseudo-code when determining whether to +allow the guest FixCtr[i] to count its pre-defined fixed event:: + + FixCtr[i]_is_allowed = (action == ALLOW) && (bitmap & BIT(i)) || + (action == DENY) && !(bitmap & BIT(i)); + FixCtr[i]_is_denied = !FixCtr[i]_is_allowed; + +KVM always consumes fixed_counter_bitmap, it's userspace's responsibility to +ensure fixed_counter_bitmap is set correctly, e.g. if userspace wants to define +a filter that only affects general purpose counters. + +Note, the "events" field also applies to fixed counters' hardcoded event_select +and unit_mask values. "fixed_counter_bitmap" has higher priority than "events" +if there is a contradiction between the two. + 4.121 KVM_PPC_SVM_OFF ---------------------