linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Jinrong Liang <ljr.kernel@gmail.com>
Cc: Like Xu <like.xu.linux@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>,
	Aaron Lewis <aaronlewis@google.com>,
	David Matlack <dmatlack@google.com>,
	Vishal Annapurve <vannapurve@google.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Bagas Sanjaya <bagasdotme@gmail.com>,
	Jinrong Liang <cloudliang@tencent.com>,
	linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 4/7] KVM: x86/pmu: Add documentation for fixed ctr on PMU filter
Date: Thu, 25 May 2023 10:56:13 -0700	[thread overview]
Message-ID: <ZG+hPaVxYcBq8S5o@google.com> (raw)
In-Reply-To: <20230420104622.12504-5-ljrcore@126.com>

On Thu, Apr 20, 2023, Jinrong Liang wrote:
> From: Jinrong Liang <cloudliang@tencent.com>
> 
> 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>
> ---

Please post this separately from the selftests changes.

>  1 file changed, 21 insertions(+)
> 
> diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
> index a69e91088d76..b5836767e0e7 100644
> --- a/Documentation/virt/kvm/api.rst
> +++ b/Documentation/virt/kvm/api.rst
> @@ -5122,6 +5122,27 @@ 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;
> +
> +Note once this API interface is called, the default zero value of the field

No, there is no "default" value.  Userspace provides the exact value.  The KVM
*selftest* clears fixed_counter_bitmap in all cases, but there is no default
anywhere.

> +"fixed_counter_bitmap" will implicitly affect all fixed counters, even if it's

There is no implicit behavior, userspace very explicitly provides fixed_counter_bitmap.

> +expected to be used only to control the events on generic counters.

I would rather phrase this as:

---
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.
---

> +In addition, pre-defined performance events on the fixed counters already have
> +event_select and unit_mask values defined, which means userspace can also
> +control fixed counters by configuring "action"+ "events" fields.
>
> +When there is a contradiction between these two polices, the fixed performance
> +counter will only follow the rule of the pseudo-code above.

This is unnecessary vague.  I think what you're saying is, with a slight reword
of the first paragraph too:

---
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.
---

  reply	other threads:[~2023-05-25 17:56 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-20 10:46 [PATCH v2 0/7] KVM: selftests: Add tests for pmu event filter Jinrong Liang
2023-04-20 10:46 ` [PATCH v2 1/7] KVM: selftests: Replace int with uint32_t for nevents Jinrong Liang
2023-05-25 16:23   ` Sean Christopherson
2023-04-20 10:46 ` [PATCH v2 2/7] KVM: selftests: Apply create_pmu_event_filter() to fixed ctrs Jinrong Liang
2023-05-25 17:44   ` Sean Christopherson
2023-04-20 10:46 ` [PATCH v2 3/7] KVM: selftests: Test unavailable event filters are rejected Jinrong Liang
2023-05-25 17:46   ` Sean Christopherson
2023-04-20 10:46 ` [PATCH v2 4/7] KVM: x86/pmu: Add documentation for fixed ctr on PMU filter Jinrong Liang
2023-05-25 17:56   ` Sean Christopherson [this message]
2023-04-20 10:46 ` [PATCH v2 5/7] KVM: selftests: Check if pmu_event_filter meets expectations on fixed ctrs Jinrong Liang
2023-05-25 18:11   ` Sean Christopherson
2023-04-20 10:46 ` [PATCH v2 6/7] KVM: selftests: Check gp event filters without affecting fixed event filters Jinrong Liang
2023-05-25 18:12   ` Sean Christopherson
2023-04-20 10:46 ` [PATCH v2 7/7] KVM: selftests: Test pmu event filter with incompatible kvm_pmu_event_filter Jinrong Liang
2023-05-24 23:50   ` Sean Christopherson
2023-05-25  2:19     ` Jinrong Liang
2023-05-25 15:55       ` Sean Christopherson
2023-05-22  3:33 ` [PATCH v2 0/7] KVM: selftests: Add tests for pmu event filter Jinrong Liang
2023-05-22 15:02   ` Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZG+hPaVxYcBq8S5o@google.com \
    --to=seanjc@google.com \
    --cc=aaronlewis@google.com \
    --cc=bagasdotme@gmail.com \
    --cc=cloudliang@tencent.com \
    --cc=corbet@lwn.net \
    --cc=dmatlack@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=like.xu.linux@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=ljr.kernel@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=shuah@kernel.org \
    --cc=vannapurve@google.com \
    --cc=wanpengli@tencent.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).