RE: [PATCH 03/11] Use arch.pid as shadow pid for E500

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: kvm-ppc-owner@xxxxxxxxxxxxxxx 
> [mailto:kvm-ppc-owner@xxxxxxxxxxxxxxx] On Behalf Of Liu Yu-B13201
> Sent: Friday, December 12, 2008 10:21 AM
> To: Hollis Blanchard
> Cc: kvm-ppc@xxxxxxxxxxxxxxx
> Subject: RE: [PATCH 03/11] Use arch.pid as shadow pid for E500
> 
> 
> > -----Original Message-----
> > From: kvm-ppc-owner@xxxxxxxxxxxxxxx 
> > [mailto:kvm-ppc-owner@xxxxxxxxxxxxxxx] On Behalf Of Hollis Blanchard
> > Sent: Friday, December 12, 2008 5:02 AM
> > To: Liu Yu-B13201
> > Cc: kvm-ppc@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH 03/11] Use arch.pid as shadow pid for E500
> > 
> > On Thu, 2008-12-11 at 17:11 +0800, Liu Yu wrote:
> > > Signed-off-by: Liu Yu <yu.liu@xxxxxxxxxxxxx>
> > > ---
> > >  arch/powerpc/kernel/asm-offsets.c |    8 +++++++-
> > >  1 files changed, 7 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/arch/powerpc/kernel/asm-offsets.c 
> > b/arch/powerpc/kernel/asm-offsets.c
> > > index 544a27f..79fe94c 100644
> > > --- a/arch/powerpc/kernel/asm-offsets.c
> > > +++ b/arch/powerpc/kernel/asm-offsets.c
> > > @@ -355,6 +355,13 @@ int main(void)
> > >  	DEFINE(PTE_SIZE, sizeof(pte_t));
> > > 
> > >  #ifdef CONFIG_KVM
> > > +#ifdef CONFIG_44x
> > > +	DEFINE(VCPU_SHADOW_PID, offsetof(struct kvm_vcpu, 
> > arch.shadow_pid));
> > > +#endif
> > > +#ifdef CONFIG_FSL_BOOKE
> > > +	DEFINE(VCPU_SHADOW_PID, offsetof(struct kvm_vcpu, arch.pid));
> > > +#endif
> > > +
> > >  	DEFINE(VCPU_HOST_STACK, offsetof(struct kvm_vcpu, 
> > arch.host_stack));
> > >  	DEFINE(VCPU_HOST_PID, offsetof(struct kvm_vcpu, arch.host_pid));
> > >  	DEFINE(VCPU_GPRS, offsetof(struct kvm_vcpu, arch.gpr));
> > > @@ -368,7 +375,6 @@ int main(void)
> > >  	DEFINE(VCPU_SPRG5, offsetof(struct kvm_vcpu, arch.sprg5));
> > >  	DEFINE(VCPU_SPRG6, offsetof(struct kvm_vcpu, arch.sprg6));
> > >  	DEFINE(VCPU_SPRG7, offsetof(struct kvm_vcpu, arch.sprg7));
> > > -	DEFINE(VCPU_SHADOW_PID, offsetof(struct kvm_vcpu, 
> > arch.shadow_pid));
> > > 
> > >  	DEFINE(VCPU_LAST_INST, offsetof(struct kvm_vcpu, 
> > arch.last_inst));
> > >  	DEFINE(VCPU_FAULT_DEAR, offsetof(struct kvm_vcpu, 
> > arch.fault_dear));
> > 
> > I can commit this, but we got a significant performance boost from
> > implementing the shadow_pid scheme. Do you think implementing 
> > that would
> > be difficult?
> > 
> 
> Not difficult.
> But I want to compare it with some other ways before apply it.
> 
> As you know, E500 has a large TLB0, so it has more room to handle
> multi-VMs on a single core.
> Current shadow pid trick indeed boost performance in the case 
> of one VM,
> but for multi-VMs, your pid mapping idea seems better for E500.

I can use arch.shadow_pid, however I will keep arch.shadow_pid equal to
arch.pid.
What do you think?
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux