15 messages in com.xensource.lists.xen-ia64-devel[Xen-ia64-devel] Re: [PATCH] Fix mca ...
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:[Xen-ia64-devel] Re: [PATCH] Fix mca handler so as not to destroy ar
From:SUZUKI Kazuhiro (ka@jp.fujitsu.com)
Date:07/29/2008 09:29:16 PM
List:com.xensource.lists.xen-ia64-devel
Attachments:

Hi,

Thank you for your comments. I attached an updated patch following to the comments.

Thanks, KAZ

From: Isaku Yamahata <yama@valinux.co.jp> Subject: Re: [PATCH] Fix mca handler so as not to destroy ar(was: Re:
[Xen-ia64-devel] Re: mca handler) Date: Mon, 28 Jul 2008 11:20:05 +0900

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,