From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: live migration question Date: Tue, 31 Jan 2012 13:42:54 +0100 Message-ID: <4F27E1CE.6080100@ts.fujitsu.com> References: <4F268C03.5000003@ts.fujitsu.com> <4F26D2A8020000780006FF2F@nat28.tlf.novell.com> <4F279D56.3030303@ts.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4F279D56.3030303@ts.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jan Beulich Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org 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 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 -- Juergen Gross Principal Developer Operating Systems PDG ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@ts.fujitsu.com Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html