qemu-devel
[Top][All Lists]
Advanced

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

Re: virtio-pci in qemu-system-arm is broken in 8.2


From: Michael Tokarev
Subject: Re: virtio-pci in qemu-system-arm is broken in 8.2
Date: Tue, 9 Jan 2024 19:24:45 +0300
User-agent: Mozilla Thunderbird

09.01.2024 16:52, Peter Maydell:
..
Oh, your kernel isn't an LPAE one (i.e. CONFIG_LPAE is not
set). That will obviously never be able to access registers
above the 4GB mark (though the kernel's error message in this
situation is a bit unhelpful and could perhaps be improved).
If I set CONFIG_LPAE on the non-working config it starts working.

I think then the answer is:
  * if you want to use the (default) highmem setup, use an LPAE kernel
  * if you want to use a non-LPAE kernel, tell QEMU to avoid
    highmem using '-machine virt,highmem=off'

It was just a bug that we were accidentally disabling highmem
for the 32-bit 'max' CPU before b8f7959f28c4f3.

Wow wow wow.  So it's a pebkac bug, not qemu bug.. :)
I didn't even know about LPAE before this email, and knew very
little about arm stuff too.

Thank you very much for your work and time!

The diagnostics here is definitely.. "interesting", so to say, it's
very "obvious" what the problem is.. from the kernel messages :)

And the author(s) of the tool used in debian to run arm guest (which
triggered this issue with qemu 8.2) didn't know this thing either,
obviously.  Also, it seems to be a little-known fact that qemu has
highmem enabled for 32bit arm by default and that one - unlike e.g
i386 - actually breaks system (with pci bus being unaccessible),
while on i386 the only outcome is not all memory is available.
That feels like unfortunate decision to enable highmem by default
on arm in qemu 2.12.

The linux-image-6.6.9-armmp-lpae_6.6.9-1_armhf.deb kernel
will probably work (though I haven't tested it).

Yes, it works.  Also -machine virt,highmem=off works.  There's
no bug per se.


Thank you for all the findings, Peter!  Much appreciated!

/mjt




reply via email to

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