Re: [Xen-devel] ce56a86e2a ("x86/mm: Limit mmap() of /dev/mem to valid physical addresses"): kernel BUG at arch/x86/mm/physaddr.c:79!

From: Jan Beulich
Date: Fri Oct 27 2017 - 03:08:13 EST


>>> On 26.10.17 at 21:29, <linux@xxxxxxxxxxxxxx> wrote:
> On 26/10/17 19:49, Craig Bergstrom wrote:
>> Sander, thanks for the details, they've been very useful.
>>
>> I suspect that your host system's mem=2048M parameter is causing the
>> problem. Any chance you can confirm by removing the parameter and
>> running the guest code path?
>
> I removed it, but kept the hypervisor limiting dom0 memory to 2046M intact
> (in grub using the xen bootcmd:
> "multiboot /xen-4.10.gz dom0_mem=2048M,max:2048M ....."
>
> Unfortunately that doesn't change anything, the guest still fails to start
> with the same errors.
>
>> More specifically, since you're telling the kernel that it's high
>> memory address is at 2048M and your device is at 0xfe1fe000 (~4G), the
>> new mmap() limits are preventing you from mapping addresses that are
>> explicitly disallowed by the parameter.
>>
>
> Which would probably mean the current patch prohibits hard limiting the dom0
> memory to a certain value (below 4G)
> at least in combination with PCI-passthrough. So the only thing left would
> be to have no hard memory restriction on dom0
> and rely on auto-ballooning, but I'm not a great fan of that.

Plus - how would things work with any RAM size if the PCI BAR was
a 64-bit one, pointing somewhere high up beyond 4Gb?

Jan