From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>, Tiejun Chen <tiejun.chen@intel.com>
Cc: kevin.tian@intel.com, ian.campbell@citrix.com,
stefano.stabellini@eu.citrix.com, ian.jackson@eu.citrix.com,
xen-devel@lists.xen.org, yang.z.zhang@intel.com
Subject: Re: [RFC][PATCH 4/5] tools:firmware:hvmloader: reserve RMRR mappings in e820
Date: Fri, 8 Aug 2014 16:58:58 +0100 [thread overview]
Message-ID: <53E4F3C2.3060501@citrix.com> (raw)
In-Reply-To: <53E50EAC020000780002AB89@mail.emea.novell.com>
On 08/08/14 16:53, Jan Beulich wrote:
>>>> On 07.08.14 at 13:02, <tiejun.chen@intel.com> wrote:
>> We need to reserve all RMRR mappings in e820 to avoid any
>> potential guest memory conflict.
>>
>> Signed-off-by: Tiejun Chen <tiejun.chen@intel.com>
>> ---
>> tools/firmware/hvmloader/e820.c | 14 ++++++++++++++
>> tools/firmware/hvmloader/e820.h | 6 ++++++
>> tools/firmware/hvmloader/util.c | 13 +++++++++++++
>> tools/firmware/hvmloader/util.h | 1 +
>> 4 files changed, 34 insertions(+)
>> @@ -124,6 +126,18 @@ int build_e820_table(struct e820entry *e820,
>> e820[nr].type = E820_RAM;
>> nr++;
>>
>> + /* We'd better reserve RMRR mapping for each VM to avoid potential
>> + * memory conflict.
>> + */
>> + e820_rmrr_map = get_rmrr_map_info();
>> + for ( i = 0; i <= e820_rmrr_map->nr_map; i++ )
>> + {
>> + e820[nr].addr = e820_rmrr_map->map[i].addr;
>> + e820[nr].size = e820_rmrr_map->map[i].size + 1;
>> + e820[nr].type = E820_RESERVED;
>> + nr++;
>> + }
> You can't just put this in an arbitrary place, without caring for overlaps
> (and ordering perhaps - I don't recall offhand whether E820 is
> required to be sorted, or whether that's just common practice). In fact
> I'm not certain the code block following your insertion (interestingly
> another Intel special) doesn't violate this too.
>
> Jan
Whether it is required to be sorted or not, it is certainly the case
that there exist many BIOSes which present all manor of garbage in the
E820, including entries not aligned on page boundaries.
Any decent OS should be able to cope, but it is very bad form for
HVMLoader to present an E820 table like this. It should be sorted and
lacking any overlapping regions.
~Andrew
next prev parent reply other threads:[~2014-08-08 15:58 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-07 11:02 [RFC][PATCH 0/5] xen: reserve RMRR to avoid conflicting MMIO/RAM Tiejun Chen
2014-08-07 11:02 ` [RFC][PATCH 1/5] xen:x86: record RMRR mappings Tiejun Chen
2014-08-08 15:36 ` Jan Beulich
2014-08-11 3:04 ` Chen, Tiejun
2014-08-11 6:51 ` Jan Beulich
2014-08-11 7:00 ` Chen, Tiejun
2014-08-11 8:42 ` Jan Beulich
2014-08-07 11:02 ` [RFC][PATCH 2/5] xen:x86: introduce a new hypercall to get " Tiejun Chen
2014-08-08 15:45 ` Jan Beulich
2014-08-12 10:55 ` Chen, Tiejun
2014-08-12 12:19 ` Jan Beulich
2014-08-13 0:40 ` Chen, Tiejun
2014-08-13 18:21 ` Tian, Kevin
2014-08-14 1:07 ` Chen, Tiejun
2014-08-14 16:51 ` Jan Beulich
2014-08-15 6:13 ` Chen, Tiejun
2014-08-07 11:02 ` [RFC][PATCH 3/5] tools:libxc: remove mmio BAR out of " Tiejun Chen
2014-08-08 15:49 ` Jan Beulich
2014-08-08 21:33 ` Tian, Kevin
2014-08-12 10:56 ` Chen, Tiejun
2014-08-12 12:21 ` Jan Beulich
2014-08-12 10:55 ` Chen, Tiejun
2014-08-07 11:02 ` [RFC][PATCH 4/5] tools:firmware:hvmloader: reserve RMRR mappings in e820 Tiejun Chen
2014-08-07 12:03 ` Andrew Cooper
2014-08-08 2:11 ` Chen, Tiejun
2014-08-08 6:42 ` Jan Beulich
2014-08-08 7:30 ` Chen, Tiejun
2014-08-08 7:43 ` Jan Beulich
2014-08-08 8:39 ` Chen, Tiejun
2014-08-08 9:01 ` Jan Beulich
2014-08-08 9:28 ` Chen, Tiejun
2014-08-08 15:53 ` Jan Beulich
2014-08-08 15:58 ` Andrew Cooper [this message]
2014-08-11 6:48 ` Jan Beulich
2014-08-12 7:59 ` Chen, Tiejun
2014-08-08 21:47 ` Tian, Kevin
2014-08-11 6:53 ` Jan Beulich
2014-08-11 16:00 ` Tian, Kevin
2014-08-12 10:59 ` Chen, Tiejun
2014-08-12 12:25 ` Jan Beulich
2014-08-13 0:57 ` Chen, Tiejun
2014-08-13 19:10 ` Tian, Kevin
2014-08-14 3:03 ` Chen, Tiejun
2014-08-14 23:11 ` Tian, Kevin
2014-08-15 8:21 ` Chen, Tiejun
2014-08-12 10:56 ` Chen, Tiejun
2014-08-12 12:22 ` Jan Beulich
2014-08-12 10:56 ` Chen, Tiejun
2014-08-07 11:02 ` [RFC][PATCH 5/5] xen:vtd: make USB RMRR mapping safe Tiejun Chen
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=53E4F3C2.3060501@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tiejun.chen@intel.com \
--cc=xen-devel@lists.xen.org \
--cc=yang.z.zhang@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).