[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 Wed, 2009-11-25 at 19:28 +0000, Jeremy Fitzhardinge wrote: 
> On 11/25/09 06:12, Ian Campbell wrote:
> > 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.
> >   
> 
> Yep.  I wonder how it ever worked?  There's been a fair amount of change
> in the PM code, so that could have changed things.  I don't know if
> there's a deep reason for not calling tick_resume() on all processors.
> 
> Rafael, tglx: suspend/resume under Xen doesn't need to hot unplug all
> the CPUs, so we don't; the hypervisor can manage the context
> save/restore for all CPUs.  Is there a deep reason why
> timekeeping_resume() can't call the CLOCK_EVT_NOTIFY_RESUME notifier on
> all online CPUs?

Interrupts are disabled at that point where it currently calls the
notifier, so none of the SMP function call primitives work.

> >  void xen_arch_resume(void)
> >  {
> > -   /* nothing */
> > +   smp_call_function_many(cpu_online_mask, xen_vcpu_notify_restore,
> > +                          (void *)CLOCK_EVT_NOTIFY_RESUME, 1);
> >  }
> >   
> 
> This is equivalent to smp_call_function().

Oh yeah.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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