[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] 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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |