15 messages in com.xensource.lists.xen-ia64-develRe: [PATCH] Fix mca handler so as not...
FromSent OnAttachments
Isaku Yamahata16 Jul 2008 19:54 
SUZUKI Kazuhiro22 Jul 2008 19:10 
SUZUKI Kazuhiro25 Jul 2008 01:47.patch
Isaku Yamahata27 Jul 2008 19:19 
Isaku Yamahata27 Jul 2008 19:37 
SUZUKI Kazuhiro29 Jul 2008 21:29.patch
Isaku Yamahata30 Jul 2008 20:27 
Isaku Yamahata04 Aug 2008 20:36 
Isaku Yamahata04 Aug 2008 22:18 
SUZUKI Kazuhiro05 Aug 2008 00:21 
Isaku Yamahata05 Aug 2008 19:05 
Isaku Yamahata07 Aug 2008 03:29 
SUZUKI Kazuhiro07 Aug 2008 23:40 
Isaku Yamahata08 Aug 2008 01:02 
SUZUKI Kazuhiro08 Aug 2008 01:36.patch
Subject:Re: [PATCH] Fix mca handler so as not to destroy ar(was: Re: [Xen-ia64-devel] Re: mca handler)
From:Isaku Yamahata (yama@valinux.co.jp)
Date:07/27/2008 07:19:42 PM
List:com.xensource.lists.xen-ia64-devel

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,