From: Qing He <qing.he@intel.com>
To: Sheng Yang <sheng@linux.intel.com>
Cc: Avi Kivity <avi@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Ingo Molnar <mingo@elte.hu>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH] x86/kvm: Show guest system/user cputime in cpustat
Date: Fri, 12 Mar 2010 16:53:21 +0800 [thread overview]
Message-ID: <20100312085321.GA9075@ub-qhe2> (raw)
In-Reply-To: <201003111717.26475.sheng@linux.intel.com>
On Thu, 2010-03-11 at 17:17 +0800, Sheng Yang wrote:
> On Thursday 11 March 2010 15:50:54 Avi Kivity wrote:
> > On 03/11/2010 09:46 AM, Sheng Yang wrote:
> > > On Thursday 11 March 2010 15:36:01 Avi Kivity wrote:
> > >> On 03/11/2010 09:20 AM, Sheng Yang wrote:
> > >>> Currently we can only get the cpu_stat of whole guest as one. This
> > >>> patch enhanced cpu_stat with more detail, has guest_system and
> > >>> guest_user cpu time statistics with a little overhead.
> > >>>
> > >>> Signed-off-by: Sheng Yang<sheng@linux.intel.com>
> > >>> ---
> > >>>
> > >>> This draft patch based on KVM upstream to show the idea. I would split
> > >>> it into more kernel friendly version later.
> > >>>
> > >>> The overhead is, the cost of get_cpl() after each exit from guest.
> > >>
> > >> This can be very expensive in the nested virtualization case, so I
> > >> wouldn't like this to be in normal paths. I think detailed profiling
> > >> like that can be left to 'perf kvm', which only has overhead if enabled
> > >> at runtime.
> > >
> > > Yes, that's my concern too(though nested vmcs/vmcb read already too
> > > expensive, they should be optimized...).
> >
> > Any ideas on how to do that? Perhaps use paravirt_ops to covert the
> > vmread into a memory read? We store the vmwrites in the vmcs anyway.
>
> When Qing(CCed) was working on nested VMX in the past, he found PV
> vmread/vmwrite indeed works well(it would write to the virtual vmcs so vmwrite
> can also benefit). Though compared to old machine(one our internal patch shows
> improve more than 5%), NHM get less benefit due to the reduced vmexit cost.
>
One of the hurdles to PVize vmread/vmwrite is the fact that the memory
layout of physical vmcs remains unknown. Of course it can use the custom
vmcs layout utilized by nested virtualization, but that looks a little weird,
since different nested virtualization implementation may create different
custom layout.
I once used another approach to partially accelerate the vmread/vmwrite
in nested virtualization case, which also gives good performance gain (around
7% on pre-nehalem, based on this, PV vmread/vmwrite had another 7%). That
is to make a shortcut to handle EXIT_REASON_VM{READ,WRITE}, without
even turning on the IF.
Thanks,
Qing
next prev parent reply other threads:[~2010-03-12 8:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-11 7:20 [PATCH] x86/kvm: Show guest system/user cputime in cpustat Sheng Yang
2010-03-11 7:36 ` Avi Kivity
2010-03-11 7:46 ` Sheng Yang
2010-03-11 7:50 ` Avi Kivity
2010-03-11 8:21 ` Zhang, Yanmin
2010-03-11 9:17 ` Sheng Yang
2010-03-12 8:53 ` Qing He [this message]
2010-03-13 8:26 ` Avi Kivity
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=20100312085321.GA9075@ub-qhe2 \
--to=qing.he@intel.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mtosatti@redhat.com \
--cc=sheng@linux.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 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.