All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Vasco Fachin <pdpcrew@gmail.com>, xen-devel@lists.xen.org
Subject: Re: Migration of a 32-bit PV-Guest
Date: Wed, 21 Jan 2015 15:29:58 +0000	[thread overview]
Message-ID: <54BFC5F6.5070709@citrix.com> (raw)
In-Reply-To: <CACenyFAeneW_-Q6G1arhuMDQnoA_6Q2vBRD+cKWu1wcU18f0hQ@mail.gmail.com>

On 21/01/15 15:17, Vasco Fachin wrote:
> Hi everybody,
>
> I am currently working on a object-oriented paravirtual operating
> system as a university project.

Sounds like an interesting project.

>
> We were able to use a MiniOS core in order to build a relative stable
> guest, or at least stable enough for our purposes. :-D
>
> However for one thing we could not proceed. We need to migrate our
> guest to another machine, so after some research we came by this
> hypercall: HYPERVISOR_update_va_mapping(...), which is apparently
> needed in order to unmap the shared info page before we could suspend
> our system.

Yes - the shared info page must be removed from the pagetables before
suspend, and must be remapped after resume.  The shared info page is
actually a Xen page mapped into the guest, so will be in a different
location.

>
> At this point, our system crashes everytime with the following output
> from "xm dmesg":
> (XEN) mm.c:918:d320 Error getting mfn 4636 (pfn 5555555555555555) from
> L1 entry 0000000004636023 for l1e_owner=320, pg_owner=320

pfn 5555555555555555 looks like a deliberately poisoned value, which
suggests that you are not umapping the page that you are intending to.

Can you observe what the shared info mfn is from boot?  I presume it
isn't 0x4636 given the above error.

>
> I tested the same hypercall with a 32bit version of MiniOS and it
> crashes as well with the same output. Then I tried it with a 64bit
> version of MiniOS and seems to work just fine.
>
> Somehow I cannot find any 32bit paravirtual machine that could be
> migrated. Does anybody know if such a system exists?

Any 32bit Linux guest will successfully migrate.

>
> Our configuration at the moment is this:
> Dom0: Ubuntu 12.10 64bit
> XEN: xen 4.1.4 64bit
> DomU: 32bit PV-Guest (Object-oriented derived from a 32bit version of MiniOS).
>
> We tested our system, with the same behavior, also on the following platform:
> Dom0: Ubuntu 12.04 32bit
> XEN: xen 4.1.4 32bit
>
> My question is: does anybody know if a migration of a 32bit PV-System
> is possible (in Xen 4.1.4/any newer release)? Or has anyone an idea of
> why this particular hypercall fails to execute on a 32bit guest, while
> it works on a 64bit guest?

I can tell you for absolute certain that 32bit PV guests can migrate. 
We test this extensively in XenServer, and I was quite careful to make
sure it continued to work even after rewriting the migration toolstack
code for migration v2.

~Andrew

  reply	other threads:[~2015-01-21 15:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-21 15:17 Migration of a 32-bit PV-Guest Vasco Fachin
2015-01-21 15:29 ` Andrew Cooper [this message]
2015-01-21 16:54   ` 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=54BFC5F6.5070709@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=pdpcrew@gmail.com \
    --cc=xen-devel@lists.xen.org \
    /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.