Hi kouya,
I understand now, good catch.
Thanks for your explanation
- Anthony
Kouya SHIMURA write on 2007年1月24日 17:43:
> Hi Anthony,
>
> The guest OS can use ig field{63:53} in VHPT Short/Long Format.
> Actually Windows seems to use this field and sometimes set bit{60}.
> Xen/IPF also uses bit{60} of PTE as VTLB_PTE_IO_BIT.
> So misunderstanding may happen.
>
> When first TLB-miss happens, the pteval in a guest VHPT propagates as
> follows:
>
> In vmx_hpw_miss(),
> => }else if(type == DSIDE_TLB){
> => if (!guest_vhpt_lookup(vhpt_adr, &pteval)) {
> => thash_purge_and_insert(v, pteval, itir, vadr, DSIDE_TLB);
>
> In thash_purge_and_insert(),
> => if(VMX_DOMAIN(v)){
> => if (ps == mrr.ps) {
> => if(!(pte&VTLB_PTE_IO)){ <<<<< This condition is failure
> else{
> vtlb_insert(v, pte, itir, ifa);
> vcpu_quick_region_set(PSCBX(v,tc_regions),ifa);
> }
>
> After all, this TLB-miss wastes a vtlb and reproduce TLB-miss again.
> When the second TLB-miss happens,
>
> In vmx_hpw_miss(),
> => if((data=vtlb_lookup(v, vadr,type))!=0){
> => if (v->domain != dom0 && type == DSIDE_TLB) {
> => if (__gpfn_is_io(v->domain, gppa >> PAGE_SHIFT)) { <<<<<
> failure. resolve misunderstanding => thash_vhpt_insert(v,
> data->page_flags, data->itir, vadr, type);
>
> My patch just masks the ig field.
>
> Thanks
> Kouya
>
> Xu, Anthony writes:
> > Hi Kouya,
> >
> > Can you explain more?
> >
> > How does misunderstanding happen?
> > And how does this patch fix it?
> >
> > Thanks
> > Anthony
> >
> > Kouya SHIMURA write on 2007年1月24日 12:31:
> > > Hi,
> > >
> > > Hypervisor might misunderstand a normal page as I/O page
> > > if a guest OS uses the ig field in the guest VHPT.
> > >
> > > It seems to be harmless but slightly slow down.
> > >
> > > Thanks,
> > > Kouya
> > >
> > > Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|