[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] powerdown problem on XEN



Ian,
many thanks for your continued support. I have answers for your latest question and probably some more data that might help pinpointing the problem further down. Please see below:

Am 13.08.13 22:11, schrieb Ian Campbell:
On Wed, 2013-08-07 at 15:38 +0200, Atom2 wrote:

None of the options listed in your link (reboot=b|t|k|n|w|c) managed to
turn off power to the system. All but reboot=n (and also noreboot=true)
did a reboot after requesting a powerdown with shutdown -h now.
reboot=n or noreboot=true just left the machine's power on with the last
message on the console (from the gentoo dom0 shutdown) reading
[ <no secs since start> ] Power Down.
[...]
I hope the attached file helps in narrowing the powerdown problem down.
If you require any more informatio, I'd be more than happy to provide that.

Hrm, I don't have much in the way bright ideas after this.

It would be worth trying at least Xen 4.3 if not -unstable, just in case
this has been fixed already.

I have not gone down that route yet, but might do so if everything else fails - also in the hope, that 4.3 is not that far away from gentoo ...

I suppose booting the same Linux kernel natively works and can
reboot/shutdown as much as you like?
Yes, that works asbolutely reliably - only with XEN do I see those powerdown problems ...

AFAIK xen/arch/x86/acpi/power.c is at least somewhat related to
linux/drivers/acpi/power.c. I don't know to what extent they have
diverged but it might be worth eye-balling the diff and/or looking at
the Linux changelog for likely looking updates.
I did a bit of digging in and comparing of the two files that you pointed me to - but unfortunately, they are *VERY* different - not only in size (the linux one is around 24k whereas the XEN file is less than 10k), but also in content. So that not really brought me any further.

I however nevertheless thought I'd modify the XEN power.c file to see where the problem may start. I'm far from being a kernel or XEN programmer, but I am able to read and basically understand and modify C code. Supported by finding and identifying the messages I had on the serial console I decided to add a few additional printk statements after the last message that was displayed on the console to see where the system probably crashes / the problem could possibly start:

The relevant code snippet now looks as follows (NOTE: The printk messages starting with "After" or "Before" stem from me, the first one and the one within the if-construct are both unchanged; the initial one was originally always displayed on the serial console as the final line):

    printk("Entering ACPI S%d state.\n", state);

    local_irq_save(flags);
    printk("After local_irq_save\n");

    spin_debug_disable();
    printk("After spin_debug_disable\n");

    if ( (error = device_power_down()) )
    {
        printk(XENLOG_ERR "Some devices failed to power down.");
        system_state = SYS_STATE_resume;
        goto done;
    }

    printk("Before ACPI_FLUSH_CPU_CACHE\n");
    ACPI_FLUSH_CPU_CACHE();
    printk("After ACPI_FLUSH_CPU_CACHE\n");

The final few messages of the *new* output *after my amateur mods* on the serial console now read as follows:
(XEN) Entering ACPI S5 state.
(XEN) After local_irq_save
(XEN) After spin_debug_disable

There is neither a message reading
(XEN) Some devices failed to power down.
(NOTE: this printk statement however has a XENLOG_ERR before the text - so I am not sure whether that would appear on the serial console at all)

nor one reading
(XEN) Before ACPI_FLUSH_CPU_CACHE

This to me seems to indicate, that the problematic code is somewhere in
between the following lines:
    if ( (error = device_power_down()) )
    {
        printk(XENLOG_ERR "Some devices failed to power down.");
        system_state = SYS_STATE_resume;
        goto done;
    }

I hope that might provide you with some more information which I could use to make a step forward.

On the other hand I might be completely on the wrong track as I have no clue where the actual requested power-down (or as is: reboot) actually happens. That was not obvious for me from the code in power.c without further knowledge ...

In any case, many thanks in advance.

Ian.


_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.