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

[Xen-ia64-devel] [patch 07/12] ia64: kexec: Unpin VPD (privregs) on kexec



If an HVM domain has been creaated then VPD (privregs) will
be pinned into the ITLB and thus should be unpinned on kexec.

Cc: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Cc: Alex Williamson <alex.williamson@xxxxxx>
Cc: Aron Griffis <aron@xxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>

--- 

This depends on set_one_rr_efi-2.patch (which provides core
to repin TLB entries when switching to the EFI RID) as that
patch includes code to track if the VPD has been inserted or not.
That code could be broken out if neccessary.

Index: xen-unstable.hg/xen/arch/ia64/linux-xen/mca_asm.S
===================================================================
--- xen-unstable.hg.orig/xen/arch/ia64/linux-xen/mca_asm.S      2008-04-22 
16:59:47.000000000 +1000
+++ xen-unstable.hg/xen/arch/ia64/linux-xen/mca_asm.S   2008-04-22 
17:18:05.000000000 +1000
@@ -357,6 +357,19 @@ ia64_do_tlb_purge:
        srlz.d
        ;;
 #endif
+       // 8. VPD (privregs)
+       GET_THIS_PADDR(r2, inserted_privregs);;
+       cmp.eq p7,p0=r2,r0
+       ;;
+(p7)   br.cond.sptk vpd_not_pinned
+       dep r16=0,r2,0,IA64_GRANULE_SHIFT
+       mov r18=IA64_GRANULE_SHIFT<<2
+       ;;
+       ptr.i r16,r18
+       ;;
+       srlz.i
+       ;;
+vpd_not_pinned:
 #endif
        // Now branch away to caller.
        br.sptk.many b1

-- 

-- 
Horms


_______________________________________________
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®.