qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/pci-host: Fix x86 Host Bridges 64bit PCI hol


From: Marcel Apfelbaum
Subject: Re: [Qemu-devel] [PATCH] hw/pci-host: Fix x86 Host Bridges 64bit PCI hole
Date: Fri, 20 Oct 2017 17:06:18 +0300
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

On 20/10/2017 13:59, Gerd Hoffmann wrote:
On Fri, 2017-10-20 at 11:32 +0200, Laszlo Ersek wrote:
On 10/20/17 08:55, Gerd Hoffmann wrote:
   Hi,

commit message says:

<quote>
      It turns out that some 32 bit windows guests crash
      if 64 bit PCI hole size is >2G.
</quote>

Why this suddenly isn't a problem any more?


I suppose it is, so we need a way to turn it "off".

Or have machine types behave differently, i.e. give q35 a large
64bit
hole and leave pc as-is.

*If* we make it dependent on machine types at all, then please also
make
it versioned for Q35.

We probably need that for live migration compatibility anyway.  If we
add a switch we can add it to both pc and q35 (I think they share most
code so little extra cost), but have different defaults depending on
machine type.

BTW:  Is it safe to just assume 40 bits physical is going to
work?  My
workstation:

model name      : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
address sizes   : 39 bits physical, 48 bits virtual

Does this imply ept is limited 39 bits physical too?

Very good point to raise; "39 bits physical" on your workstation
*does*
imply that EPT is limited exactly the same way. I had run into this
very
problem while working on 64GB+ RAM enablement in OVMF. (Back then my
laptop had: "address sizes : 36 bits physical, 48 bits virtual".)

Ah, right, I remember.  This is why we ended up with 32G window 32G
aligned above highest memory (or reserved) address.  No address above
64G will be used unless you have lots of memory in your virtual machine
(in which case your host very likely supports more than 36 address
lines).

So I guess the options are to play safe and do something simliar on the
qemu side, or go figure how much physical address space is available
and use that (which should also solve the "what do we with >1TB guests"
issue).  The later could cause some interesting live migration issues
though, when migrating between hosts with different physical address
space sizes.

So maybe the pci-hole64-size option isn't that bad after all?  We could
make it default to 2G on pc and 32G on q35 ...


I could live with that, as I previously stated I started that way.
The property is already there, if anyone needs a bigger 64bit PCI
hole, libvirt can set a new value.
Adding Laine to give him the opportunity to object :)

I'll come up with V3 that actually implements the pci-hole64-size,
having *some* 64bit window for PCI hotplug is better than none.

Thanks all for the help!
Marcel

cheers,
   Gerd





reply via email to

[Prev in Thread] Current Thread [Next in Thread]