Messages in this thread | | | From | Jason McMullan <> | Subject | SMP and APM | Date | 10 Mar 2001 06:06:31 GMT |
| |
I'm working on a BIOS for a SMP machine, and I was wondering if the following technique would allow us to use APM _safely_ under SMP for Linux 2.4.x. APM (or -yech- ACPI) suspend is necessary for a customer's feature, and SMP support is required.
APM Idle calls are _not_ supported on the box, only APM suspend. So we can take a goodly amount of time _doing_ the APM call. (I know about the long AP INIT times) We just need to do it.
Besides, it'd be a great start for all those SMP laptops out there. ;^)
BP - Boot Processor (CPU 0) AP - Application Processor (CPU 1...N)
APM32 Call Flow --------------- * APs disable their interrupts * APs save their Local APIC tables * APs halt * BP calls APM32 BIOS entry point * BP gets back from APM32 call. * APs get INITed (arch/i386/kernel/smpboot.c:do_boot_cpu()) * APs reload their saved APICs * APs restart interrupts * BP and APs continue on their merry ways
-- Jason McMullan, Senior Linux Consultant Linuxcare, Inc. 412.422.8077 tel, 412.656.3519 cell jmcmullan@linuxcare.com, http://www.linuxcare.com/ Linuxcare. Putting open source to work. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |