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 3/3]provide hypercall the samepathwithsyscall

To: "Alex Williamson" <alex.williamson@xxxxxx>
Subject: RE: [Xen-ia64-devel][PATCH 3/3]provide hypercall the samepathwithsyscall
From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
Date: Mon, 15 Jan 2007 12:28:21 +0800
Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Sun, 14 Jan 2007 20:27:56 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1168817178.14363.313.camel@bling>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acc4M2thR+bA/uALRGya7lAwP9fQ0wAKaErw
Thread-topic: [Xen-ia64-devel][PATCH 3/3]provide hypercall the samepathwithsyscall
Alex,

This patch fixed this issue.

Using the new hypercall path, scratch registers are not saved/restored.

So after returning from hypercall, r20 may contain garbage data,
This triggerred General Exception.

--Anthony

@@ -49,6 +49,5 @@ GLOBAL_ENTRY(xencomm_arch_hypercall_susp
        ;;
        break 0x1000
        ;; 
-       mov ar.pfs=r20
        br.ret.sptk.many b0



Alex Williamson write on 2007年1月15日 7:26:
> On Sat, 2007-01-13 at 17:44 +0800, Xu, Anthony wrote:
>> Hi Alex,
>> 
>> Sorry, I ignored multicall,
>> This patch makes domU boot.
> 
> Hi Anthony,
> 
>    Thanks, that gets things nearly working.  I'm now seeing a
> regression 
> in save/restore with these patches (I have all of your patches applied
> to my current test tree, including the lost_one_hypercall.patch, which
> touches the problem area below).  If I save/restore a domU in a loop
> (while (true); do xm save foo > /tmp/foo.sav ; xm restore
> /tmp/foo.sav; 
> done), the save will hang, and I see this on the domU console:
> 
> suspend[2040]: General Exception: IA-64 Reserved Register/Field fault
> (data access) 4398046511152 [1] Modules linked in:
> 
> Pid: 2040, CPU 0, comm:              suspend
> psr : 00001410085a2010 ifs : 8000000000000000 ip  :
> [<a000000100069b42>]    Not tainted 
> ip is at xencomm_arch_hypercall_suspend+0x22/0x40
> unat: 0000000000000000 pfs : 8000000000000184 rsc : 000000000000000b
> rnat: 0000000000000000 bsps: 0000000000000000 pr  : 000000000000a101
> ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
> csd : 0000000000000000 ssd : 0000000000000000
> b0  : a00000010006ea70 b6  : a0000001000bd4a0 b7  : a000000100068f30
> f6  : 0fffbccccccccc8c00000 f7  : 0ffe5f045600000000000
> f8  : 1000bbdd8000000000000 f9  : 10002a000000000000000
> f10 : 1000897dffffffcff2200 f11 : 1003e000000000000025f
> r1  : a00000010104ece0 r2  : e0000000fe027dd0 r3  : e0000000fe027dd8
> r8  : 0000000000000000 r9  : 00000000000000f8 r10 : 0000000000000000
> r11 : 0000000000000001 r12 : e0000000f8177e10 r13 : e0000000f8170000
> r14 : e0000000fe027bd8 r15 : 000000000000001d r16 : 8000000000000b1d
> r17 : 0000000000000000 r18 : 0009804c8a70433f r19 : 0000000000000000
> r20 : 00000000f8170000 r21 : e0000000f8170308 r22 : e0000000fe020308
> r23 : 00100000f8170661 r24 : 0000000000000000 r25 : 0000000000000002
> r26 : 00000000000000f8 r27 : 00000000000000fe r28 : a000000100068f30
> r29 : 0000000000000000 r30 : 0000000000000000 r31 : 0000000000000000
> 
> Call Trace:
>  [<a00000010001cfe0>] show_stack+0x40/0xa0
>                                 sp=e0000000f8177830
>  bsp=e0000000f8171150 [<a00000010001d8e0>] show_regs+0x840/0x880
>                                 sp=e0000000f8177a00
>  bsp=e0000000f81710f8 [<a000000100042660>] die+0x1c0/0x3a0
>                                 sp=e0000000f8177a00
>  bsp=e0000000f81710b0 [<a000000100042890>] die_if_kernel+0x50/0x80
>                                 sp=e0000000f8177a20
>  bsp=e0000000f8171080 [<a0000001000439e0>] ia64_fault+0x1120/0x1240
>                                 sp=e0000000f8177a20
>  bsp=e0000000f8171028 [<a0000001000694a0>] xen_leave_kernel+0x0/0x3c0
>                                 sp=e0000000f8177c40
>  bsp=e0000000f8171028 [<a000000100069b40>]
>                                
>  xencomm_arch_hypercall_suspend+0x20/0x40 sp=e0000000f8177e10
>                                 bsp=e0000000f8171028
>  [<a00000010006ea70>] xencomm_hypercall_suspend+0x50/0x80
>                                 sp=e0000000f8177e10
>  bsp=e0000000f8171010 [<a0000001006a6af0>] __xen_suspend+0x190/0x2e0
>                                 sp=e0000000f8177e20
>  bsp=e0000000f8170fe8 [<a0000001006a6340>] xen_suspend+0x20/0x60
>                                 sp=e0000000f8177e20
>  bsp=e0000000f8170fd0 [<a0000001000bd200>] kthread+0x180/0x200
>                                 sp=e0000000f8177e20
>  bsp=e0000000f8170f98 [<a00000010001b450>]
>                                 kernel_thread_helper+0x30/0x60
>  sp=e0000000f8177e30 bsp=e0000000f8170f70 [<a0000001000110c0>]
>  start_kernel_thread+0x20/0x40 sp=e0000000f8177e30
> bsp=e0000000f8170f70 BUG: suspend/2040, lock held at task exit time!
> [a000000100fb8740] {xs_init} .. held by:           suspend: 2040
> [e0000000f8170000, 110] ... acquired at:              
> xs_suspend+0x180/0x1a0  
> 
> This happened on the second save in both of my attempts, but I don't
> know if it's completely deterministic.  Thanks,
> 
>       Alex

Attachment: save_restore.patch
Description: save_restore.patch

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