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

Re: [Xen-devel] [PATCH 24/25] argo: unmap rings on suspend and send signal to ring-owners on resume



On Thu, Dec 13, 2018 at 6:26 AM Jan Beulich <JBeulich@xxxxxxxx> wrote:
>
> >>> On 01.12.18 at 02:33, <christopher.w.clark@xxxxxxxxx> wrote:
> > so that the guest may re-register the rings on resume with current mappings.
>
> Is this something guests really need help with, rather than managing
> it on their own? What does "current mappings" here mean, i.e. why
> do rings need re-registration in the first place?

My understanding is that the gfn->mfn mapping is not necessarily
stable across entry and exit to host S4, suspend to disk, so the
rings need to be torn down before suspend to stop further writes
into those pages after resume.
When the guest gets the notification after resume, it can
re-register the rings with its list of gfns, which can then
be re-translated into the (possibly) new mfns needed for the ring.

> > +void
> > +argo_resume(struct domain *d)
> > +{
> > +    bool send_wakeup;
> > +
> > +    if ( !d )
> > +        return;
> > +
> > +    if ( !get_domain(d) )
> > +        return;
> > +
> > +    read_lock(&argo_lock);
> > +
> > +    read_lock(&d->argo->lock);
> > +    send_wakeup = ( d->argo->ring_count > 0 );
> > +    read_unlock(&d->argo->lock);
> > +
> > +    if ( send_wakeup )
> > +        argo_signal_domain(d);
> > +
> > +    read_unlock(&argo_lock);
> > +
> > +    put_domain(d);
> > +}
>
> domain_resume() also gets called from domain_soft_reset(). Do
> you really want such handling in that case as well, when after a
> soft-reset the domain is supposed to be "blank"?

Thanks for the pointer to soft reset: I've added implementation
for this to the next version of the patch series, and it'll be fine
with resume then.

Christopher

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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