From mboxrd@z Thu Jan 1 00:00:00 1970 From: htmldeveloper@gmail.com (Peter Teoh) Date: Wed, 15 Jun 2011 15:55:19 +0800 Subject: Procedure Linux follows for shutting down an x86 system when ACPI is not used In-Reply-To: References: Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org To shutdown the CPU, it is just the command "halt" in assembly, but to shutdown the system' powersupply, and all other component, nowdays it is hardwired to ACPI, eg: http://www.thinkwiki.org/wiki/How_to_make_APM_work http://tuxmobil.org/apm_linux.html http://www.linuxdocs.org/HOWTOs/mini/Battery-Powered-3.html So without ACPI, as mentioned in URL above, alternative is APM. Alternatively if u are talking about SMM/SMI, yes, sounds logical, as that is how system can shutdown itself after detecting overheating in motherboard (for example) - temperature monitoring is part of SMM mode. But I am not sure if u can trigger SMI that specifically shutdown system or not. (software trigger for SMI is possible ....port 0xb2) http://en.wikipedia.org/wiki/System_Management_Mode Do aware that Intel VT (VMM) can intercept these SMI too: http://software.intel.com/en-us/forums/showthread.php?t=67301 On Wed, Jun 15, 2011 at 3:53 AM, limp wrote: > 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 at kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > -- Regards, Peter Teoh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110615/4a066476/attachment.html