From: George Dunlap <george.dunlap@eu.citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Kevin Tian <kevin.tian@intel.com>,
"wei.liu2@citrix.com" <wei.liu2@citrix.com>,
"stefano.stabellini@eu.citrix.com"
<stefano.stabellini@eu.citrix.com>,
"ian.jackson@eu.citrix.com" <ian.jackson@eu.citrix.com>,
"tim@xen.org" <tim@xen.org>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Jan Beulich <JBeulich@suse.com>,
Yang Z Zhang <yang.z.zhang@intel.com>,
Tiejun Chen <tiejun.chen@intel.com>
Subject: Re: (v2) Design proposal for RMRR fix
Date: Wed, 14 Jan 2015 18:14:19 +0000 [thread overview]
Message-ID: <54B6B1FB.3020308@eu.citrix.com> (raw)
In-Reply-To: <1421250198.19103.288.camel@citrix.com>
On 01/14/2015 03:43 PM, Ian Campbell wrote:
> On Wed, 2015-01-14 at 15:39 +0000, George Dunlap wrote:
>> On 01/14/2015 03:18 PM, Ian Campbell wrote:
>>>>> Host BIOSes are generally large compared to the guest BIOS, but with the
>>>>> amount of decompression and relocation etc they do I don't know how much
>>>>> of them generally remains in the <1MB region.
>>>>
>>>> Recall the example: (host) RMRR naming E0000-EFFFF, which
>>>> overlaps with the init-time guest BIOS image, but doesn't overlap
>>>> with its resident part (as long as that doesn't exceed 64k in size).
>>>
>>> Right, that means second precondition above doesn't really hold, which
>>> is a shame.
>>>
>>> In principal it might be possible to have some of the RMRR setup and
>>> conflict detection stuff in SeaBIOS rather than hvmloader, and therefore
>>> take advantage of the same init-time vs resident distinction, but I
>>> suspect that won't lead to an overall design we are happy with, mainly
>>> since such things are typically done by hvmloader in a Xen system.
>>
>> Actually, I was just thinking about this -- I'm not really sure why we
>> do the PCI MMIO stuff in hvmloader at all. Is there any reason, other
>> than the fact that we need to tell Xen about updates to the physical
>> address space? If not, it seems like doing it in SeaBIOS would make a
>> lot more sense, rather than having to maintain duplicate functionality
>> in hvmloader.
>
> I don't remember exactly, but I think it was because something about the
> PCI enumeration required reflecting in the ACPI tables, which hvmloader
> also provides. Splitting it up was tricky, that was what I initially
> tried when adding SeaBIOS support, it turned into a rats nest.
Blah. :-(
>> Anthony is looking into this, but if SeaBIOS inside KVM is able to
>> notify qemu about changes to the memory map, then it seems like teaching
>> SeaBIOS how to tell Xen about those changes (or have qemu do it) would
>> make a lot of our problems in this area a lot simpler.
>
> SeaBIOS on qemu uses the firmware cfg interface (a bit bashed protocol
> over a magic port) to split these responsibilities. I'm not sure of the
> exact split but I know that not so long ago responsibility for
> constructing the ACPI tables moved from SeaBIOS to qemu (or maybe just a
> subset, perhaps someone else knows better).
>
>> For RMRRs, presumably SeaBIOS is already set up to avoid them; so if we
>> can just give it an e820 with the RMRRs in it, then everything will just
>> fall out of that.
>
> I suppose, my guess would be that any code which would go anywhere near
> stuff like is already gated on Xen because hvmloader takes care of it.
Yes, that's in fact what happens (I'm pretty sure in the MMIO placement
code it has an "if (xen) return;" at the top); I was trying to envision
a future where this was all rationalized and de-duplicated.
And for the record, Anthony has just looked into what happens with the
MMIO hole on KVM, and apparently SeaBIOS is just given either a 0.5 or
1G hole, and if it can't fit everything, it calls panic(). (i.e.,
there's no way for SeaBIOS to make the hole bigger on KVM either).
So it looks like the path to a rational system is more difficult than I
had initially hoped.
-George
next prev parent reply other threads:[~2015-01-14 18:14 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-26 11:23 (v2) Design proposal for RMRR fix Tian, Kevin
2015-01-08 0:43 ` Tian, Kevin
2015-01-08 12:32 ` Tim Deegan
2015-01-09 0:53 ` Tian, Kevin
2015-01-09 12:00 ` Andrew Cooper
2015-01-08 12:49 ` George Dunlap
2015-01-08 12:54 ` George Dunlap
2015-01-08 13:00 ` Jan Beulich
2015-01-08 15:15 ` George Dunlap
2015-01-08 15:21 ` Jan Beulich
2015-01-09 2:43 ` Tian, Kevin
2015-01-12 11:25 ` George Dunlap
2015-01-12 13:56 ` Pasi Kärkkäinen
2015-01-12 14:23 ` George Dunlap
2015-01-08 12:58 ` Jan Beulich
2015-01-09 2:29 ` Tian, Kevin
2015-01-09 9:24 ` Jan Beulich
2015-01-09 10:03 ` Tian, Kevin
2015-01-09 2:42 ` Tian, Kevin
2015-01-08 13:54 ` Jan Beulich
2015-01-08 15:59 ` George Dunlap
2015-01-08 16:10 ` Jan Beulich
2015-01-08 18:02 ` George Dunlap
2015-01-08 18:12 ` Pasi Kärkkäinen
2015-01-09 3:12 ` Tian, Kevin
2015-01-09 8:58 ` Jan Beulich
2015-01-09 20:27 ` Konrad Rzeszutek Wilk
2015-01-12 9:44 ` Tian, Kevin
2015-01-12 12:12 ` Ian Campbell
2015-01-14 20:06 ` Konrad Rzeszutek Wilk
2015-01-09 2:49 ` Tian, Kevin
2015-01-09 2:27 ` Tian, Kevin
2015-01-09 9:21 ` Jan Beulich
2015-01-09 10:10 ` Tian, Kevin
2015-01-09 10:35 ` Jan Beulich
2015-01-12 8:46 ` Tian, Kevin
2015-01-12 9:32 ` Jan Beulich
2015-01-12 9:41 ` Tian, Kevin
2015-01-12 9:50 ` Jan Beulich
2015-01-12 9:56 ` Tian, Kevin
2015-01-12 10:08 ` Jan Beulich
2015-01-12 10:12 ` Tian, Kevin
2015-01-12 10:22 ` Jan Beulich
2015-01-12 11:22 ` Tian, Kevin
2015-01-12 11:37 ` Jan Beulich
2015-01-12 11:41 ` Tian, Kevin
2015-01-12 12:03 ` Jan Beulich
2015-01-12 12:16 ` Tian, Kevin
2015-01-12 12:46 ` Jan Beulich
2015-01-12 12:13 ` George Dunlap
2015-01-12 12:23 ` Ian Campbell
2015-01-12 12:28 ` Tian, Kevin
2015-01-12 14:19 ` George Dunlap
2015-01-13 11:03 ` Tian, Kevin
2015-01-13 11:56 ` Jan Beulich
2015-01-13 12:03 ` Tian, Kevin
2015-01-13 15:52 ` Jan Beulich
2015-01-13 15:58 ` George Dunlap
2015-01-14 8:06 ` Tian, Kevin
2015-01-14 9:00 ` Jan Beulich
2015-01-14 9:43 ` Tian, Kevin
2015-01-14 10:24 ` Jan Beulich
2015-01-14 12:01 ` George Dunlap
2015-01-14 12:11 ` Tian, Kevin
2015-01-14 14:32 ` Jan Beulich
2015-01-14 14:37 ` George Dunlap
2015-01-14 14:47 ` Jan Beulich
2015-01-14 18:29 ` George Dunlap
2015-01-15 8:37 ` Jan Beulich
2015-01-15 9:36 ` Tian, Kevin
2015-01-15 10:06 ` Jan Beulich
2015-01-18 8:36 ` Tian, Kevin
2015-01-19 8:42 ` Jan Beulich
2015-01-15 11:45 ` George Dunlap
2015-01-18 8:58 ` Tian, Kevin
2015-01-19 9:32 ` Jan Beulich
2015-01-19 11:24 ` Tian, Kevin
2015-01-19 11:33 ` Tim Deegan
2015-01-19 11:41 ` Jan Beulich
2015-01-19 12:23 ` Tim Deegan
2015-01-19 13:00 ` George Dunlap
2015-01-20 0:52 ` Tian, Kevin
2015-01-20 8:43 ` Jan Beulich
2015-01-20 8:56 ` Tian, Kevin
2015-01-20 12:56 ` George Dunlap
2015-01-21 2:43 ` Tian, Kevin
2015-01-19 13:52 ` Jan Beulich
2015-01-19 15:29 ` Tim Deegan
2015-01-20 0:45 ` Tian, Kevin
2015-01-20 7:29 ` Jan Beulich
2015-01-20 8:59 ` Tian, Kevin
2015-01-20 9:10 ` Jan Beulich
2015-01-20 10:38 ` Ian Campbell
2015-01-20 10:48 ` Jan Beulich
2015-01-21 2:30 ` Tian, Kevin
2015-01-21 10:18 ` Jan Beulich
2015-01-19 10:21 ` George Dunlap
2015-01-19 11:08 ` Ian Campbell
2015-01-14 12:03 ` Tian, Kevin
2015-01-14 14:34 ` Jan Beulich
2015-01-14 12:12 ` George Dunlap
2015-01-14 14:36 ` Jan Beulich
2015-01-14 12:16 ` George Dunlap
2015-01-14 14:39 ` Jan Beulich
2015-01-14 18:16 ` George Dunlap
2015-01-14 12:21 ` Ian Campbell
2015-01-14 12:17 ` Ian Campbell
2015-01-14 15:07 ` Jan Beulich
2015-01-14 15:18 ` Ian Campbell
2015-01-14 15:39 ` George Dunlap
2015-01-14 15:43 ` Ian Campbell
2015-01-14 18:14 ` George Dunlap [this message]
2015-01-15 10:05 ` Ian Campbell
2015-01-15 11:58 ` George Dunlap
2015-01-14 16:26 ` Jan Beulich
2015-01-15 8:40 ` Tian, Kevin
2015-01-14 12:29 ` George Dunlap
2015-01-14 14:42 ` Jan Beulich
2015-01-14 18:22 ` George Dunlap
2015-01-15 8:18 ` Tian, Kevin
2015-01-13 13:45 ` George Dunlap
2015-01-13 15:47 ` Jan Beulich
2015-01-13 16:00 ` George Dunlap
2015-01-13 16:06 ` Jan Beulich
2015-01-14 6:52 ` Tian, Kevin
2015-01-14 12:14 ` Ian Campbell
2015-01-14 12:23 ` George Dunlap
2015-01-15 8:12 ` Tian, Kevin
2015-01-13 16:45 ` Konrad Rzeszutek Wilk
2015-01-14 8:13 ` Tian, Kevin
2015-01-14 9:02 ` Jan Beulich
2015-01-14 9:44 ` Tian, Kevin
2015-01-14 10:25 ` Jan Beulich
2015-01-14 20:42 ` Konrad Rzeszutek Wilk
2015-01-15 8:09 ` Tian, Kevin
2015-01-16 17:17 ` Konrad Rzeszutek Wilk
2015-01-15 8:43 ` Jan Beulich
2015-01-14 12:47 ` George Dunlap
2015-01-12 12:30 ` Tian, Kevin
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=54B6B1FB.3020308@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=JBeulich@suse.com \
--cc=ian.jackson@eu.citrix.com \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tiejun.chen@intel.com \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.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 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.