Procedure Linux follows for shutting down an x86 system when ACPI is not used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I am trying to figure out the procedure that Linux follows for shutting down
an x86 based system when ACPI is not used. From what I've found, when we try
to shutdown the system from user-space, _reboot() system call is called with
"LINUX_REBOOT_CMD_POWER_OFF" as argument. By tracking down the steps
performed in the kernel when the aforementioned system call is involved, I
ended up in kernel_power_off(), unlock_kernel(), and finaly do_exit()
functions.

The kernel_power_off() ultimately calls the  native_machine_shutdown() form
which Linux disables LAPIC, I/O APIC, HPET, etc. Then, after calling the
unlock_kernel(), the do_exit() is called for ultimately shutting down the
system. In the end of this function, I can see that the processor enters an
infinite loop from which it repeatedly executes NOP instructions. That is
actually the behaviour that I experience when I am not using ACPI; the
system is not actually turning off but it goes into an idle state.

Is this how Linux should act when ACPI is not used? I would expect in this
case Linux to invoke an SMI so that the appropriate SMI function actually
shutdown the system but I can't see where (and if) that takes place.

Any help will be greatly appreciated.

John K.


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux