On Tuesday 04 November 2008 06:33:39 Ehrhardt Christian wrote:
> From: Christian Ehrhardt <[EMAIL PROTECTED]>
> 
> Other existing kvm stats are either just counters (kvm_stat) reported for kvm
> generally or trace based aproaches like kvm_trace.
> For kvm on powerpc we had the need to track the timings of the different exit
> types. While this could be achieved parsing data created with a kvm_trace
> extension this adds too muhc overhead (at least on embedded powerpc) slowing
> down the workloads we wanted to measure.
> 
> Therefore this patch adds a in kernel exit timing statistic to the powerpc kvm
> code. These statistic is available per vm&vcpu under the kvm debugfs 
> directory.
> As this statistic is low, but still some overhead it can be enabled via a
> .config entry and should be off by default.

It's not just that kvm_trace is "slow" -- I think the important point is that 
this code is *not* implementing another 
trace mechanism. It's simply a set of counters. The reason it doesn't fit 
naturally into kvm_stat is that 
kvm_stat is designed just to record event frequency, so it aggregates the 
counters from all vcpus. Right?

> Since this patch touched all powerpc kvm_stat code anyway this code is now
> merged and simpliefied together with the exit timing statistic code (still
> working with exit timing disabled in .config).

In general this looks pretty good. I still need to go through it in more 
detail, but just a couple superficial 
comments right now:

> diff --git a/arch/powerpc/include/asm/mmu-44x.h 
> b/arch/powerpc/include/asm/mmu-44x.h
> --- a/arch/powerpc/include/asm/mmu-44x.h
> +++ b/arch/powerpc/include/asm/mmu-44x.h
> @@ -56,6 +56,7 @@
>  #ifndef __ASSEMBLY__
> 
>  extern unsigned int tlb_44x_hwater;
> +extern unsigned int tlb_44x_index;
> 
>  typedef struct {
>       unsigned long id;

This must have accidentally slipped in to your patch.

> @@ -108,6 +258,10 @@
>       kvm = kzalloc(sizeof(struct kvm), GFP_KERNEL);
>       if (!kvm)
>               return ERR_PTR(-ENOMEM);
> +
> +#ifdef CONFIG_KVM_BOOKE_EXIT_TIMING
> +     kvm->arch.vm_id = atomic_inc_return(&vm_count);
> +#endif
> 
>       return kvm;
>  }

This "vm_count" stuff caught my eye as looking strange. Is there no better "ID" 
value you can use? What 
about qemu's PID?

-- 
Hollis Blanchard
IBM Linux Technology Center
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to