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

[Xen-devel] Live migration with MMIO pages



I'm trying to track down some strange behaviour I see when doing live
migration.  Looking at the code that copies the pages across in xen-
unstable.hg/tools/libxc/xc_domain_save.c I see there's a test that
avoids doing anything with pages that are MMIO if it's an HVM domain:

                /* Skip PFNs that aren't really there */
                if ( hvm && ((n >= 0xa0 && n < 0xc0) /* VGA hole */
                             || (n >= (HVM_BELOW_4G_MMIO_START >> PAGE_SHIFT) 
                                 && n < (1ULL<<32) >> PAGE_SHIFT)) /* MMIO */ )
                    continue;

However there's no equivalent test for a non-HVM domain.  I think adding
such a test to just ignore any MMIO pages would help.  The MMIO pages
will be unmapped when the live migration finally suspends the domain
(and so the migration should be possible), but accessing them in the
mean time is probably not a good idea.  Non-live migration is fine
because the domain (and so all its devices) are suspended in advance,
and the MMIO pages are unmapped.

This code is running in dom0, and so I think will need some help from
the hypervisor to get the range of mfns that they hypervisor has
reserved for MMIO.  It could then compare the mfn to that range and
ignore it if there's a match.  Does this sound sensible?  Is there an
API to get this information already?  Any chance of a patch to fix this
making it into 3.2.0?

Kieran  


_______________________________________________
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®.