From: Like Xu <like.xu.linux@gmail.com>
To: Jim Mattson <jmattson@google.com>, Paolo Bonzini <pbonzini@redhat.com>
Cc: Maxim Levitsky <mlevitsk@redhat.com>,
Sean Christopherson <seanjc@google.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Joerg Roedel <joro@8bytes.org>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
David Dunn <daviddunn@google.com>
Subject: Re: [PATCH] KVM: x86/svm: Add module param to control PMU virtualization
Date: Mon, 10 Jan 2022 14:23:26 +0800 [thread overview]
Message-ID: <a2b6fb82-292b-f714-cfd7-31a5310c28ed@gmail.com> (raw)
In-Reply-To: <CALMp9eR3PEgXhe_z8ArHK0bPeW4=htta_f3LHTm9jqL2rtcT7A@mail.gmail.com>
On 9/1/2022 9:23 am, Jim Mattson wrote:
> On Fri, Dec 10, 2021 at 7:48 PM Jim Mattson <jmattson@google.com> wrote:
>>
>> On Fri, Dec 10, 2021 at 6:15 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>
>>> On 12/10/21 20:25, Jim Mattson wrote:
>>>> In the long run, I'd like to be able to override this system-wide
>>>> setting on a per-VM basis, for VMs that I trust. (Of course, this
>>>> implies that I trust the userspace process as well.)
>>>>
>>>> How would you feel if we were to add a kvm ioctl to override this
>>>> setting, for a particular VM, guarded by an appropriate permissions
>>>> check, like capable(CAP_SYS_ADMIN) or capable(CAP_SYS_MODULE)?
>>>
>>> What's the rationale for guarding this with a capability check? IIRC
>>> you don't have such checks for perf_event_open (apart for getting kernel
>>> addresses, which is not a problem for virtualization).
>>
>> My reasoning was simply that for userspace to override a mode 0444
>> kernel module parameter, it should have the rights to reload the
>> module with the parameter override. I wasn't thinking specifically
>> about PMU capabilities.
Do we have a precedent on any module parameter rewriting for privileger ?
A further requirement is whether we can dynamically change this part of
the behaviour when the guest is already booted up.
>
> Assuming that we trust userspace to decide whether or not to expose a
> virtual PMU to a guest (as we do on the Intel side), perhaps we could
> make use of the existing PMU_EVENT_FILTER to give us per-VM control,
> rather than adding a new module parameter for per-host control. If
Various granularities of control are required to support vPMU production
scenarios, including per-host, per-VM, and dynamic-guest-alive control.
> userspace calls KVM_SET_PMU_EVENT_FILTER with an action of
> KVM_PMU_EVENT_ALLOW and an empty list of allowed events, KVM could
> just disable the virtual PMU for that VM.
AMD will also have "CPUID Fn8000_0022_EBX[NumCorePmc, 3:0]".
>
> Today, the semantics of an empty allow list are quite different from
> the proposed pmuv module parameter being false. However, it should be
> an easy conversion. Would anyone be concerned about changing the
> current semantics of an empty allow list? Is there a need for
> disabling PMU virtualization for legacy userspace implementations that
> can't be modified to ask for an empty allow list?
>
AFAI, at least one user-space agent has integrated with it plus additional
"action"s.
Once the API that the kernel presents to user space has been defined,
it's best not to change it and instead fall into remorse.
"But I am not a decision maker. " :D
Thanks,
Like Xu
next prev parent reply other threads:[~2022-01-10 6:23 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-17 8:03 [PATCH] KVM: x86/svm: Add module param to control PMU virtualization Like Xu
2021-11-18 13:25 ` Paolo Bonzini
2021-12-10 19:25 ` Jim Mattson
2021-12-11 2:15 ` Paolo Bonzini
2021-12-11 3:48 ` Jim Mattson
2022-01-09 1:23 ` Jim Mattson
2022-01-10 6:23 ` Like Xu [this message]
2022-01-10 18:13 ` Jim Mattson
2022-01-11 2:11 ` Like Xu
2022-01-11 3:24 ` Jim Mattson
2022-01-11 6:18 ` Like Xu
2022-01-11 7:25 ` Jim Mattson
2022-01-15 1:26 ` Jim Mattson
2022-01-17 2:33 ` Like Xu
2022-01-17 8:36 ` Paolo Bonzini
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=a2b6fb82-292b-f714-cfd7-31a5310c28ed@gmail.com \
--to=like.xu.linux@gmail.com \
--cc=daviddunn@google.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mlevitsk@redhat.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=vkuznets@redhat.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