From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH v9 08/15] tools/libxc: x86 PV save code
Date: Wed, 15 Apr 2015 12:41:37 +0100 [thread overview]
Message-ID: <552E4E71.9020902@citrix.com> (raw)
In-Reply-To: <1429096412.15516.205.camel@citrix.com>
On 15/04/15 12:13, Ian Campbell wrote:
> On Fri, 2015-04-10 at 18:16 +0100, Andrew Cooper wrote:
>> Save the x86 PV specific parts of a domain. This is the X86_PV_INFO record,
>> the P2M_FRAMES, the X86_PV_SHARED_INFO, the three different VCPU context
>> records, and the MSR records.
>>
>> The normalise_page callback used by the common code when writing the PAGE_DATA
>> records, converts MFNs in page tables to PFNs.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
>
> With one question:
>
>> +#ifdef __x86_64__
>> + /* 64bit toolstack, 32bit guest. Expand any INVALID_MFN. */
>> + uint32_t s = ((uint32_t *)src)[x];
>> +
>> + dst[x] = s == ~0U ? INVALID_MFN : s;
>> +#else
>> + /* 32bit toolstack, 64bit guest. Truncate their pointers */
>> + dst[x] = ((uint64_t *)src)[x];
>> +#endif
> Would it not be better to propagate an error instead of truncating? Or
> at least log the first instance of such?
There are valid truncations to be performed, from 64bit INVALID_MFN to
32bit INVALID_MFN.
For the invalid truncations, that is a little harder. The post-trucated
values are the ones which are checked for validity (so is at least safe
from that point of view), and will fail because of a p2m/m2p mismatch,
completely aborting the migration.
Truncation will only actually occur if a domain has pages above the 16TB
(44 bits) boundary, and a 32bit dom0 is simply not going to function on
a server that size.
In other words, I don't think there is a practical situation where
truncation would be an issue.
~Andrew
next prev parent reply other threads:[~2015-04-15 11:41 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-10 17:15 [PATCH v9 00/15] Migration v2 (libxc) Andrew Cooper
2015-04-10 17:15 ` [PATCH v9 01/15] tools/libxc: Implement writev_exact() in the same style as write_exact() Andrew Cooper
2015-04-15 10:44 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 02/15] libxc/progress: Extend the progress interface Andrew Cooper
2015-04-15 10:55 ` Ian Campbell
2015-04-20 13:15 ` Andrew Cooper
2015-04-22 15:38 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 03/15] tools/libxc: Migration v2 framework Andrew Cooper
2015-04-15 10:57 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 04/15] tools/libxc: C implementation of stream format Andrew Cooper
2015-04-15 10:59 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 05/15] tools/libxc: noarch common code Andrew Cooper
2015-04-15 11:00 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 06/15] tools/libxc: x86 " Andrew Cooper
2015-04-10 17:15 ` [PATCH v9 07/15] tools/libxc: x86 PV " Andrew Cooper
2015-04-15 11:07 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 08/15] tools/libxc: x86 PV save code Andrew Cooper
2015-04-15 11:13 ` Ian Campbell
2015-04-15 11:41 ` Andrew Cooper [this message]
2015-04-15 11:52 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 09/15] tools/libxc: x86 PV restore code Andrew Cooper
2015-04-15 11:22 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 10/15] tools/libxc: x86 HVM save code Andrew Cooper
2015-04-13 12:28 ` Vitaly Kuznetsov
2015-04-13 13:21 ` Andrew Cooper
2015-04-15 11:29 ` Ian Campbell
2015-04-15 11:30 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 11/15] tools/libxc: x86 HVM restore code Andrew Cooper
2015-04-15 11:31 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 12/15] tools/libxc: noarch save code Andrew Cooper
2015-04-15 11:34 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 13/15] tools/libxc: noarch restore code Andrew Cooper
2015-04-15 11:42 ` Ian Campbell
2015-04-15 11:50 ` Andrew Cooper
2015-04-15 11:53 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 14/15] docs: libxc migration stream specification Andrew Cooper
2015-04-15 11:46 ` Ian Campbell
2015-04-15 12:05 ` Andrew Cooper
2015-04-15 12:11 ` Ian Campbell
2015-04-15 12:02 ` David Vrabel
2015-04-15 12:09 ` Andrew Cooper
2015-04-10 17:16 ` [PATCH v9 15/15] tools/libxc: Migration v2 compatibility for unmodified libxl Andrew Cooper
2015-04-15 11:51 ` Ian Campbell
2015-04-15 12:14 ` Andrew Cooper
2015-04-15 12:52 ` 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=552E4E71.9020902@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=wei.liu2@citrix.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.