Hi Kazuhiro,
We are considering possibility to Xen-ia64 support to HP-UX. Obviously, the
current Xen-ia64 supports Linux regarding of HP-UX is not open-sourced. Do
you have any ideas about how to implement this kind of possibility? Change
which parts or libs?
Thanks in advance.
-Yuzhong
-----邮件原件-----
发件人: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
[mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] 代表 SUZUKI Kazuhiro
发送时间: 2007年12月21日 18:05
收件人: yamahata@xxxxxxxxxxxxx
抄送: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
主题: [Xen-ia64-devel] Re: [PATCH 0/12] various fixes related the
xenrelocation
Hi Isaku,
> To be honest I didn't test the mca patch().
> Kazuhiro, Could you please review and test it?
I tested this, but it caused system hang.
I have some questions and comments as follows.
> diff -r 8558c0017136 -r e532cad65b1c xen/arch/ia64/linux-xen/mca_asm.S
> --- a/xen/arch/ia64/linux-xen/mca_asm.S Tue Dec 18 15:38:46 2007
+0900
> +++ b/xen/arch/ia64/linux-xen/mca_asm.S Thu Dec 20 14:53:49 2007
+0900
> @@ -479,14 +479,26 @@ ia64_reload_tr:
> ;;
> // 4. Reload DTR for stack.
> #ifdef XEN
> - // avoid overlapping with kernel TR
> - movl r17=KERNEL_START
> + // avoid overlapping with xenheap TR
> + mov r17=ip
> + ;;
> + tpa r17=r17
It is necessary to delete this line, because ip contains physical address.
> + ;;
> + dep r17=0,r17,0,KERNEL_TR_PAGE_SHIFT
> + ;;
> + shr.u r17=r17,IA64_GRANULE_SHIFT
> + ;;
> GET_THIS_PADDR(r2,cpu_kr);;
> add r2=IA64_KR_CURRENT_OFFSET,r2;;
Is it IA64_KR_CURRENT_STACK_OFFSET?
I think that [cpu_kr + IA64_KR_CURRENT_STACK_OFFSET] contains
(physical address >> IA64_GRANULE_SHIFT).
> ld8 r16=[r2];;
> ;;
> - dep r16=0,r16,0,KERNEL_TR_PAGE_SHIFT
> - ;;
> +#if KERNEL_TR_PAGE_SHIFT < IA64_GRANULE_SHIFT
> +# error "KERNEL_TR_PAGE_SHIFT < IA64_GRANULE_SHIFT shouldn't happen"
> +#endif
> +#if KERNEL_TR_PAGE_SHIFT > IA64_GRANULE_SHIFT
> + dep r16=0,r16,0,KERNEL_TR_PAGE_SHIFT-IA64_GRANULE_SHIFT
> + ;;
> +#endif
> cmp.eq p7,p0=r17,r16
> (p7) br.cond.sptk .reload_vhpt
>
> @@ -522,6 +534,25 @@ ia64_reload_tr:
> // 5. VHPT
> #if VHPT_ENABLED
> GET_VA_VCPU_VHPT_MADDR(r2,r3);;
dep r2=0,r2,60,4;;
This line should be inserted here, because
GET_VA_VCPU_VHPT_MADDR(r2,r3) emulates the virtual address of
vcpu_vhpt_maddr.
> + dep r3=0,r2,0,KERNEL_TR_PAGE_SHIFT
> + ;;
> + shr.u r3=r3,IA64_GRANULE_SHIFT
> + ;;
> + cmp.eq p7,p0=r3,r17
> +(p7) br.cond.sptk .overlap_vhpt
> + ;;
> +
> + // avoid overlapping with stack TR
> + shr.u r17=r2,IA64_GRANULE_SHIFT
> + GET_THIS_PADDR(r3, cpu_kr);;
> + add r3=IA64_KR_CURRENT_STACK_OFFSET,r3
> + ;;
> + ld8 r3=[r3]
> + ;;
> + cmp.eq p7,p0=r3,r17
> +(p7) br.cond.sptk .overlap_vhpt
> + ;;
> +
> dep r16=0,r2,0,IA64_GRANULE_SHIFT
> movl r20=PAGE_KERNEL
> ;;
> @@ -538,6 +569,7 @@ ia64_reload_tr:
> ;;
> srlz.d
> ;;
> +.overlap_vhpt:
> #endif
> #endif
> br.sptk.many done_tlb_purge_and_reload
I attached modified patch, and I confirmed this worked.
Thanks.
KAZ
Signed-off-by: Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx>
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Subject: [PATCH 0/12] various fixes related the xen relocation
Date: Thu, 20 Dec 2007 16:37:04 +0900
>
> When Xen was made relocatable, some code are broken.
> This patch set addresses on it.
>
> I went little further. Some of the assembler functions related to
> context switch maps stack, others doesn't. It isn't consistent.
> So there were two choice for consistency. My choice is mapping stacks.
> After that, it isn't necessary that stack is allocated from xenheap.
> Allocate stack from domheap, thus memory pressure on xenheap was
> reduced.
>
> To be honest I didn't test the mca patch().
> Kazuhiro, Could you please review and test it?
>
> thanks
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|