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: Alex Bennée
Subject: Re: virtio-pci in qemu-system-arm is broken in 8.2
Date: Tue, 09 Jan 2024 15:03:06 +0000
User-agent: mu4e 1.11.27; emacs 29.1

Peter Maydell <peter.maydell@linaro.org> writes:

> On Tue, 9 Jan 2024 at 14:21, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>
>> > On Tue, 9 Jan 2024 at 11:33, Peter Maydell <peter.maydell@linaro.org> 
>> > wrote:
>> >> On Mon, 8 Jan 2024 at 17:38, Michael Tokarev <mjt@tls.msk.ru> wrote:
>> >> > Speaking of config. This is standard debian config, I'm attaching one
>> >> > to this email.  It can be found in the package, eg
>> >> > http://deb.debian.org/debian/pool/main/l/linux/linux-image-6.6.9-armmp_6.6.9-1_armhf.deb
>> >> > in /boot/config-$(uname -r).
>> >>
>> >> It does seem to be a config thing -- on a plain upstream
>> >> v6.6.9 my config works and that debian default one does
>> >> not. Now to try to identify which particular config
>> >> difference is at fault. (It's not the CONFIG_VMSPLIT one,
>> >> I just tried that.)
>> >
>> > 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'
>>
>> Could we expand the "highmem" description in
>> https://www.qemu.org/docs/master/system/arm/virt.html to make it
>> clearer. I'm sure this isn't the first time there have been 32bit
>> difficulties with non-LPAE kernels?
>
> Sure. We could make the highmem property description read:
>
> # Set on/off to enable/disable placing devices and RAM in physical
> # address space above 32 bits. The default is on for machine types
> # later than virt-2.12 when the CPU supports an address space
> # bigger than 32 bits (i.e. 64-bit CPUs, and 32-bit CPUs with the
> # Large Physical Address Extension (LPAE) feature). If you want to
> # boot a 32-bit kernel which does not have CONFIG_LPAE enabled on
> # a CPU type which implements LPAE, you will need to manually set
> # this to 'off'; otherwise some devices, such as the PCI controller,
> # will not be accessible.
>
> How's that ?

LGTM and even if the users don't read it hopefully the LLMs will ;-)

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro



reply via email to

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