On Mon, 28 Apr 2008, Hiroshi Shimamoto wrote: > diff --git a/arch/x86/kernel/nmi_64.c b/arch/x86/kernel/nmi_64.c > index d187ab9..69cc737 100644 > --- a/arch/x86/kernel/nmi_64.c > +++ b/arch/x86/kernel/nmi_64.c > @@ -327,11 +327,11 @@ void nmi_show_all_regs(void) > if (system_state == SYSTEM_BOOTING) > return; > > - smp_send_nmi_allbutself(); > - > for_each_online_cpu(i) > nmi_show_regs[i] = 1; Hi Hiroshi, I know this wasn't your code to begin with but, how does this function exit? I mean, we set an array where each index per online cpu is set to one, then do an "nmi_allbutself", and then wait on those indexes to turn zero, one at a time. If we are CPU 0 here, we set that index to 1, then enter the loop, and will block forever on this "while" loop below. Am I missing something? Thanks, -- Steve > + smp_send_nmi_allbutself(); > + > for_each_online_cpu(i) { > while (nmi_show_regs[i] == 1) > barrier(); > -- > 1.5.4.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html