[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.