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

Re: [Xen-users] powerdown problem on XEN

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);

    printk("After local_irq_save\n");

    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");
    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

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.


Xen-users mailing list



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