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-devel

Re: [Xen-devel] xm pause causing lockup

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] xm pause causing lockup
From: Kip Macy <kip.macy@xxxxxxxxx>
Date: Thu, 14 Apr 2005 14:04:30 -0700
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 14 Apr 2005 21:04:24 +0000
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=tbv6hpS6lANLruO43uCqY8/Y9J+Zi6MrZd1COTdcfi0IZ1PZUVlFo+RNHQZEBmkHkKFEb2wU+xFaOLMZu0qnQiMMPdKg5Q/feZ0/1Yxvus5U+2dXNbnQe0rAFdbg6iN6eVilp+FwxbAwuAP3hyJGLoINyhOT/ZyWkPwgvaC4irE=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <b1fa2917050414124168ea7d71@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <b1fa291705041319464ffdb42a@xxxxxxxxxxxxxx> <4afce18847157fad34cd38e14fb83c2c@xxxxxxxxxxxx> <b1fa291705041320031af8f565@xxxxxxxxxxxxxx> <cafff1b5d55bd618912085cc8e2b34dc@xxxxxxxxxxxx> <b1fa29170504132018110362f6@xxxxxxxxxxxxxx> <b1fa2917050414124168ea7d71@xxxxxxxxxxxxxx>
Reply-to: Kip Macy <kip.macy@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I think there may be a bug in your page pinning validation logic - the
lockup occurs when stepping through xen_pgd_pin. I don't know if I'm
really passing in 0, as register locals can quickly get overwritten,
but it is certainly worth checking.

Breakpoint 15, pmap_pinit (pmap=0xc06900c0) at
../../../i386-xen/i386-xen/pmap.c:1206
1206                    xen_pgd_pin(ma);
(gdb) 
Continuing.

Breakpoint 8, xen_pgd_pin (ma=0x0) at
../../../i386-xen/i386-xen/xen_machdep.c:490
490         op.cmd = MMUEXT_PIN_L2_TABLE;
(gdb) s
491         op.mfn = ma >> PAGE_SHIFT;
(gdb) 
492         xen_flush_queue();
(gdb) 

Breakpoint 4, xen_flush_queue () at ../../../i386-xen/i386-xen/xen_machdep.c:431
431         if (XPQ_IDX != 0) _xen_flush_queue();
(gdb) 
432     }
(gdb) 
xen_pgd_pin (ma=0x630f) at hypervisor.h:72
72      {
(gdb) 
76          __asm__ __volatile__ (
(gdb) 


On 4/14/05, Kip Macy <kip.macy@xxxxxxxxx> wrote:
> I haven't tracked down the problem yet, but I thought the following
> was sufficiently interesting to post:
> 
> kmacy@curly while (1)
> while? xm list
> while? sleep 5
> while? end
> Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> Domain-0           0      507    0  r----     67.9
> xen-vm2            1      128    1  r----      4.0    9601
> Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> Domain-0           0      507    0  r----     68.1
> xen-vm2            1      128    1  r----      4.0    9601
> Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> Domain-0           0      507    0  r----     68.3
> xen-vm2            1      128    1  r----      4.0    9601
> Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> Domain-0           0      507    0  r----     68.5
> xen-vm2            1      128    1  r----      4.0    9601
> Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> Domain-0           0      507    0  r----     68.7
> xen-vm2            1      128    1  r----      4.0    9601
> Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> Domain-0           0      507    0  r----     68.9
> xen-vm2            1      128    1  r----      4.0    9601
> 
> xen-vm2 is always shown as running, but its time is not increasing.
> 
>                -Kip
> 
> 
> On 4/13/05, Kip Macy <kip.macy@xxxxxxxxx> wrote:
> > On 4/13/05, Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> wrote:
> > > Probably easiest way to trace this is with printk's in Xen. The guts of
> > > the work is done by domain_pause_by_systemcontroller() in xen/sched.h.
> > > This in turn calls domain_sleep() in common/schedule.c.
> >
> > I traced through that code a while back when trying to decide what to
> > call from the int3 handler.
> >
> > A particularly
> > > interesting place to look will be teh synchronous spin loop at the end
> > > of domain_sleep -- if the paused domain isn't descheduled for some
> > > weird reason then the spin loop would never exit and domain0 would
> > > hang.
> >
> > Good point. It will be interesting to see.
> >
> > I sometimes wonder if I should keep some of the buggy versions of
> > FreeBSD around for regression testing as they trigger some interesting
> > behaviours in xen and xend.
> >
> >            -Kip
> >
>

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