[Top][All Lists]

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

Re: qemu 6.1.0 - i386 <= 2GB?

From: Frans de Boer
Subject: Re: qemu 6.1.0 - i386 <= 2GB?
Date: Mon, 29 Nov 2021 13:59:38 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2

On 29/11/2021 10:13, Frans de Boer wrote:
On 29/11/2021 09:36, Narcis Garcia wrote:
El 29/11/21 a les 9:33, Frans de Boer ha escrit:
On 29/11/2021 08:46, Narcis Garcia wrote:
El 28/11/21 a les 19:42, Frans de Boer ha escrit:
On 24/11/2021 09:42, Narcis Garcia wrote:
El 23/11/21 a les 14:33, Frans de Boer ha escrit:
On 23/11/2021 11:44, Narcis Garcia wrote:
El 23/11/21 a les 10:03, Frans de Boer ha escrit:
On 23/11/2021 09:27, Narcis Garcia wrote:
Some 32-bit system can't handle more than 512 MiB of RAM, and some 32-bit systems can handle up to 64 GiB.

This is not related to memory assigned by Qemu to VE.

Narcis Garcia

El 22/11/21 a les 18:38, Frans de Boer ha escrit:

OK, 32-bit systems can't handle more than 4GB memory. So, I specify '-m 4096' and still get only 2GB. Is this (very) old bug still not resolved or is it a feature now?

Regards, Frans.
In theory an 32-bit processor can handle up-to 4GB of physical memory. However, due to limitations of some chip sets, the maximum amount of memory was often 512 MB or 1 GB. At that time the chip sets where lagging behind the processor capabilities.
With newer chip sets it became practically possible to address 4 GB and when using PAE, even beyond that. Although in case of the latter, the address space for a single process was always limited to 4 GB.

So, whatever way you see it, the 2 GB limit imposed by QEMU seems rather arbitrary.

--- Frans.

Before talking about 64 GiB limit, I just tried ubuntu-mate-18.04.1-desktop-i386 in a Qemu 5.2.0 VM
50 GiB assigned and guest OS detects and uses it.

Then, what type of CPU did you specify?

I've tried now with these four modes:
qemu-system-x86_64 -m 51200 -cpu host [intel core i5]
qemu-system-x86_64 -m 51200 -cpu pentium2
qemu-system-i386 -m 51200 -cpu host
qemu-system-i386 -m 51200 -cpu pentium2
qemu-system-i386 -m 51200 -cpu kvm32

each of them detect & use 50GiB of RAM.
Other parameters of interest:
-vga qxl -display gtk -enable-kvm -boot d -drive file=ubuntu-mate-18.04.1-desktop-i386.iso,media=cdrom,index=0

* If I try with booting 64-bit OS (ubuntu-18.04-desktop-amd64) then I get Linux message "This kernel requires an x86-64 CPU, but only detected an i686 CPU." and it does not boot.
* If I try with "-cpu pentium" then I get Linux message "This kernel requires the following features not present on the CPU: pae cmov" and it does not boot.

ARE YOU SURE you're using a modern operating system?

Okay, I needed some time before I could continue.

I am building my own version of a linux system, but use OpenSuse TW (64-bit) as base. Updated almost every second day.
Now, when I either use ´-cpu pentium´ or ´-cpu kvm32´, I never can allocate more than 2 GB, no matter the -m size.
I do see that virtual memory is being increased, but the available memory for allocation is never more than 2GB.

So, yes the requested memory is allocated - albeit virtual -, but the excess above 2GB is never used.

--- Frans.

Are you sure you're using Linux [64-bit] kernel?
If not (32-bit), sure you're using PAE enabled Linux kernel.

Yes, I am sure that my system is using a 64-bit version of Tumbleweed.
Of course, the client in the VM is 32-bit.
A 64-bit client (windows/linux) has no problem.

I will download another 32-bit iso and check if that makes a difference.

--- Frans.

Please, copy here the complete syntax of your VM launch, and try with a guest like the one I've tried with PAE support (ubuntu 18.04 i386)
I just changed the '-machine type=q35,accel=kvm' into '-machine type=pc' and now I have 3GB available. Probably any PAE setting in the kernel is not set yet.

Strange, since q35 systems should be able to address upto at least 8GB and support upto 36-bit address space using PAE.

It seems that the culprit is the machine setting in combination with not using PAE. I check this further today.

-- Frans

PAE was indeed not enabled because high memory was still on 4GB, hence the default kernel limit of 3GB.
Now, the specified amount of memory is allocated and even with -machine type=q35, I can allocate almost 3GB. I can not allocate more memory for a single process due to the 3GB/1GB limit as imposed by the kernel.

--- Frans.

reply via email to

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