All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	qemu-devel@nongnu.org, ehabkost@redhat.com
Subject: Re: [Qemu-devel] [PATCH] kvm: migrate vPMU state
Date: Thu, 25 Jul 2013 13:14:12 +0300	[thread overview]
Message-ID: <20130725101412.GD22735@redhat.com> (raw)
In-Reply-To: <51EFEC3B.7060805@suse.de>

On Wed, Jul 24, 2013 at 05:01:15PM +0200, Andreas Färber wrote:
> Am 24.07.2013 16:37, schrieb Paolo Bonzini:
> > This requires kernel 3.10 but it is otherwise quite simple to do.
> > The kernel pays attention to MSRs writes that are host initiated, and
> > disables all side effects of the PMU registers (e.g. the global status
> > MSR can be written and global overflow control MSR does not clear bits
> > in the global status MSR).
> > 
> > Only two bits are interesting.  First, the number of general-purpose
> > counters must be fetched from CPUID so that we do not read non-existent
> > MSRs.  It need not be part of the migration stream.
> > 
> > Second, to avoid any possible side effects during the setting of MSRs
> > I stop the PMU while setting the counters and event selector MSRs.
> > Stopping the PMU snapshots the counters and ensures that no strange
> > races can happen if the counters were saved close to their overflow
> > value.
> > 
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > ---
> >  target-i386/cpu.h     | 23 +++++++++++++
> >  target-i386/kvm.c     | 93 ++++++++++++++++++++++++++++++++++++++++++++++++---
> >  target-i386/machine.c | 44 ++++++++++++++++++++++++
> >  3 files changed, 155 insertions(+), 5 deletions(-)
> > 
> > diff --git a/target-i386/cpu.h b/target-i386/cpu.h
> > index 058c57f..522eed4 100644
> > --- a/target-i386/cpu.h
> > +++ b/target-i386/cpu.h
> > @@ -304,6 +304,8 @@
> >  #define MSR_TSC_ADJUST                  0x0000003b
> >  #define MSR_IA32_TSCDEADLINE            0x6e0
> >  
> > +#define MSR_P6_PERFCTR0			0xc1
> > +
> >  #define MSR_MTRRcap			0xfe
> >  #define MSR_MTRRcap_VCNT		8
> >  #define MSR_MTRRcap_FIXRANGE_SUPPORT	(1 << 8)
> > @@ -317,6 +319,8 @@
> >  #define MSR_MCG_STATUS                  0x17a
> >  #define MSR_MCG_CTL                     0x17b
> >  
> > +#define MSR_P6_EVNTSEL0			0x186
> > +
> >  #define MSR_IA32_PERF_STATUS            0x198
> >  
> >  #define MSR_IA32_MISC_ENABLE		0x1a0
> > @@ -342,6 +346,14 @@
> >  
> >  #define MSR_MTRRdefType			0x2ff
> >  
> > +#define MSR_CORE_PERF_FIXED_CTR0	0x309
> > +#define MSR_CORE_PERF_FIXED_CTR1	0x30a
> > +#define MSR_CORE_PERF_FIXED_CTR2	0x30b
> > +#define MSR_CORE_PERF_FIXED_CTR_CTRL	0x38d
> > +#define MSR_CORE_PERF_GLOBAL_STATUS	0x38e
> > +#define MSR_CORE_PERF_GLOBAL_CTRL	0x38f
> > +#define MSR_CORE_PERF_GLOBAL_OVF_CTRL	0x390
> > +
> >  #define MSR_MC0_CTL			0x400
> >  #define MSR_MC0_STATUS			0x401
> >  #define MSR_MC0_ADDR			0x402
> [snip]
> 
> We have a mix of lines with tab indentation and with space indentation
> here - should new sections be using spaces to satisfy checkpatch.pl?
> 
> New msr_* fields would be candidates for X86CPU, but there's already one
> in CPUX86State. :/
> 
Is this NAK? Should I expect another version?

--
			Gleb.

  reply	other threads:[~2013-07-25 10:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-24 14:37 [Qemu-devel] [PATCH] kvm: migrate vPMU state Paolo Bonzini
2013-07-24 15:01 ` Andreas Färber
2013-07-25 10:14   ` Gleb Natapov [this message]
2013-07-25 10:27     ` Paolo Bonzini
2013-07-25 14:46     ` Andreas Färber
2013-07-25 14:50       ` Andreas Färber

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=20130725101412.GD22735@redhat.com \
    --to=gleb@redhat.com \
    --cc=afaerber@suse.de \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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 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.