[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] Xen/IPF Unstable CS#18694, Linux#706, ioemu#b4d410a1.. Status --- 1 new
Applied, thanks. On Fri, Oct 31, 2008 at 10:03:59AM +0800, Zhang, Xiantao wrote: > Here it is! :) > > PATCH: Fix HVM VGA abnormal. > > Conversion from p2m entry to physical address, it needs to use > _PAGE_PPN_MASK to mask out some bits which are used by other > purposes by p2m entry. > > Sign-off-by : Xiantao Zhang <xiantao.zhang@xxxxxxxxx> > diff -r 4a5acf020c0f xen/arch/ia64/vmx/vtlb.c > --- a/xen/arch/ia64/vmx/vtlb.c Thu Oct 30 11:51:55 2008 +0900 > +++ b/xen/arch/ia64/vmx/vtlb.c Thu Oct 30 21:57:38 2008 +0800 > @@ -522,7 +522,8 @@ > * which is required by vga acceleration since qemu maps shared > * vram buffer with WB. > */ > - if (mfn_valid(maddr >> PAGE_SHIFT) && phy_pte.ma != VA_MATTR_NATPAGE) > + if (mfn_valid((maddr & _PAGE_PPN_MASK) >> PAGE_SHIFT) > + && phy_pte.ma != VA_MATTR_NATPAGE) > phy_pte.ma = VA_MATTR_WB; > > maddr = ((maddr & _PAGE_PPN_MASK) & PAGE_MASK) | (paddr & ~PAGE_MASK); > diff -r 4a5acf020c0f xen/arch/ia64/xen/mm.c > --- a/xen/arch/ia64/xen/mm.c Thu Oct 30 11:51:55 2008 +0900 > +++ b/xen/arch/ia64/xen/mm.c Thu Oct 30 21:57:38 2008 +0800 > @@ -926,7 +926,8 @@ > /* in HVM guest, when VTD is enabled, > * P2M entry may change from _PAGE_IO type to real MMIO page > */ > - if(VMX_DOMAIN(d->vcpu[0]) && (pte_val(ret_pte) & _PAGE_IO)) { > + if(is_hvm_domain(d) && (pte_val(ret_pte) & _PAGE_IO) && > + !mfn_valid(physaddr >> PAGE_SHIFT)) { > old_pte = ret_pte; > goto again_hvm_page_io; > } > > -----Original Message----- > From: Isaku Yamahata [mailto:yamahata@xxxxxxxxxxxxx] > Sent: Friday, October 31, 2008 9:46 AM > To: Zhang, Xiantao > Cc: Zhang, Jingke; xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > Subject: Re: [Xen-ia64-devel] Xen/IPF Unstable CS#18694, Linux#706, > ioemu#b4d410a1.. Status --- 1 new > > Oh great. Thank you for debugging. > Could you provide your signed-off-by? > > > On Thu, Oct 30, 2008 at 11:07:56PM +0800, Zhang, Xiantao wrote: > > I found the reason why mfn_valid behaves abnormally. We should mask out > > TLB_TRACK bits from p2m entry before using it as mfn_valid's parameter. > > > > diff -r 4a5acf020c0f xen/arch/ia64/vmx/vtlb.c > > --- a/xen/arch/ia64/vmx/vtlb.c Thu Oct 30 11:51:55 2008 +0900 > > +++ b/xen/arch/ia64/vmx/vtlb.c Thu Oct 30 21:57:38 2008 +0800 > > @@ -522,7 +522,8 @@ > > * which is required by vga acceleration since qemu maps shared > > * vram buffer with WB. > > */ > > - if (mfn_valid(maddr >> PAGE_SHIFT) && phy_pte.ma != VA_MATTR_NATPAGE) > > + if (mfn_valid((maddr & _PAGE_PPN_MASK) >> PAGE_SHIFT) > > + && phy_pte.ma != VA_MATTR_NATPAGE) > > phy_pte.ma = VA_MATTR_WB; > > > > maddr = ((maddr & _PAGE_PPN_MASK) & PAGE_MASK) | (paddr & ~PAGE_MASK); > > diff -r 4a5acf020c0f xen/arch/ia64/xen/mm.c > > --- a/xen/arch/ia64/xen/mm.c Thu Oct 30 11:51:55 2008 +0900 > > +++ b/xen/arch/ia64/xen/mm.c Thu Oct 30 21:57:38 2008 +0800 > > @@ -926,7 +926,8 @@ > > /* in HVM guest, when VTD is enabled, > > * P2M entry may change from _PAGE_IO type to real MMIO page > > */ > > - if(VMX_DOMAIN(d->vcpu[0]) && (pte_val(ret_pte) & _PAGE_IO)) { > > + if(is_hvm_domain(d) && (pte_val(ret_pte) & _PAGE_IO) && > > + !mfn_valid(physaddr >> PAGE_SHIFT)) { > > old_pte = ret_pte; > > goto again_hvm_page_io; > > } > > > > > > > > Zhang, Xiantao wrote: > > > Isaku Yamahata wrote: > > >> On Wed, Oct 29, 2008 at 04:10:50PM +0800, Zhang, Jingke wrote: > > >>> Hi all, > > >>> There is one new regression in Cset#18691. With latest > > >>> Cset#18694, all the case can pass! > > >>> > > >>> One regression between Cset#18688 and Cset#18691: ============== > > >>> 1. Qemu graphic mode display abnormally while booting > > >>> VTI_Windows and Linux-Xwin. This issue existed in either > > >>> sdl=1 or vnc=1 mode. And this issue does not exist with Cset#18688. > > >> > > >> Hmm, I suspect the change set 18689:7ad8c47f5c4b. But I'm not sure. > > > Hi, Isaku > > > We found the cause,maybe rootcause. 18669 may has a poetentail > > > issue, but doesn't lead to the issue. We found valid_mfn() doesn't > > > work in its way, and seems it is buggy. I have no enough time to > > > debug it, but the following patch should fix the current issue. > > > > > > diff -r a6b1be5a83de xen/arch/ia64/vmx/vtlb.c > > > --- a/xen/arch/ia64/vmx/vtlb.c Wed Oct 29 11:02:23 2008 +0900 > > > +++ b/xen/arch/ia64/vmx/vtlb.c Thu Oct 30 13:47:08 2008 +0800 > > > @@ -522,7 +522,7 @@ > > > * which is required by vga acceleration since qemu maps shared > > > * vram buffer with WB. > > > */ > > > - if (mfn_valid(maddr >> PAGE_SHIFT) && phy_pte.ma == > > > VA_MATTR_NATPAGE) + if (!(maddr >> 61) && phy_pte.ma == > > > VA_MATTR_NATPAGE) phy_pte.ma = VA_MATTR_WB; > > > > > > maddr = ((maddr & _PAGE_PPN_MASK) & PAGE_MASK) | (paddr & > > > ~PAGE_MASK); > > > > > > Xiantao > > > _______________________________________________ > > > Xen-ia64-devel mailing list > > > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > > > http://lists.xensource.com/xen-ia64-devel > > > > > > _______________________________________________ > > Xen-ia64-devel mailing list > > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > > http://lists.xensource.com/xen-ia64-devel > > _______________________________________________ > Xen-ia64-devel mailing list > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-ia64-devel -- yamahata _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |