public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Kurt Kiefer <kekiefer@gmail.com>
Cc: kvm <kvm@vger.kernel.org>
Subject: Re: Question about guest MSR loading/saving (Intel)
Date: Thu, 04 Feb 2010 21:12:37 +0200	[thread overview]
Message-ID: <4B6B1C25.2060304@redhat.com> (raw)
In-Reply-To: <0910BB5A-E4FA-4085-978E-D6374A1376B7@gmail.com>

On 02/02/2010 03:57 AM, Kurt Kiefer wrote:
> Hi all,
>
> This is a vague/general question. For some background: I have a reason 
> (control of IA32_PERF_GLOBAL_CTRL) for loading/saving MSRs on 
> VM-entry/exit. To get this to work correctly, I made changes to use 
> the conventional VMX MSR load areas of the VMCS for this particular 
> MSR. Works great.
>
> Is there a particular reason why MSRs are currently loaded/saved 
> through KVM's unconventional facilities (vmx.c:save_msrs(), 
> vmx.c:load_msrs()), rather than through VM entry/exit MSR load regions 
> in the VMCS? I see that only long mode guests on x86_64 are effected 
> by this.
>
> Any insight could be useful. Do you think MSR loading via VMCS would 
> be faster? Are there downsides to doing it one way or the other?

kvm doesn't switch msrs on every entry/exit.  For example, the syscall 
msrs are only used by the syscall/sysret instructions, so we only switch 
them before returning to userspace, which happens much less frequently 
than vmexits.

The PMU is used by the processor at all times, so it makes perfect sense 
to use the vmx autoload/autosave regions for that.

-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


      parent reply	other threads:[~2010-02-04 19:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-02  1:57 Question about guest MSR loading/saving (Intel) Kurt Kiefer
2010-02-02  2:53 ` Sheng Yang
2010-02-04 19:12 ` Avi Kivity [this message]

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=4B6B1C25.2060304@redhat.com \
    --to=avi@redhat.com \
    --cc=kekiefer@gmail.com \
    --cc=kvm@vger.kernel.org \
    /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