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