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