From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sheng Yang Subject: Re: [PATCH V3] perf & kvm: Enhance perf to collect KVM guest os statistics from host side Date: Wed, 14 Apr 2010 18:27:21 +0800 Message-ID: <201004141827.21877.sheng@linux.intel.com> References: <1902387910.2078.435.camel@ymzhang.sh.intel.com> <201004141814.19330.sheng@linux.intel.com> <4BC596C5.7020507@redhat.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Cc: "Zhang, Yanmin" , Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Marcelo Tosatti , oerg Roedel , Jes Sorensen , Gleb Natapov , Zachary Amsden , zhiteng.huang@intel.com, tim.c.chen@intel.com, Arnaldo Carvalho de Melo To: Avi Kivity Return-path: Received: from mga06.intel.com ([134.134.136.21]:40945 "EHLO orsmga101.jf.intel.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754323Ab0DNK1f (ORCPT ); Wed, 14 Apr 2010 06:27:35 -0400 In-Reply-To: <4BC596C5.7020507@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wednesday 14 April 2010 18:19:49 Avi Kivity wrote: > On 04/14/2010 01:14 PM, Sheng Yang wrote: > >> I wouldn't like to depend on model specific behaviour. > >> > >> One option is to read all the information synchronously and store it in > >> a per-cpu area with atomic instructions, then queue the NMI. Another > >> option is to have another callback which tells us that the NMI is done, > >> and have a busy loop wait until the NMI is delivered. > > > > Callback seems too heavy, may affect the performance badly. Maybe a short > > queue would help, though this one is more complex. > > The patch we're replying to adds callbacks (to read rip, etc.), so it's > no big deal. For the queue solution, a queue of size one would probably > be sufficient even if not guaranteed by the spec. I don't see how the > cpu can do another guest entry without delivering the NMI. > > > But I am still curious if we extend the region, how much it would help. > > Would get a result soon... > > Yes, interesting to see what the latency is. If it's reasonably short > (and I expect it will be so), we can do the busy wait solution. > > If we have an NMI counter somewhere, we can simply wait until it changes. Good idea. Of course we have one(at least on x86). There is irq_stat.irq__nmi_count for per cpu. :) -- regards Yang, Sheng