SMP and APM

From: Jason McMullan (jmcmullan@linuxcare.com)
Date: Sat Mar 10 2001 - 01:06:31 EST

  • Next message: root: "a bug report for 2.4.2 kernel"

            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/
    



    This archive was generated by hypermail 2b29 : Sat Mar 10 2001 - 01:15:07 EST