lkml.org 
[lkml]   [2007]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: 2.6.23-rc6-mm1: failure to boot on HP nx6325, no sound when booted, USB-related WARNING
    From
    Date
    Rafael,

    On Thu, 2007-09-20 at 23:45 +0200, Rafael J. Wysocki wrote:
    > > We disable everything in device_suspend()
    >
    > No, we don't. sysdevs are _not_ suspended in device_suspend().
    > They are suspended in device_power_down(), which is called
    > _after_ disable_nonboot_cpus() (from swsusp_suspend()).
    >
    > > including timekeeping,
    >
    > No, the timekeeping is suspended in device_power_down() (or at least it should
    > be).

    Damn, you are right. Reading through 30 different logs confused me.

    > > enable_nonboot_cpus();
    >
    > Actually, we can't do this here, because of ACPI and some interrupt handling
    > related problems. Unfortunately, platform_finish() needs to go _after_
    > enable_nonboot_cpus() and device_resume() needs to go after platform_finish().
    > Analogously, disable_nonboot_cpus() has to go after platform_prepare().
    >
    > Otherwise, some systems will break.

    Well, I don't buy this one. The system would break in the same way, when
    I take CPU#1 offline before I initiate the suspend.

    > > and non-surprisingly the "my VAIO needs help from keyboard" problem went
    > > away immediately. See patch below. (on top of rc7-hrt1, -mm1 does not
    > > work at all on my VAIO due to some yet not identified wreckage)
    >
    > Hm, I really don't know why it helps, but that's not because of the timekeeping
    > suspend, IMO.

    It is related. We rely on some subtle thing which is not up when we
    resume the non boot cpu.

    > > I did not yet look into the suspend to ram code, but I guess that there
    > > is an equivalent problem.
    >
    > Yes, the code ordering is the same, but it's not totally wrong, IMHO.
    >
    > > But I have no idea why this affects Andrews jinxed VAIO (UP machine),
    > > though I suspect that we have more timekeeping/timer depending code
    > > somewhere waiting to bite us.
    >
    > That's possible.
    >
    > > Also I still need to debug why the HIBERNATION_TEST code path (which has
    > > a msleep(5000) in it) does not fail,
    >
    > See above. :-)

    Yes. It makes sense. When I change the TEST code path to:

    - printk("swsusp debug: Waiting for 5 seconds.\n");
    - msleep(5000);
    + printk("swsusp debug: before swsusp_suspend\n");
    + error = swsusp_suspend();

    then I have the same effect as I get from real hibernation. And we
    actually shut down time keeping somewhere in that code path.

    ACPI: PCI interrupt for device 0000:00:1b.0 disabled
    swsusp debug: before swsusp_suspend
    Suspend timekeeping
    swsusp: critical section:
    swsusp: Need to copy 112429 pages
    swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
    swsusp: critical section: done (112429 pages copied)
    Intel machine check architecture supported.
    Intel machine check reporting enabled on CPU#0.
    Resume timekeeping
    ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
    -> works fine

    This is with my patch applied. Without that I get:

    CPU1 is down
    swsusp debug: before swsusp_suspend
    Suspend timekeeping
    swsusp: critical section:
    swsusp: Need to copy 112429 pages
    swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
    swsusp: critical section: done (112429 pages copied)
    Intel machine check architecture supported.
    Intel machine check reporting enabled on CPU#0.
    Resume timekeeping
    Enabling non-boot CPUs
    --> Waits for ever until a key is pressed

    Thanks,

    tglx


    -
    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: 2007-09-20 23:55    [W:0.043 / U:0.084 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site