All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Kevin Tian <kevin.tian@intel.com>,
	"wei.liu2@citrix.com" <wei.liu2@citrix.com>,
	"ian.campbell@citrix.com" <ian.campbell@citrix.com>,
	"stefano.stabellini@eu.citrix.com"
	<stefano.stabellini@eu.citrix.com>, "tim@xen.org" <tim@xen.org>,
	"ian.jackson@eu.citrix.com" <ian.jackson@eu.citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	Yang Z Zhang <yang.z.zhang@intel.com>,
	Tiejun Chen <tiejun.chen@intel.com>
Subject: Re: (v2) Design proposal for RMRR fix
Date: Tue, 13 Jan 2015 16:00:31 +0000	[thread overview]
Message-ID: <54B5411F.8060208@eu.citrix.com> (raw)
In-Reply-To: <54B54C09020000780005472D@mail.emea.novell.com>

On 01/13/2015 03:47 PM, Jan Beulich wrote:
>>>> On 13.01.15 at 14:45, <George.Dunlap@eu.citrix.com> wrote:
>> On Tue, Jan 13, 2015 at 11:03 AM, Tian, Kevin <kevin.tian@intel.com> wrote:
>>>> Well it will have an impact on the overall design of the code; but
>>>> you're right, if RMRRs really can (and will) be anywhere in memory,
>>>> then the domain builder will need to know what RMRRs are going to be
>>>> reserved for this VM and avoid populating those.  If, on the other
>>>> hand, we can make some fairly small assumptions about where there will
>>>> not be any RMRRs, then we can get away with handling everything in
>>>> hvmloader.
>>>
>>> I'm not sure such fairly small assumptions can be made. For example,
>>> host RMRR may include one or several regions in host PCI MMIO
>>> space (say >3G), then hvmloader has to understand such knowledge
>>> to avoid allocating them for guest PCI MMIO.
>>
>> Yes, I'm talking here about Jan's idea of having the domain builder in
>> libxc do the minimal amount of work to get hvmloader to run, and then
>> having hvmloader populate the rest of the address space. So the
>> comparison is:
>>
>> 1. Both libxc and hvmloader know about RMRRs.  libxc uses this
>> information to avoid placing the hvmloader over an RMRR region,
>> hvmloader uses the information to populate the memory map and place
>> the MMIO ranges such that neither overlap with RMRRs.
>>
>> 2. Only hvmloader knows about RMRRs.  libxc places hvmloader in a
>> location in RAM basically guaranteed never to overlap with RMRRs;
>> hvmloader uses the information to populate memory map and place the
>> MMIO ranges such that neither overlap with RMRRs.
>>
>> #2 is only possible if we can find a region of the physical address
>> space almost guaranteed never to overlap with RMRRs.  Otherwise, we
>> may have to fall back to #1.
> 
> hvmloader loads at 0x100000, and I think we can be pretty certain
> that there's not going to be any RMRRs for that space.

Good.

>>>> I'm also not clear what assumptions "he" may be making: you mean, the
>>>> existence of an RMRR in the e820 map shouldn't be taken to mean that
>>>> he has a specific device assigned?  No, indeed, he should not make
>>>> such an assumption. :-)
>>>
>>> I meant 'he' shouldn't make assumption on how many reserved regions
>>> should exist in e820 based on exposed devices. Jan has a concern exposing
>>> more reserved regions in e820 than necessary is not a good thing. I'm
>>> trying to convince him it should be fine. :-)
>>
>> Right -- well there is a level of practicality here: if in fact many
>> operating systems ignore the e820 map and base their ideas on what
>> devices are present, then we would have to try to work around that.
>>
>> But since this is actually done by the OS and not the driver, in the
>> absence of any major OSes that actually behave this way, it seems to
>> me like taking the simpler option of assuming that the guest OS will
>> honor the e820 map should be OK.
> 
> Since your response doesn't seem connected to what Kevin said, I
> think there's some misunderstanding here: The concern Kevin
> mentioned I have is marking more regions than necessary as reserved
> in the E820 map (needlessly reducing or splitting up lowmem).

OK, so you're concerned with reducing fragmentation / maximizing
availability of lowmem.  Yes, that's another reason to try to minimize
the number of RMRRs reported in general.

Another option I was thinking about: Before assigning a device to a
guest, you have to unplug the device and assign it to pci-back (e.g.,
with xl pci-assignable-add).  In addition to something like rmmr=host,
we could add rmrr=assignable, which would add all of the RMRRs of all
devices currently listed as "assignable".  The idea would then be that
you first make all your devices assignable, then just start your guests,
and everything you've made assignable will be able to be assigned.

> 
>>> For [0xe0000, 0xeffff], leave it as a conflict (w/ guest BIOS)
>>
>> And we can't move the guest BIOS in any way?
> 
> No. BIOSes know the address they get put at. The only hope here
> is that conflicts would be only with the transiently loaded init-time
> portion of the BIOS: Typically, the BIOS has a large resident part
> in the F0000-FFFFF range, while SeaBIOS in particular has another
> init-time part living immediately below the resident one, and getting
> discarded once BIOS init was done.

I see, thanks.

 -George

  reply	other threads:[~2015-01-13 16:00 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
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 [this message]
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=54B5411F.8060208@eu.citrix.com \
    --to=george.dunlap@eu.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=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.