This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] pv 2.6.31 (kernel.org) and save/migrate fails, domU BUG

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] pv 2.6.31 (kernel.org) and save/migrate fails, domU BUG
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Wed, 25 Nov 2009 14:12:08 +0000
Cc: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>, "Xen-Devel \(E-mail\)" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 25 Nov 2009 06:12:32 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1259072824.7590.389.camel@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <20091108154153.GM1434@xxxxxxxxxxx> <693ea516-aa5b-4f82-ad48-1bd51cfa3480@default> <20091108172747.GR1434@xxxxxxxxxxx> <20091110100806.GE16033@xxxxxxxxxxx> <4AFC9BFF.9030707@xxxxxxxx> <1259072824.7590.389.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Tue, 2009-11-24 at 14:27 +0000, Ian Campbell wrote:
> 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. 

tick_resume() is never called on secondary processors. Presumably this
is because they are offlined for suspend on native and so this is
normally taken care of in the CPU onlining path. Under Xen we keep all
CPUs online over a suspend.

This patch papers over the issue for me but I will investigate a more
generic, less hacky, way of doing to the same.

tick_suspend is also only called on the boot CPU which I presume should
be fixed too.


diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
index 6343a5d..cdfeed2 100644
--- a/arch/x86/xen/suspend.c
+++ b/arch/x86/xen/suspend.c
@@ -1,4 +1,5 @@
 #include <linux/types.h>
+#include <linux/clockchips.h>
 #include <xen/interface/xen.h>
 #include <xen/grant_table.h>
@@ -46,7 +50,19 @@ void xen_post_suspend(int suspend_cancelled)
+static void xen_vcpu_notify_restore(void *data)
+       unsigned long reason = (unsigned long)data;
+       /* Boot processor notified via generic timekeeping_resume() */
+       if ( smp_processor_id() == 0)
+               return;
+       clockevents_notify(reason, NULL);
 void xen_arch_resume(void)
-       /* nothing */
+       smp_call_function_many(cpu_online_mask, xen_vcpu_notify_restore,
+                              (void *)CLOCK_EVT_NOTIFY_RESUME, 1);

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>