[lkml]   [2011]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 1/3] x86, reboot: Use NMI instead of REBOOT_VECTOR to stop cpus
On Wed, Oct 12, 2011 at 10:35:42AM +0800, Chen Gong wrote:
> 于 2011/10/11 23:24, Don Zickus 写道:
> >+
> >+ /* sync above data before sending NMI */
> >+ wmb();
> >+
> >+ apic->send_IPI_allbutself(NMI_VECTOR);
> >+
> >+ /*
> >+ * Don't wait longer than a second if the caller
> >+ * didn't ask us to wait.
> >+ */
> >+ timeout = USEC_PER_SEC;
> >+ while (num_online_cpus()> 1&& (wait || timeout--))
> >+ udelay(1);
> In this patch and next patch, how about using the same logic in commit 74d91e3c6

I guess I don't understand why I would do that. That commit doesn't seem
to have a way to break out of the while loop and it does not take into account
the 'wait' variable the virt folks needed. The only thing that could be
usable seems to be the 'touch_nmi_watchdog', but in that case if the other
cpus haven't hit the NMI yet, I would be happy for other NMI sources to
trigger to, to help move things along. :-)

The above code snippet is what is currently there and that seems to work
well, so I didn't want to change to much when moving from the IRQ path to
the NMI path.

Perhaps I am missing something?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2011-10-12 14:55    [W:0.033 / U:1.664 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site