All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
	KVM list <kvm@vger.kernel.org>,
	Arjan van de Ven <arjan@linux.intel.com>
Subject: Re: Should KVM_GUEST stop depending on PARAVIRT?
Date: Wed, 29 Jul 2015 11:40:15 +0200	[thread overview]
Message-ID: <20150729094015.GL19282@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <55B89BB9.1060102@redhat.com>

On Wed, Jul 29, 2015 at 11:24:09AM +0200, Paolo Bonzini wrote:
> 
> 
> On 29/07/2015 11:19, Peter Zijlstra wrote:
> > On Tue, Jul 28, 2015 at 05:23:22PM -0700, Andy Lutomirski wrote:
> >> PeterZ, can we fix this for real instead of relying on
> >> CONFIG_PARAVIRT=y accidentally turning all msr accesses into "safe"
> >> accesses?  We have the CPUID "hypervisor" bit, but I still don't fully
> >> understand the problem.
> > 
> > So a whole bunch of PMU drivers already probe the MSRs at init time
> > using a combination of rdmsrl_safe() and wrmsrl_safe() to see if:
> > 
> >  1) its there at all
> >  2) if its there, it 'works' like it ought to
> > 
> > See for example: arch/x86/kernel/cpu/perf_event.c:check_hw_exists().
> 
> Great.  Of course it's even better if you can probe it with CPUID (e.g.
> aperfmperf in intel_pstate.c), then there's no need for the _safe variant.

Reliable CPUID enumeration would be nice indeed. Note that CPUID isn't
ideal either, for instance the CPUID HT bit doesn't indicate if the CPU
has hyperthreading enabled, just that it is able to report extended
topology information.

Determining if a CPU has hyperthreading enabled is extremely difficult,
and basically boils down to init all cpus, see if there are siblings
anywhere.

And then try and distinguish between the case where HT is disabled and
someone hot-unplugged all siblings :-)

> > As to the 'bug' at hand, I really don't see the problem. The RAPL driver
> > says there's no valid RAPL domains, this is true, there aren't any on
> > the virtual machine, so what?
> 
> Well, people have complained about it because it's KERN_ERR.  Do you
> think it is okay to downgrade this (perhaps not even just on VMs) to info?

Ah, do people really have nothing better to do? ;-) Seems like a petty
complaint.

Sure, it seems our check_hw_exists() does the same thing:

        printk("%sFailed to access perfctr msr (MSR %x is %Lx)\n",
                boot_cpu_has(X86_FEATURE_HYPERVISOR) ? KERN_INFO : KERN_ERR,
                reg, val_new);

so ERR for real hardware, INFO for hypervisor thingies.

  reply	other threads:[~2015-07-29  9:40 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-24 17:33 Should KVM_GUEST stop depending on PARAVIRT? Andy Lutomirski
2015-07-27 13:59 ` Paolo Bonzini
2015-07-27 15:56   ` Andy Lutomirski
2015-07-27 17:49     ` Paolo Bonzini
2015-07-27 17:51       ` Andy Lutomirski
2015-07-27 18:30         ` Paolo Bonzini
2015-07-27 18:45           ` Andy Lutomirski
2015-07-27 19:04             ` Arjan van de Ven
2015-07-28  9:57             ` Paolo Bonzini
2015-07-29  0:23               ` Andy Lutomirski
2015-07-29  4:49                 ` Venkatesh Srinivas
2015-07-29  8:27                   ` Paolo Bonzini
2015-07-29  9:19                 ` Peter Zijlstra
2015-07-29  9:24                   ` Paolo Bonzini
2015-07-29  9:40                     ` Peter Zijlstra [this message]
2015-07-29  9:41                       ` Paolo Bonzini
2015-07-30  0:14                         ` Andy Lutomirski

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=20150729094015.GL19282@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=arjan@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=pbonzini@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.