From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Zhenzhong Duan <zhenzhong.duan@intel.com>,
qemu-devel@nongnu.org, mtosatti@redhat.com, likexu@tencent.com,
xiangfeix.ma@intel.com
Subject: Re: [PATCH] i386: Disable BTS and PEBS
Date: Tue, 19 Jul 2022 18:53:05 +0000 [thread overview]
Message-ID: <Ytb9kTFtnltT3fdf@google.com> (raw)
In-Reply-To: <9dbe748c-57b4-eab5-3933-0e9891b031c1@redhat.com>
On Tue, Jul 19, 2022, Paolo Bonzini wrote:
> On 7/18/22 22:12, Sean Christopherson wrote:
> > On Mon, Jul 18, 2022, Paolo Bonzini wrote:
> > > This needs to be fixed in the kernel because old QEMU/new KVM is supported.
> >
> > I can't object to adding a quirk for this since KVM is breaking userspace, but on
> > the KVM side we really need to stop "sanitizing" userspace inputs unless it puts
> > the host at risk, because inevitably it leads to needing a quirk.
>
> The problem is not the sanitizing, it's that userspace literally cannot know
> that this needs to be done because the feature bits are "backwards" (1 =
> unavailable).
Yes, the bits being inverted contributed to KVM not providing a way for userspace
to enumerate PEBS and BTS support, but lack of enumeration is a seperate issue.
If KVM had simply ignored invalid guest state from the get go, then userspace would
never have gained a dependency on KVM sanitizing guest state. The fact that KVM
didn't enumerate support in any way is an orthogonal problem. To play nice with
older userspace, KVM will need to add a quirk to restore the sanizting code, but
that doesn't solve the enumeration issue. And vice versa, solving the enuemaration
problem doesn't magically fix old userspace.
> The right way to fix it is probably to use feature MSRs and, by default,
> leave the features marked as unavailable. I'll think it through and post a
> patch tomorrow for both KVM and QEMU (to enable PEBS).
Yeah, lack of CPUID bits is annoying.
next prev parent reply other threads:[~2022-07-19 18:54 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-18 3:22 [PATCH] i386: Disable BTS and PEBS Zhenzhong Duan
2022-07-18 3:57 ` Like Xu
2022-07-18 7:44 ` Duan, Zhenzhong
2022-07-18 16:08 ` Paolo Bonzini
2022-07-18 20:12 ` Sean Christopherson
2022-07-19 18:18 ` Paolo Bonzini
2022-07-19 18:53 ` Sean Christopherson [this message]
2022-07-20 2:35 ` Duan, Zhenzhong
2022-07-20 15:48 ` Sean Christopherson
2022-07-21 2:42 ` Like Xu
2022-08-19 1:38 ` Duan, Zhenzhong
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=Ytb9kTFtnltT3fdf@google.com \
--to=seanjc@google.com \
--cc=likexu@tencent.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=xiangfeix.ma@intel.com \
--cc=zhenzhong.duan@intel.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).