RE: [PATCH 2 of 2] kvm: ppc: Rename "struct tlbe" to"structkvmppc_44x_tlbe"

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

 



> -----Original Message-----
> From: Hollis Blanchard [mailto:hollisb@xxxxxxxxxx] 
> Sent: Friday, September 12, 2008 11:30 PM
> To: Liu Yu-B13201
> Cc: kvm-ppc@xxxxxxxxxxxxxxx
> Subject: RE: [PATCH 2 of 2] kvm: ppc: Rename "struct tlbe" 
> to"structkvmppc_44x_tlbe"
> 
> On Fri, 2008-09-12 at 11:10 +0800, Liu Yu-B13201 wrote:
> > 
> > > @@ -76,9 +76,9 @@ struct kvm_arch {
> > >  
> > >  struct kvm_vcpu_arch {
> > >       /* Unmodified copy of the guest's TLB. */
> > > -     struct tlbe guest_tlb[PPC44x_TLB_SIZE];
> > > +     struct kvmppc_44x_tlbe guest_tlb[PPC44x_TLB_SIZE];
> > >       /* TLB that's actually used when the guest is running. */
> > > -     struct tlbe shadow_tlb[PPC44x_TLB_SIZE];
> > > +     struct kvmppc_44x_tlbe shadow_tlb[PPC44x_TLB_SIZE];
> > >       /* Pages which are referenced in the shadow TLB. */
> > >       struct page *shadow_pages[PPC44x_TLB_SIZE];
> > >  
> > 
> > I have been thinking about merge kvm_vcpu_arch of 44x and e500.
> > But I'm not sure whether it's worth doing this.
> 
> We could do implement a scheme like to_vmx() in 
> arch/x86/kvm/vmx.c . See
> the thread around
> http://article.gmane.org/gmane.comp.emulators.kvm.devel/8516/ for more
> discussion.
> 
> This approach will get a little weird in emulate.c, since right now we
> kvmppc_emulate_instruction() emulates all instructions for 
> all cores. We
> may need to split that up, for example:
> 
> emulate.c:
>         switch (opcode) {
>         case MFSPR:
>                 switch (sprn) {
>                 case SRR0: vcpu->arch.gpr[rt] = vcpu->arch.srr0;
>                 ...
>                 default:
>                         r = kvmppc_emulate_mfspr(vcpu, sprn, 
> rt); // core hook
>                         if (r)
>                                 return EMULATE_FAIL;
>                 }
>         }
> 
> e500_emulate.c:
>         int kvmppc_emulate_mfspr(struct kvm_vcpu *vcpu, u32 
> sprn, unsigned gpr)
>         {
>                 struct vcpu_e500 *vcpu_e500 = to_vcpu_e500(vcpu);
>                 int r = 0;
>                 
>                 switch (sprn) {
>                 case MAS0: vcpu->arch.gpr[rt] = vcpu_e500->mas0;
>                 ...
>                 default:
>                         r = -1;
>                 }
>                 
>                 return r;
>         }
> 
> 
> I will be traveling and won't have time to look at this next 
> week, so if
> this approach makes sense to you, do you want to send a patch?
> 

I'd like to.
Please commit these two patches.
--
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