From: Paolo Bonzini <pbonzini@redhat.com>
To: Dave Jones <dsj@fb.com>
Cc: "Bandan Das" <bsd@redhat.com>,
"Linux Kernel" <linux-kernel@vger.kernel.org>,
"Radim Krčmář" <rkrcmar@redhat.com>,
kvm@vger.kernel.org
Subject: Re: RFC: silencing kvm unimplemented msr spew.
Date: Fri, 22 Jul 2016 04:48:41 -0400 (EDT) [thread overview]
Message-ID: <844431780.9635789.1469177321917.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20160721202440.GA10908@fb.com>
> On Tue, Jul 19, 2016 at 04:24:31PM -0400, Bandan Das wrote:
>
> > Heh, actually after speaking about this to Paolo a while back, I had this
> > sleeping
> > in my local branch for a while. Same as what you suggested (without the
> > ratelimiting)
> >
> > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> > index def97b3..c6e6f64 100644
> > --- a/arch/x86/kvm/mmu.c
> > +++ b/arch/x86/kvm/mmu.c
> > @@ -4952,7 +4952,7 @@ void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm,
> > struct kvm_memslots *slots)
> > * zap all shadow pages.
> > */
> > if (unlikely((slots->generation & MMIO_GEN_MASK) == 0)) {
> > - printk_ratelimited(KERN_DEBUG "kvm: zapping shadow pages
> > for mmio generation wraparound\n");
> > + kvm_debug("zapping shadow pages for mmio generation
> > wraparound\n");
> > kvm_mmu_invalidate_zap_all_pages(kvm);
> > }
> > }
> > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> > index 7da5dd2..02d09f9 100644
> > --- a/arch/x86/kvm/x86.c
> > +++ b/arch/x86/kvm/x86.c
> > @@ -2229,7 +2229,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct
> > msr_data *msr_info)
> > if (kvm_pmu_is_valid_msr(vcpu, msr))
> > return kvm_pmu_set_msr(vcpu, msr_info);
> > if (!ignore_msrs) {
> > - vcpu_unimpl(vcpu, "unhandled wrmsr: 0x%x data
> > %llx\n",
> > + vcpu_debug(vcpu, "unhandled wrmsr: 0x%x data
> > %llx\n",
> > msr, data);
> > return 1;
> > } else {
> > @@ -2441,7 +2441,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct
> > msr_data *msr_info)
> > if (kvm_pmu_is_valid_msr(vcpu, msr_info->index))
> > return kvm_pmu_get_msr(vcpu, msr_info->index,
> > &msr_info->data);
> > if (!ignore_msrs) {
> > - vcpu_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr_info->index);
> > + vcpu_debug(vcpu, "unhandled rdmsr: 0x%x\n", msr_info->index);
> > return 1;
> > } else {
> > vcpu_unimpl(vcpu, "ignored rdmsr: 0x%x\n",
> > msr_info->index);
> >
> > I had the same reasoning regarding dynamic debugging which I think is
> > enabled by default on most builds anyway.
>
> Yeah, that's close. Though I would have done the same for the other side of
> the if's too.
> (Still evaluating which mode is actually more useful for us).
For Linux guests, there should be no reason to use ignore_msrs. Linux
is pretty resilient to "missing" MSRs (especially because they are already
ignored if the kernel is compiled with CONFIG_PARAVIRT=y!). The option is
really more for Windows, because it doesn't have anything like CONFIG_PARAVIRT
and because drivers are sometimes less vetted (and sometimes do RDMSR
themselves for whatever reason). In general we try to look at beta versions
of Windows and add any required MSRs well before the final release date,
but if you're using old kernels you might be stuck with ignore_msrs.
IOW, if there was a really common reason to use ignore_msrs it would be
the default. ;)
> Paolo, would you prefer this, or the other approach you already ack'd ?
I think I prefer the other, because vcpu_debug is not ratelimited.
If the guest can trigger a printk it should always be ratelimited.
Paolo
next prev parent reply other threads:[~2016-07-22 8:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20160715192729.GA4712@fb.com>
2016-07-18 15:26 ` RFC: silencing kvm unimplemented msr spew Paolo Bonzini
2016-07-19 19:58 ` Dave Jones
2016-07-19 20:24 ` Bandan Das
2016-07-21 20:24 ` Dave Jones
2016-07-21 20:41 ` Bandan Das
2016-07-22 8:48 ` Paolo Bonzini [this message]
2016-07-22 16:04 ` Bandan Das
2016-07-22 16:20 ` Paolo Bonzini
2016-07-22 16:37 ` Bandan Das
2016-07-19 22:12 ` 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=844431780.9635789.1469177321917.JavaMail.zimbra@redhat.com \
--to=pbonzini@redhat.com \
--cc=bsd@redhat.com \
--cc=dsj@fb.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rkrcmar@redhat.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