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

Re: [Xen-devel] live migration question

  • To: Jan Beulich <JBeulich@xxxxxxxx>
  • From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
  • Date: Tue, 31 Jan 2012 13:42:54 +0100
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 31 Jan 2012 12:43:34 +0000
  • Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:Message-ID:Date:From:Organization: User-Agent:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=kMDQJaI9XGHQFAc3o07IGNRx7GPvQ7RkeAhlBPDYjQ5Nzfb10JTVIrM6 MF0mKHaPjz4ofTtXUetjGdO2jvSluvBuBQx0lj0Um02CB0FqP3ivrY2w2 SAqgBIq+leUjCZ7KyhXpA7uOqg53mnMJWta79FBRhYnNNCpJwOQFmQXpy XyQd9aBonuh8Io67zoIYQFoZtPDQGugtYT0XAenPVpqAtORgIu32LPF6J ZQuFFc0BL2tX7UXocQSWuGUhQyDw+;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

On 01/31/2012 08:50 AM, Juergen Gross wrote:
On 01/30/2012 05:26 PM, Jan Beulich wrote:
On 30.01.12 at 13:24, Juergen Gross<juergen.gross@xxxxxxxxxxxxxx>  wrote:
To avoid this stall I tried to start a little daemon on the target machine
and watch for a new BS2000 domain to show up due to live migration. I wanted
to map the domain memory as soon as the needed mapping information located
in a fixed guest mfn was transferred. Discovery of the new domain works as
expected, but I'm not capable doing any memory mapping until the restore of
the domain is finished. The mapping ioctl using IOCTL_PRIVCMD_MMAP returns
EINVAL until xc_restore is finished (more or less).

Why can xc_restore do the mapping while I can't? I know xc_restore is using
IOCTL_PRIVCMD_MMAPBATCH_V2, but I can't see a difference which should matter
between those two, as both are using the same hypercall to update the dom0
page tables.
I cannot immediately think of a reason (and indeed the difference
between the two is only how errors get handled), so I wonder
whether you checked where the - pretty generic - -EINVAL is
coming from. You also didn't mention whether any hypervisor log
entries are associated with you failed attempts.

I'll start to add some logging to the hypervisor today.

No hypervisor logs were produced in my tests, despite of setting

debug=yes loglvl=all guest_loglvl=all

as boot parameters.

I've made an additional test using xm save/xm restore to see if the same
problem shows up. It does NOT. Mapping succeeds at once while restoring
memory is still running. I always thought xm restore and live migration on
the target machine are more or less the same. This seems not to be true.

Okay, here are my results (so far):

do_mmu_update() calls mod_l1_entry() which fails with -EINVAL due to an
invalid mfn and p2m-type == 4 returned by:

mfn_x(gfn_to_mfn(pg_dom, l1e_get_pfn(nl1e), &p2mt))

I still don't see why xc_restore is able to do the mapping while my daemon is
not. And I can't find any difference between a domain creation due to
xm restore and a live migration.


Juergen Gross                 Principal Developer Operating Systems
PDG ES&S SWE OS6                       Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions              e-mail: juergen.gross@xxxxxxxxxxxxxx
Domagkstr. 28                           Internet: ts.fujitsu.com
D-80807 Muenchen                 Company details: ts.fujitsu.com/imprint.html

Xen-devel mailing list



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