void pseries_kexec_cpu_down(int crash_shutdown, int secondary)
{ /* * Don't risk a hypervisor call if we're crashing * XXX: Why? The hypervisor is not crashing. It might be better * to at least attempt unregister to avoid the hypervisor stepping * on our memory.
*/ if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) { int ret; int cpu = smp_processor_id(); int hwcpu = hard_smp_processor_id();
if (get_lppaca()->dtl_enable_mask) {
ret = unregister_dtl(hwcpu); if (ret) {
pr_err("WARNING: DTL deregistration for cpu " "%d (hw %d) failed with %d\n",
cpu, hwcpu, ret);
}
}
ret = unregister_slb_shadow(hwcpu); if (ret) {
pr_err("WARNING: SLB shadow buffer deregistration " "for cpu %d (hw %d) failed with %d\n",
cpu, hwcpu, ret);
}
ret = unregister_vpa(hwcpu); if (ret) {
pr_err("WARNING: VPA deregistration for cpu %d " "(hw %d) failed with %d\n", cpu, hwcpu, ret);
}
}
if (xive_enabled()) {
xive_teardown_cpu();
if (!secondary)
xive_shutdown();
} else
xics_kexec_teardown_cpu(secondary);
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.