Re: [PATCH 1/3] x86, reboot: Use NMI instead of REBOOT_VECTOR tostop cpus

From: Chen Gong
Date: Thu Oct 13 2011 - 04:17:51 EST


ä 2011/10/12 20:51, Don Zickus åé:
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. :-)

Maybe two birds with on stone :-)


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.

Fine, if so, I have no objection.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/