On Thu, Jul 15, 2021 at 11:39:54PM +0300, Ruben wrote: > Thanks for the response, here's a link to the entire dmesg log: > https://drive.google.com/file/d/1Uau0cgd2ymYGDXNr1mA9X_UdLoMH_Azn/view > > Some entries that might be of interest: ACPI tells us the host bridge windows are: acpi PNP0A08:00: host bridge window [mem 0x000a0000-0x000bffff window] (ignored) acpi PNP0A08:00: host bridge window [mem 0x80000000-0xafffffff window] (ignored) acpi PNP0A08:00: host bridge window [mem 0xc0000000-0xfebfffff window] (ignored) acpi PNP0A08:00: host bridge window [mem 0x800000000-0xfffffffff window] (ignored) The 0xc0000000 window is about 1GB and is below 4GB. The 0x800000000 window looks like 32GB. But "pci=nocrs" means we ignore these windows ... > pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffffff] and instead use this 1TB of address space, from which DRAM is excluded. I think this is basically everything the CPU can address, and I *think* it comes from this in setup_arch(): iomem_resource.end = (1ULL << boot_cpu_data.x86_phys_bits) - 1; But you have 8 GPUs, each of which needs 128GB + 32MB + 16MB, so you need 1TB + 384MB to map them all, and the CPU can't address that much. Since you're running this on qemu, I assume x86_phys_bits is telling us about the capabilities of the CPU qemu is emulating. Maybe there's a way to tell qemu to emulate a CPU with more address bits? Bjorn