Skip to contentSkip to conversation

KVM RAM limitation

DISCUSSION Daniel Bareiro 4 participants 8 messages Feb 3, 2010 – Feb 4, 2010 KVM

lore
Share & tools
lore
#0 lore raw

Hi all!

I'm trying to boot a VM with 2048 MB in a VMHost with Linux 2.6.32.6 and qemu-kvm-0.12.2, but when doing it, I obtain it the following message:

qemu: at most 2047 MB RAM can be simulated.

This happened to me previously if in the VMHost I used kernel that is not x86_64 [1], but it is not the case:

# uname -a
Linux wilson 2.6.32.6-dgb #1 SMP Mon Feb 1 17:10:30 ART 2010 x86_64 GNU/Linux

Which can be the problem?

Thanks in advance for your replies.

Regards,
Daniel

[1] https://help.ubuntu.com/community/KVM/Installation#Use%20a%2064%20bit%20kernel%20if%20possible

Signature · 2 lines
Fingerprint: BFB3 08D6 B4D1 31B2 72B9  29CE 6696 BF1B 14E6 1D37
Powered by Debian GNU/Linux Lenny - Linux user #188.598
#1 lore raw
Quoted 6 lines · Daniel Bareiro

Hi all!

I'm trying to boot a VM with 2048 MB in a VMHost with Linux 2.6.32.6 and qemu-kvm-0.12.2, but when doing it, I obtain it the following message:

qemu: at most 2047 MB RAM can be simulated.

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h | head -n1)

Quoted 19 lines

This happened to me previously if in the VMHost I used kernel that is not x86_64 [1], but it is not the case:

# uname -a
Linux wilson 2.6.32.6-dgb #1 SMP Mon Feb 1 17:10:30 ART 2010 x86_64
GNU/Linux

Which can be the problem?

Thanks in advance for your replies.

Regards,
Daniel

[1]
https://help.ubuntu.com/community/KVM/Installation#Use%20a%2064%20bit%20ke
rnel%20if%20possible

#2 lore raw
Quoted 11 lines · Brian Jackson
Quoted 5 lines

I'm trying to boot a VM with 2048 MB in a VMHost with Linux 2.6.32.6 and qemu-kvm-0.12.2, but when doing it, I obtain it the following message:

qemu: at most 2047 MB RAM can be simulated.

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h | head -n1)

wilson:/usr/local/qemu-kvm/bin# ./qemu-system-x86_64 -h | head -n1
QEMU PC emulator version 0.12.2 (qemu-kvm-0.12.2), Copyright (c) 2003-2008 Fabrice Bellard

The procedure that I used to compile qemu-kvm is the same of always: to download qemu-kvm-0.12.2, to install the packages (Debian) zlib1g-dev and libpci-dev, and to compile of the following way:

# cd qemu-kvm-0.12.2
# ./configure --prefix=/usr/local/qemu-kvm
# make
# make install

Until the moment I never got to use qemu-kvm with VMs of more than 2048 MB. In an installation that I have with KVM-88 and kernel x86_64 I don't have this problem.

Thanks for your reply.

Regards,
Daniel

Signature · 3 lines
Daniel Bareiro - System Administrator
Fingerprint: BFB3 08D6 B4D1 31B2 72B9  29CE 6696 BF1B 14E6 1D37
Powered by Debian GNU/Linux Lenny - Linux user #188.598
#3 lore raw
Quoted 25 lines · Daniel Bareiro
Quoted 4 lines · Brian Jackson
Quoted 4 lines

I'm trying to boot a VM with 2048 MB in a VMHost with Linux 2.6.32.6 and qemu-kvm-0.12.2, but when doing it, I obtain it the following message:

Quoted 9 lines
Quoted 2 lines

qemu: at most 2047 MB RAM can be simulated.

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h | head -n1)

wilson:/usr/local/qemu-kvm/bin# ./qemu-system-x86_64 -h | head -n1
QEMU PC emulator version 0.12.2 (qemu-kvm-0.12.2), Copyright (c) 2003-2008 Fabrice Bellard

The procedure that I used to compile qemu-kvm is the same of always: to download qemu-kvm-0.12.2, to install the packages (Debian) zlib1g-dev and libpci-dev, and to compile of the following way:

Quoted 9 lines
# cd qemu-kvm-0.12.2
# ./configure --prefix=/usr/local/qemu-kvm
# make
# make install

Until the moment I never got to use qemu-kvm with VMs of more than 2048 MB. In an installation that I have with KVM-88 and kernel x86_64 I don't have this problem.

QEMU and KVM only support 2GB of memory on a 32-bit host.

Both need to create a userspace mapping of the guests memory. In a 32-bit environment, you only have enough usable address space in a process to create a 2GB region.

Regards,

Anthony Liguori

Quoted 5 lines

Thanks for your reply.

Regards,
Daniel

#4 lore raw

Hi, Anthony.

Quoted 23 lines · Anthony Liguori
Quoted 14 lines
Quoted 5 lines

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h | head -n1)

wilson:/usr/local/qemu-kvm/bin# ./qemu-system-x86_64 -h | head -n1
QEMU PC emulator version 0.12.2 (qemu-kvm-0.12.2), Copyright (c) 2003-2008 Fabrice Bellard

The procedure that I used to compile qemu-kvm is the same of always:
to download qemu-kvm-0.12.2, to install the packages (Debian) zlib1g-dev and libpci-dev, and to compile of the following way:

Quoted 8 lines
# cd qemu-kvm-0.12.2
# ./configure --prefix=/usr/local/qemu-kvm
# make
# make install

Until the moment I never got to use qemu-kvm with VMs of more than 2048 MB. In an installation that I have with KVM-88 and kernel x86_64 I don't have this problem.

Quoted 5 lines

QEMU and KVM only support 2GB of memory on a 32-bit host.

Both need to create a userspace mapping of the guests memory. In a 32-bit environment, you only have enough usable address space in a process to create a 2GB region.

But, according to what I read in the link [1] that commented, just by to have a x86_64 kernel would have to be sufficient to serve more than 2047 MB of RAM.

Regards,
Daniel

[1] https://help.ubuntu.com/community/KVM/Installation#Use%20a%2064%20bit%20kernel%20if%20possible

Signature · 2 lines
Fingerprint: BFB3 08D6 B4D1 31B2 72B9  29CE 6696 BF1B 14E6 1D37
Powered by Debian GNU/Linux Lenny - Linux user #188.598
#5 lore raw
Quoted 32 lines · Daniel Bareiro

Hi, Anthony.

On Wednesday, 03 February 2010 13:20:12 -0600,

Quoted 27 lines · Anthony Liguori
Quoted 16 lines
Quoted 6 lines

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h

| head -n1)

wilson:/usr/local/qemu-kvm/bin# ./qemu-system-x86_64 -h | head -n1
QEMU PC emulator version 0.12.2 (qemu-kvm-0.12.2), Copyright (c)
2003-2008 Fabrice Bellard

The procedure that I used to compile qemu-kvm is the same of always:
to download qemu-kvm-0.12.2, to install the packages (Debian) zlib1g-dev and libpci-dev, and to compile of the following way:

Quoted 8 lines
# cd qemu-kvm-0.12.2
# ./configure --prefix=/usr/local/qemu-kvm
# make
# make install

Until the moment I never got to use qemu-kvm with VMs of more than 2048 MB. In an installation that I have with KVM-88 and kernel x86_64 I don't have this problem.

QEMU and KVM only support 2GB of memory on a 32-bit host.

Quoted 8 lines
Quoted 3 lines

Both need to create a userspace mapping of the guests memory. In a 32-bit environment, you only have enough usable address space in a process to create a 2GB region.

But, according to what I read in the link [1] that commented, just by to have a x86_64 kernel would have to be sufficient to serve more than 2047 MB of RAM.

The kvm userspace would also have to be compiled as a 64bit binary. Possibly statically compiled somewhere else (if that's even possible) or with a 64bit chroot.

Quoted 6 lines

Regards,
Daniel

[1]
https://help.ubuntu.com/community/KVM/Installation#Use%20a%2064%20bit%20ke
rnel%20if%20possible

#6 lore raw

Hi, Brian.

Quoted 32 lines · Brian Jackson
Quoted 31 lines
Quoted 30 lines · Anthony Liguori
Quoted 16 lines
Quoted 6 lines

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h

| head -n1)

wilson:/usr/local/qemu-kvm/bin# ./qemu-system-x86_64 -h | head -n1
QEMU PC emulator version 0.12.2 (qemu-kvm-0.12.2), Copyright (c)
2003-2008 Fabrice Bellard

The procedure that I used to compile qemu-kvm is the same of always:
to download qemu-kvm-0.12.2, to install the packages (Debian) zlib1g-dev and libpci-dev, and to compile of the following way:

Quoted 8 lines
# cd qemu-kvm-0.12.2
# ./configure --prefix=/usr/local/qemu-kvm
# make
# make install

Until the moment I never got to use qemu-kvm with VMs of more than 2048 MB. In an installation that I have with KVM-88 and kernel x86_64 I don't have this problem.

QEMU and KVM only support 2GB of memory on a 32-bit host.

Both need to create a userspace mapping of the guests memory. In a 32-bit environment, you only have enough usable address space in a process to create a 2GB region.

Quoted 7 lines
Quoted 3 lines

But, according to what I read in the link [1] that commented, just by to have a x86_64 kernel would have to be sufficient to serve more than 2047 MB of RAM.

The kvm userspace would also have to be compiled as a 64bit binary. Possibly statically compiled somewhere else (if that's even possible) or with a 64bit chroot.

Hmmm... and there is some way to compile qemu-kvm as a 64bit binary on a operating system userspace of 32bit?

I tried with ARCH=x86_64 with make but when using this I obtain several messages of the type "cast to/from pointer from/to integer of different size".

Thanks for your reply.

Regards,
Daniel

Signature · 7 lines
Mi frase del día:
An algorithm must be seen to be believed.
		-- D. E. Knuth

Daniel Bareiro - GNU/Linux registered user #188.598
Proudly running Debian GNU/Linux with uptime:
14:02:40 up 31 days, 22:47, 11 users,  load average: 0.00, 0.02, 0.00
#7 lore raw
Quoted 41 lines · Daniel Bareiro

Hi, Brian.

On Wednesday, 03 February 2010 16:44:28 -0600,

Quoted 36 lines · Brian Jackson
Quoted 35 lines
Quoted 25 lines · Anthony Liguori
Quoted 16 lines
Quoted 6 lines

Are you sure you enabled KVM? Are you sure you are using the KVM binary and not some QEMU binary that's sitting around. This is one of those situations where the KVM command you are running might help. Also the same binary you are running's version ($QEMU_BIN -h

| head -n1)

wilson:/usr/local/qemu-kvm/bin# ./qemu-system-x86_64 -h | head -n1
QEMU PC emulator version 0.12.2 (qemu-kvm-0.12.2), Copyright (c)
2003-2008 Fabrice Bellard

The procedure that I used to compile qemu-kvm is the same of always:
to download qemu-kvm-0.12.2, to install the packages (Debian) zlib1g-dev and libpci-dev, and to compile of the following way:

Quoted 8 lines
# cd qemu-kvm-0.12.2
# ./configure --prefix=/usr/local/qemu-kvm
# make
# make install

Until the moment I never got to use qemu-kvm with VMs of more than 2048 MB. In an installation that I have with KVM-88 and kernel x86_64 I don't have this problem.

Quoted 5 lines

QEMU and KVM only support 2GB of memory on a 32-bit host.

Both need to create a userspace mapping of the guests memory. In a 32-bit environment, you only have enough usable address space in a process to create a 2GB region.

But, according to what I read in the link [1] that commented, just by to have a x86_64 kernel would have to be sufficient to serve more than 2047 MB of RAM.

Quoted 6 lines
Quoted 3 lines

The kvm userspace would also have to be compiled as a 64bit binary. Possibly statically compiled somewhere else (if that's even possible) or with a 64bit chroot.

Hmmm... and there is some way to compile qemu-kvm as a 64bit binary on a operating system userspace of 32bit?

I covered two options for doing that in my last email. You either build a static 64bit build on a 64bit host, or you install a 64bit chroot and compile/run from there.

Quoted 9 lines

I tried with ARCH=x86_64 with make but when using this I obtain several messages of the type "cast to/from pointer from/to integer of different size".

Thanks for your reply.

Regards,
Daniel