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

[Xen-ia64-devel] Re: No scheduling after domU launch

To: Dan Magenheimer <dan.magenheimer@xxxxxx>
Subject: [Xen-ia64-devel] Re: No scheduling after domU launch
From: Haavard Bjerke <havard.bjerke@xxxxxxx>
Date: Fri, 20 May 2005 17:26:17 +0200
Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 20 May 2005 15:25:40 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20050519173254.GI15896@xxxxxxxxxxx>
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>
References: <516F50407E01324991DD6D07B0531AD542CE30@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20050519173254.GI15896@xxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.4i
Here's an update on this bug. The problem seems to be the

asm volatile ("cmpxchg4.acq %0=[%1],%2,ar.ccv":
                      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");

line in gcc_intrin.h:ia64_cmpxchg4_acq(). When I comment it out when launching 
domU, things are back to normal.

The call sequence leading up to this instruction is:
sched_bvt.c:bvt_wake()
softirq.h:cpu_raise_softirq()
bitops.h:test_and_set_bit()
intrinsics.h:cmpxchg_acq() 
gcc_intrin.h:ia64_cmpxchg()
gcc_intrin.h:ia64_cmpxchg4_acq()

Håvard

On Thu, May 19, 2005 at 07:32:54PM +0200, Haavard Bjerke wrote:
> I think I've found some leads to the most recent bug (dom0 freezes 
> immediately, as opposed to after a short while). The problem seems to be 
> somewhere within the cpu_raise_softirq() routine, which is called from 
> bvt_wake() in sched_bvt.c. By not calling that routine when launching domU, 
> I've managed to get control back to dom0 for a short while, after which it 
> freezes as before. I'll look more into it tomorrow.
> 
> Håvard
> 
> On Wed, May 18, 2005 at 08:32:20AM -0700, Magenheimer, Dan (HP Labs Fort 
> Collins) wrote:
> > Given the previous discussion around this (last month?), I suspect
> > that there is a bug somewhere that is overwriting some random
> > memory related to the scheduler.  As Mark W pointed out, your
> > previous workaround fixed a problem that should never happen.
> > And I don't think any recent changes in xeno-unstable-ia64 have
> > had anything to do with the scheduler, so I suspect the
> > "random memory" moved to a different random spot which
> > is causing your current problem.
> > 
> > This is just a theory... you are probably as familiar with this
> > part of the code as anybody on this list right now.  Try
> > adding some more printf's to see if any clues arise.
> > I'll try to take a look but probably not today, so reply
> > to this thread if you learn anything new or interesting.
> > 
> > Dan
> > 
> > > -----Original Message-----
> > > From: Haavard Bjerke [mailto:havard.bjerke@xxxxxxx] 
> > > Sent: Wednesday, May 18, 2005 9:23 AM
> > > To: Magenheimer, Dan (HP Labs Fort Collins)
> > > Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> > > Subject: No scheduling after domU launch
> > > 
> > > Since pulling the latest xeno-unstable-ia64 a few days ago, 
> > > scheduling seems to stop immediately after launching domU, 
> > > that is, domU continues to load, while dom0 stops because the 
> > > scheduler is never entered again. This looks like the same 
> > > problem as before, with dom0 freezing after domU launch; 
> > > only, now it seems to freeze earlier. Before, I was able to 
> > > run a hypercall right after launch. This is kind of critical, 
> > > since a user-space app running in dom0 is supposed to 
> > > establish a ctrl-channel right after launch, while domU is booting.
> > > 
> > > So I'm quite stuck and wondering why it stops scheduling, and 
> > > I could use some input. So far I've found out that 
> > > __enter_sceduler() is never called after domU launch, while 
> > > the routine that's supposed to call that routine, 
> > > ac_timer_softirq_action(), continues to be called. I think 
> > > the __enter_sceduler() routine should be in a heap, but I 
> > > don't understand why it would suddenly be removed from the heap..
> > > 
> > > Thanks,
> > > Håvard
> > > 

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

<Prev in Thread] Current Thread [Next in Thread>