qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <Ian.Campbell@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Tim Deegan <tim@xen.org>, Yongjie Ren <yongjie.ren@intel.com>,
	yanqiangjun@huawei.com, Keir Fraser <keir@xen.org>,
	hanweidong@huawei.com,
	George Dunlap <George.Dunlap@eu.citrix.com>,
	Xudong Hao <xudong.hao@intel.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	luonengjun@huawei.com, qemu-devel@nongnu.org,
	wangzhenguo@huawei.com, xiaowei.yang@huawei.com,
	arei.gonglei@huawei.com, Paolo Bonzini <pbonzini@redhat.com>,
	YongweiX Xu <yongweix.xu@intel.com>,
	SongtaoX Liu <songtaox.liu@intel.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [Qemu-devel] [Xen-devel] [BUG 1747]Guest could't find bootable device with memory more than 3600M
Date: Wed, 12 Jun 2013 12:23:21 +0100	[thread overview]
Message-ID: <1371036201.24512.413.camel@zakaz.uk.xensource.com> (raw)
In-Reply-To: <51B8646702000078000DD7EA@nat28.tlf.novell.com>

On Wed, 2013-06-12 at 11:07 +0100, Jan Beulich wrote:
> >>> On 12.06.13 at 11:22, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> > On Wed, 2013-06-12 at 10:02 +0100, Jan Beulich wrote:
> >> >>> On 12.06.13 at 10:31, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> >> > On Wed, 2013-06-12 at 08:25 +0100, Jan Beulich wrote:
> >> >> >>> On 11.06.13 at 19:26, Stefano Stabellini <stefano.stabellini@eu.citrix.com> 
> >> > wrote:
> >> >> > I went through the code that maps the PCI MMIO regions in hvmloader
> >> >> > (tools/firmware/hvmloader/pci.c:pci_setup) and it looks like it already
> >> >> > maps the PCI region to high memory if the PCI bar is 64-bit and the MMIO
> >> >> > region is larger than 512MB.
> >> >> > 
> >> >> > Maybe we could just relax this condition and map the device memory to
> >> >> > high memory no matter the size of the MMIO region if the PCI bar is
> >> >> > 64-bit?
> >> >> 
> >> >> I can only recommend not to: For one, guests not using PAE or
> >> >> PSE-36 can't map such space at all (and older OSes may not
> >> >> properly deal with 64-bit BARs at all). And then one would generally
> >> >> expect this allocation to be done top down (to minimize risk of
> >> >> running into RAM), and doing so is going to present further risks of
> >> >> incompatibilities with guest OSes (Linux for example learned only in
> >> >> 2.6.36 that PFNs in ioremap() can exceed 32 bits, but even in
> >> >> 3.10-rc5 ioremap_pte_range(), while using "u64 pfn", passes the
> >> >> PFN to pfn_pte(), the respective parameter of which is
> >> >> "unsigned long").
> >> >> 
> >> >> I think this ought to be done in an iterative process - if all MMIO
> >> >> regions together don't fit below 4G, the biggest one should be
> >> >> moved up beyond 4G first, followed by the next to biggest one
> >> >> etc.
> >> >> 
> >> >> And, just like many BIOSes have, there ought to be a guest
> >> >> (config) controlled option to shrink the RAM portion below 4G
> >> >> allowing more MMIO blocks to fit.
> >> >> 
> >> >> Finally we shouldn't forget the option of not doing any assignment
> >> >> at all in the BIOS, allowing/forcing the OS to use suitable address
> >> >> ranges. Of course any OS is permitted to re-assign resources, but
> >> >> I think they will frequently prefer to avoid re-assignment if already
> >> >> done by the BIOS.
> >> > 
> >> > Is "bios=assign-busses" on the guest command line suitable as a
> >> > workaround then? Or possibly "bios=realloc"
> >> 
> >> Which command line? Getting passed to hvmloader?
> > 
> > I meant the guest kernel command line.
> 
> As there's no accessible guest kernel command for HVM guests,
> did you mean to require the guest admin to put something on the
> command line manually?

Yes, as a workaround for this shortcoming of 4.3, not as a long term
solution. It's only people using passthrough with certain devices with
large BARs who will ever trip over this, right?

> And then - this might cover Linux, but what about other OSes,
> namely Windows?

True, I'm not sure if/how this can be done.

The only reference I could find was at
http://windows.microsoft.com/en-id/windows7/using-system-configuration
which says under "Advanced boot options":
        PCI Lock. Prevents Windows from reallocating I/O and IRQ
        resources on the PCI bus. The I/O and memory resources set by
        the BIOS are preserved.

Which seems to suggest the default is to reallocate, but I don't know.

>  Oh, and for Linux you confused me by using
> "bios=" instead of "pci="... And "pci=realloc" only exists as of 3.0.

Oops, sorry.

Ian.

  reply	other threads:[~2013-06-12 11:23 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <EE92950F97EE42469CA4F508D4691F5E016FAD15@SHSMSX104.ccr.corp.intel.com>
     [not found] ` <alpine.DEB.2.02.1306071246270.4589@kaball.uk.xensource.com>
     [not found]   ` <51B1FF50.90406@eu.citrix.com>
     [not found]     ` <alpine.DEB.2.02.1306071655060.4589@kaball.uk.xensource.com>
     [not found]       ` <403610A45A2B5242BD291EDAE8B37D3010E56731@SHSMSX102.ccr.corp.intel.com>
     [not found]         ` <CAFLBxZZfH8im-hTrma29Ag7CUR1HZEm=4b7ft_h5weukGL1BzQ@mail.gmail.com>
2013-06-11 17:26           ` [Qemu-devel] [Xen-devel] [BUG 1747]Guest could't find bootable device with memory more than 3600M Stefano Stabellini
2013-06-12  7:25             ` Jan Beulich
2013-06-12  8:31               ` Ian Campbell
2013-06-12  9:02                 ` Jan Beulich
2013-06-12  9:22                   ` Ian Campbell
2013-06-12 10:07                     ` Jan Beulich
2013-06-12 11:23                       ` Ian Campbell [this message]
2013-06-12 11:56                         ` Jan Beulich
2013-06-12 11:59                           ` Ian Campbell
2013-06-12 10:05               ` George Dunlap
2013-06-12 10:11                 ` Jan Beulich
2013-06-12 10:15                   ` George Dunlap
2013-06-12 13:23                 ` Paolo Bonzini
2013-06-12 13:49                   ` Jan Beulich
2013-06-12 14:02                     ` Paolo Bonzini
2013-06-12 14:19                       ` Jan Beulich
2013-06-12 15:25                         ` George Dunlap
2013-06-12 20:13                           ` Paolo Bonzini
2013-06-13 13:44                 ` Stefano Stabellini
2013-06-13 13:54                   ` George Dunlap
2013-06-13 14:50                     ` Stefano Stabellini
2013-06-13 15:06                       ` Jan Beulich
2013-06-13 15:29                       ` George Dunlap
2013-06-13 16:13                         ` Stefano Stabellini
2013-06-13 15:34                       ` Ian Campbell
2013-06-13 16:55                         ` Stefano Stabellini
2013-06-13 17:22                           ` Ian Campbell
2013-06-14 10:53                             ` George Dunlap
2013-06-14 11:34                               ` Ian Campbell
2013-06-14 14:14                                 ` George Dunlap
2013-06-14 14:36                                   ` George Dunlap
2013-06-13 14:54                     ` Paolo Bonzini
2013-06-13 15:16                     ` Ian Campbell
2013-06-13 15:30                       ` George Dunlap
2013-06-13 15:36                         ` Ian Campbell
2013-06-13 15:40                           ` George Dunlap
2013-06-13 15:42                             ` Ian Campbell
2013-06-13 15:40                       ` Stefano Stabellini

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=1371036201.24512.413.camel@zakaz.uk.xensource.com \
    --to=ian.campbell@citrix.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=arei.gonglei@huawei.com \
    --cc=hanweidong@huawei.com \
    --cc=keir@xen.org \
    --cc=luonengjun@huawei.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=songtaox.liu@intel.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tim@xen.org \
    --cc=wangzhenguo@huawei.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=xiaowei.yang@huawei.com \
    --cc=xudong.hao@intel.com \
    --cc=yanqiangjun@huawei.com \
    --cc=yongjie.ren@intel.com \
    --cc=yongweix.xu@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).