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] memguard_guard_stack()


On 1 May 2006, at 15:09, Keir Fraser wrote:

How many CPUs were in the system? That code path was rather dodgy: the function forcibly enabled interrupts and so a single CPU could nest in that function up to (NR_CPUS-1) times which, if you had say 32 CPUs in the system could certainly cause problems. I don't think it's indicative of a wider problem in Xen -- for most interrupts (ones bound to a guest) we don't even reenable interrupt delivery while handling them, so nested ISRs in Xen are impossible.

I would like to understand exactly what happened in the context of your IPI storm (it *is* the machine restart bug we're talking about, right?) -- if you had much fewer than 32 CPUs then I need to check exactly how much stack an invocation of machine_restart() uses.

Actually the behaviour is worse than I thought -- it was possible to build up stack frames unboundedly (think CPU1 execute machine_restart(), IPIs CPU2 executes machine_restart(), IPIs CPU1 .....). It was essentially a race to see if CPU0 could smp_send_stop() and quiesce the other CPUs before they blew up their stacks. :-)

Case closed.

 -- Keir


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

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