Re: [RFC PATCH v2 05/21][SeaBIOS] pciinit: Fix pcimem_start value

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

 



Hi,

On Wed, Jul 11, 2012 at 01:56:19PM +0200, Gerd Hoffmann wrote:
> On 07/11/12 12:31, Vasilis Liaskovitis wrote:
> > In order to hotplug memory between RamSize and BUILD_PCIMEM_START, the pci
> > window needs to start at BUILD_PCIMEM_START (0xe0000000).
> > Otherwise, the guest cannot online new dimms at those ranges due to pci_root
> > window conflicts. (workaround for linux guest is booting with pci=nocrs)
> 
> >  static void pci_bios_map_devices(struct pci_bus *busses)
> >  {
> > -    pcimem_start = RamSize;
> > +    pcimem_start = BUILD_PCIMEM_START;
> 
> It isn't that simple.  For the 32bit pci window it will work, but will
> leaves address space unused instead of assigning it to the 32bit pci
> window.  For the 64bit pci window it will not work.
> 
> You have to walk the dimms and figure what the highest used address is,
> for both below-4g and above-4g.  Then fill two variable with it and make
> the pci init code use that instead of RamSize and RamSizeOver4G.

I see. I already have these values values computed in qemu-kvm, so I can pass
them in a paravirt struct, or infer them from the dimm/srat paravirt info that I
already pass to seabios. 

If i understand correctly, we would like the pcimem windows to use the maximum
possible address space (constrained by the exact dimms/ranges which are defined)
instead of leaving unused space.

thanks,

- Vasilis
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux