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

Re: [PATCH] Fix mca handler so as not to destroy ar(was: Re: [Xen-ia64-devel] Re: mca handler)



On Fri, Jul 25, 2008 at 05:47:37PM +0900, SUZUKI Kazuhiro wrote:
> The following patch fixes the mca handler so as not to destroy ar
> and some bugs.

Thank you for fixing some bugs and it looks basically good.
Some comments below.


> @@ -524,24 +457,111 @@ ia64_reload_tr:
>       srlz.d
>       ;;
>  #ifdef XEN
> -.reload_vhpt:
> -     // 5. VHPT
> -       GET_THIS_PADDR(r1, inserted_vhpt);;
> -       cmp.eq p7,p0=r2,r0
> -(p7)   br.cond.sptk    .overlap_vhpt   // vhpt isn't mapped.
> +     // 5. shared_info
> +     GET_THIS_PADDR(r2, inserted_shared_info);;
> +     ld8 r16=[r2]
> +     mov r18=XSI_SHIFT<<2
> +     movl r20=__pgprot(__DIRTY_BITS | _PAGE_PL_PRIV | _PAGE_AR_RW)
> +     ;;
> +     GET_THIS_PADDR(r2, domain_shared_info);;
> +     ld8 r17=[r2]
> +     ;;
> +     dep r17=0,r17,60,4
> +     ;; 
> +     or r17=r17,r20                  // construct PA | page properties
> +     mov cr.itir=r18
> +     mov cr.ifa=r16
> +     ;;
> +     mov r16=IA64_TR_SHARED_INFO
> +     ;;
> +     itr.d dtr[r16]=r17              // wire in new mapping...
> +     ;; 
> +     srlz.d
> +     ;; 

Unconditionally pinning down shared_info into inserted_shared_info
is wrong because shared_info is shared only with PV domain and xen VMM.
So In VMX domain case, it shouldn't pinned down. Otherwise VMX guest
wrongly accesses to shared_info.
In ia64_do_tlb_purge() case, unconditionally purging
DTR[IA64_TR_SHARED_INFO] is okay, but unconditionally inserting
DTR[IA64_TR_SHARED_INFO] is bad.

thanks,
-- 
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®.