lkml.org 
[lkml]   [2004]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject2.6.2-rc1 / ACPI sleep / irqbalance / kirqd / pentium 4 HT problems on Uniwill N258SA0
    Uniwill N258SA0 (http://www.uniwill.com/Product/N258SA0/N258SA0.html) aka
    Hypersonic Aviator NX6, Fujitsu-Siemens AMILO D 1840 Widescreen, etc.).
    SiS 648FX chipset, SiS 900 Ethercard, AMI BIOS, ATI AV350/M10 128Mb.
    My machine: Hyperthreaded P4 2.8GHz, .5Gb PC3200 RAM.

    Installed Fedora. Upgraded to 2.6.2-rc1 per
    http://thomer.com/linux/migrate-to-2.6.html.

    Applied kernel patches:
    - SiS AGP (http://lkml.org/lkml/2004/1/20/233)
    (needed to run ATI's 3.7 fglrx drivers on the SiS/M10 combo)
    - ACPI 20031203 (http://acpi.sourceforge.net/)

    All good, but ACPI sleep doesn't work and neither does userland IRQ
    balancing with Arjan's irqbalance (http://people.redhat.com/arjanv/irqbalance/),
    a standard part of the Fedora install.

    irqbalance just locks up the machine totally, hard power-off needed, no
    traces in the logs. Probably some issue (race?) with it writing to
    /proc/irq/X/smp_affinity. And how is irqbalance supposed to play with
    kirqd anyway? Grepping this list and others doesn't give any kind of an
    answer. But disabling it gives all interrupts to cpu0 (looking at
    /proc/interrupts). kirqd apparently only balances between CPU packages,
    not between HT siblings (info gleaned from this list).

    Anyway, sleep/suspend/standby functionality (important to most laptop
    users, need to close the lid and go): This checkin to
    kernel/power/main.c seems to disable suspend with SMP (!?):

    --- 1.3/kernel/power/main.c Sat Jan 24 20:44:47 2004
    +++ 1.4/kernel/power/main.c Sat Jan 24 20:44:47 2004
    @@ -172,6 +172,12 @@
    if (down_trylock(&pm_sem))
    return -EBUSY;

    + /* Suspend is hard to get right on SMP. */
    + if (num_online_cpus() != 1) {
    + error = -EPERM;
    + goto Unlock;
    + }
    +
    if ((error = suspend_prepare(state)))
    goto Unlock;

    ... which, given the prevalence of hyperthreaded CPUs on laptops, is
    fighting a trend. I backed out the above with a #if 0 then tried echo -n
    1>/proc/acpi/sleep again. This time I got:
    Stopping tasks: ===================================================================
    stopping tasks failed (1 tasks remaining)
    Restarting tasks...<6> Strange, kirqd not stopped
    done
    kirqd just wouldn't stop.

    Tried booting with acpi=off and apm=smp to force APM, then ran
    apm --suspend, but it put the machine into a LCD blanked state it
    couldn't get out of without another hard power cycle.

    Questions: Why does irqbalance lock up the machine and how is it
    supposed to collaborate with kirqd? How is ACPI suspend supposed to work
    on any recent laptop if SMP is barred? Why doesn't kirqd stop when asked
    to by ACPI suspend once that restriction is bypassed?

    A lot of effort is going into swsusp/pmdisk - but a lot of laptop users
    prefer S1 to S4, as it's faster and more reliable. It'd be nice to see a
    simpler "spin down the hard drive, reduce CPU clock speed to a minimum,
    and power down display/ether/wireless/usb/PCMCIA" working ahead of
    hibernation.

    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 14:00    [W:0.023 / U:88.356 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site