IA64 now supports concurrent INIT events on multiple cpus, so I am going to change KDB on IA64 to send its inter processor interrupt as INIT instead of as a normal interrupt. That will get around the problem of IA64 masking the "non-maskable" interrupt when a processor disables interrupts, so we can finally get decent debugging data on processors that are spinning disabled. It will also get rid of the need to manually use the KDB init command to get data from spinning cpus.
The only downside is that INIT can be delivered at any time, including when the kernel is processing a normal interrupt and is in ivt.S. Because that code saves the interrupt state, it is not possible to get a backtrace if a non-maskable interrupt arrives in the middle of ivt.S. In an attempt to avoid that problem, I will send a normal interrupt first and, if any cpus have not responded after a few seconds, then KDB will hit them with INIT. Any objections? I will add an option to preserve the existing behaviour (only use a normal interrupt) just in case any platforms are still having problems with multiple INIT events. --------------------------- Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.
