WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] [patch 03/12] ia64: kexec: Unpin the correct VHPT T

On Thu, May 08, 2008 at 08:57:28AM +1000, Simon Horman wrote:
> On Wed, May 07, 2008 at 05:31:21PM +0900, Isaku Yamahata wrote:
> > Hi Simon-san.
> > I guess that this patch isn't copmiled as inteneded.
> > With the VHPT_ENABLED patch which make sure VHPT_ENABLED always
> > defined to 1 or 0, I got compilation errors.
> > 
> > 
> > [IA64] compilation fix with VHPT_ENABLED=1
> > 
> > Enabling VHPT_ENABLED=1 results in compilation error in vmx_phy_mode.c
> > and vmx_vcpu.c. This patch fixes them.
> > vmx_phy_mode.c: In function 'vmx_load_all_rr':
> > vmx_phy_mode.c:175: warning: implicit declaration of function 
> > 'vcpu_vhpt_maddr'
> > vmx_phy_mode.c:175: error: 'v' undeclared (first use in this function)
> > vmx_phy_mode.c:175: error: (Each undeclared identifier is reported only once
> > vmx_phy_mode.c:175: error: for each function it appears in.)
> > PATCHNAME: compilation_fix_with_vhpt_enabled
> > 
> > Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
> 
> Thanks Yamahata-san,
> 
> that looks correct to me. I have a related fix to the same code which
> alters the value that is tracked. Do you think this is correct:

The patch itself looks correct.

Related to the patch, do you mean that another #if VHPT_ENABLED in
xen/arch/ia64/linux-xen/mca_asm.S should be removed and that 
the around code should be patched somehow?

diff -r 07e367fbd2b2 xen/arch/ia64/linux-xen/mca_asm.S
--- a/xen/arch/ia64/linux-xen/mca_asm.S Wed May 07 17:14:08 2008 +0900
+++ b/xen/arch/ia64/linux-xen/mca_asm.S Thu May 08 16:06:12 2008 +0900
@@ -519,8 +488,9 @@
 #ifdef XEN
 .reload_vhpt:
        // 5. VHPT
-#if VHPT_ENABLED
-       GET_VA_VCPU_VHPT_MADDR(r2,r3);;
+       GET_THIS_PADDR(r1, inserted_vhpt);; 
+       cmp.eq p7,p0=r2,r0
+(p7)   br.cond.sptk    .overlap_vhpt   // vhpt isn't mapped.
 
        // avoid overlapping with stack TR
        shr.u r17=r2,IA64_GRANULE_SHIFT
@@ -550,7 +520,6 @@
        srlz.d
        ;;
 .overlap_vhpt:
-#endif
 #endif
        br.sptk.many done_tlb_purge_and_reload
 err:

-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel