[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] pv 2.6.31 (kernel.org) and save/migrate fails, domU BUG
On Thu, 2009-11-12 at 23:36 +0000, Jeremy Fitzhardinge wrote: > On 11/10/09 02:08, Pasi KÃrkkÃinen wrote: > > Hello, > > > > Jeremy: Here's summary about these save/restore problems > > using upstream Linux 2.6.31.5 PV guest. > > > > For me: > > - I can "xm save" + "xm restore" UP guest, but I get non-fatal > > BUG in the guest kernel, see [1]. > > - "xm save" fails for SMP guest with "failed to get the suspend evtchn > > port", see [2]. > > > > For Dan: > > - "xm save" works for UP guest, but "xm restore" doesn't, giving > > infinite xen_sched_clock related dumps in the guest kernel, see [3]. > > - "xm save" for SMP guest fails, it never ends. I suspect this > > is the same problem I'm seeing. > > > > > > [1] non-fatal BUG on the guest kernel after "xm restore": > > http://pasik.reaktio.net/xen/debug/dmesg-2.6.31.5-122.fc12.x86_64-saverestore.txt > > > > Does this help: It does for me. There's another dpm_resume_noirq(PMSG_RESUME) a little later in do_suspend() which I think needs to be dropped as well. I'm still seeing other problems with resume, the system is hung on restore and the RCU stall detection logic is triggering, unfortunately arch_trigger_all_cpu_backtrace is not Xen compatible (uses APIC directly) so I don't get much useful info out of it. It's most likely a symptom of the actual problem rather than a problem with RCU per-se anyhow. diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c index 10d03d7..7b69a1a 100644 --- a/drivers/xen/manage.c +++ b/drivers/xen/manage.c @@ -43,7 +43,6 @@ static int xen_suspend(void *data) if (err) { printk(KERN_ERR "xen_suspend: sysdev_suspend failed: %d\n", err); - dpm_resume_noirq(PMSG_RESUME); return err; } @@ -69,7 +68,6 @@ static int xen_suspend(void *data) } sysdev_resume(); - dpm_resume_noirq(PMSG_RESUME); return 0; } @@ -108,6 +106,9 @@ static void do_suspend(void) } err = stop_machine(xen_suspend, &cancelled, cpumask_of(0)); + + dpm_resume_noirq(PMSG_RESUME); + if (err) { printk(KERN_ERR "failed to start xen_suspend: %d\n", err); goto out; @@ -119,8 +120,6 @@ static void do_suspend(void) } else xs_suspend_cancel(); - dpm_resume_noirq(PMSG_RESUME); - resume_devices: dpm_resume_end(PMSG_RESUME); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |