From: Kieran Mansley <kmansley@solarflare.com>
To: Brendan Cully <brendan@cs.ubc.ca>
Cc: "andy@cs.ubc.ca" <andy@cs.ubc.ca>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: [PATCH] Skip vcpu_hotplug for VCPU 0 in smp_resume
Date: Wed, 01 Apr 2009 11:26:24 +0100 [thread overview]
Message-ID: <1238581584.4440.18.camel@moonstone.uk.level5networks.com> (raw)
In-Reply-To: <20090331200440.GD70062@zanzibar.kublai.com>
On Tue, 2009-03-31 at 13:04 -0700, Brendan Cully wrote:
> On Tuesday, 31 March 2009 at 18:35, Keir Fraser wrote:
> > On 31/03/2009 18:24, "Brendan Cully" <brendan@cs.ubc.ca> wrote:
> >
> > > The other is in the netfront accelerator. It tears down a xenstore
> > > watch on the accelerator path at every suspend, and adds the watch
> > > back on resume. As with any xenstore interaction, this can
> > > occasionally take a very long time. I'm going from faulty memory here,
> > > but I didn't think it was necessary to tear down and restore watches
> > > across suspend. Would it make sense to move the watch remove and add
> > > into the resume hook (taking it completely out of suspend and
> > > suspend_cancel)?
> >
> > They have to be renewed on full resume, but of course they do not get reset
> > across a cancelled suspend. Kieran may be able to advise on changing the net
> > accel code.
>
> Could it be as simple as this? I can't remember what happens if
> unregister_xenbus_watch is called after the xenbus connection has been
> reset. Should we just free the guest structures without interacting
> with xenstore at the start of the resume method?
I don't think that will work. We need to remove the watch before the
suspend to ensure that the code that handles the watch will not be
activated during the migration.
The code that handles the watch may attempt to access hardware directly,
and during a migration this hardware might not be there any more. The
approach the acceleration code takes is therefore to tear down the
accelerator's direct hardware access completely before the suspend, and
only reinstate it after the resume completes (on potentially new
hardware) or after the suspend is cancelled.
It may be possible to synchronise the watch handler with the
suspend/resume/cancel cycle without removing the watch, but that starts
to get complicated.
Kieran
next prev parent reply other threads:[~2009-04-01 10:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-31 16:53 [PATCH] Skip vcpu_hotplug for VCPU 0 in smp_resume Brendan Cully
2009-03-31 17:24 ` Brendan Cully
2009-03-31 17:35 ` Keir Fraser
2009-03-31 20:04 ` Brendan Cully
2009-04-01 10:26 ` Kieran Mansley [this message]
2009-04-01 10:31 ` Keir Fraser
2009-04-01 11:00 ` Kieran Mansley
2009-04-01 18:39 ` Brendan Cully
2009-04-02 8:13 ` Kieran Mansley
2009-04-02 8:27 ` Keir Fraser
2009-04-02 9:13 ` Kieran Mansley
2009-04-07 9:26 ` Kieran Mansley
2009-04-01 20:36 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1238581584.4440.18.camel@moonstone.uk.level5networks.com \
--to=kmansley@solarflare.com \
--cc=andy@cs.ubc.ca \
--cc=brendan@cs.ubc.ca \
--cc=keir.fraser@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.