[PATCH v2] Add call to non-crashing cores through IPI

Per Fransson per.fransson.ml at gmail.com
Mon Nov 29 07:46:26 EST 2010


>>  void machine_crash_shutdown(struct pt_regs *regs)
>>  {
>> +     unsigned long msecs;
>
> Int should be enough here? Not that it makes a difference on ARM, but
> anyway. :)
>
>> +
>>       local_irq_disable();
>> +
>> +     atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
>> +     smp_call_function(machine_crash_nonpanic_core, NULL, false);
>> +     msecs = 1000; /* Wait at most a second for the other cpus to stop */
>> +     while ((atomic_read(&waiting_for_crash_ipi) > 0) && msecs) {
>> +             mdelay(1);
>> +             msecs--;
>> +     }

The choice of type comes from the corresponding x86 code in

    arch/x86/kernel/reboot.c:nmi_shootdown_cpus()

Should we deviate?

Regards,
Per



More information about the kexec mailing list