All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <Ian.Campbell@citrix.com>
To: George Dunlap <george.dunlap@eu.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: Thu, 15 Jan 2015 10:05:40 +0000	[thread overview]
Message-ID: <1421316340.19103.311.camel@citrix.com> (raw)
In-Reply-To: <54B6B1FB.3020308@eu.citrix.com>

On Wed, 2015-01-14 at 18:14 +0000, George Dunlap wrote:
> 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. :-(

It *might* have been more complicated because I was also trying to keep
ROMBIOS+qemu-trad doing something sensible and worrying about code
duplication, plus the whole seabios thing was pretty new to me at the
time as well.

It probably wouldn't be a waste of time for someone for spend say 1/2 a
day taking another poke at it (modulo what you said below perhaps making
it a little moot).

> >> 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).

It's possible that solving this for both would gain some traction with
upstreams, although whether our preferred solution would be a good fit
for kvm I dunno, since we have different concepts of who is the ultimate
authority on the address space.

> So it looks like the path to a rational system is more difficult than I
> had initially hoped.

True.

Ian.

  reply	other threads:[~2015-01-15 10:05 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
2015-01-15 10:05                                                           ` Ian Campbell [this message]
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=1421316340.19103.311.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=george.dunlap@eu.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=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.