void cpu_idle (void)
{
/* endless idle loop with no priority at all */
while (1) {
void (*idle)(void) = pm_idle;
if (!idle)
idle = default_idle;
if (!current->need_resched)
idle();
schedule();
check_pgt_cache();
}
}
Dieser Code existierte in: "arch/i386/kernel/process.c" im Zusammenhang 2.4.18-14Änderung while (1) Schleife zu busy wait in Linux-Kernel
dieser Code auf Linux ist responsable der (CPU Leerlaufschleife).
die frage ist: kann ich die while (1) schleife mit bust warten?
Bitte bearbeiten Sie Ihre Frage, um den Code anstelle eines Screenshots –
@NoamHacker, fertig. –
Presumaby, 'pm_idle' existiert, so dass Sie die Standard-Leerlauf-Handler-Funktion 'überschreiben' können, was wahrscheinlich den aufrufenden Prozessorkern anhält. Vermutlich könnten Sie "pm_wait" auf eine Funktion richten, die nichts außer return tut, und cpu_idle würde dann den Raum aufwärmen, indem sie fortwährend "schedule" und "check_pgt_cache" aufruft. Selbst wenn das 'funktioniert', warum jemand das tun möchte, ist über mich hinaus :( –