VirtualBox

Opened 13 years ago

Closed 13 years ago

#8643 closed defect (fixed)

memory corruption in linux guest => Fixed in SVN

Reported by: ralf w Owned by:
Component: other Version: VirtualBox 4.0.4
Keywords: Cc:
Guest type: Linux Host type: Windows

Description

When running 64bit linux guests with more than 2g of ram on a windows vista or windows 7 host the memory of the guest is corrupted sometimes.

I can check the corruption with the "memtester" tool from Charles Cazabon ( the two guest systems i tested, Gentoo and Ubuntu 10.10, both have packages for this ) and trigger it by switching terminals in gentoo from the framebuffer console ( alt-f2, alt-f1, memory corrupted ) or just let the memtester program run in ubuntu and wait a for some time. Note: memtester has to test almost all available memory.

The corruption always happens at an offset of 0x458 from a page start with a 64bit value of 0x100500000 being somewhow written to the memory address.

This happens with and without guest additions and on the amd-v and intel vt-x platforms i have access to.

I'll attach the Vbox.log of the gentoo guest.

Attachments (1)

VBox.log (67.1 KB ) - added by ralf w 13 years ago.
Gentoo Guest logfile

Download all attachments as: .zip

Change History (17)

by ralf w, 13 years ago

Attachment: VBox.log added

Gentoo Guest logfile

comment:1 by Frank Mehnert, 13 years ago

I assume the actual page address changes. Is there some pattern?

comment:2 by Frank Mehnert, 13 years ago

Oh, and how did you start memtester (which parameters)?

comment:3 by Frank Mehnert, 13 years ago

Ok, I was able to reproduce this problem. Please check if disabling large pages (VBoxManage modifyvm VM_NAME --largepages off) solves your problem.

comment:4 by Frank Mehnert, 13 years ago

Oh, I just saw that nested paging is disabled for this VM, so large pages are disabled as well. How does it work if you enable nested paging (bug disable large pages)?

comment:5 by ralf w, 13 years ago

the problem still exists with

00:00:00.580 [/HWVirtExt/] (level 1)
00:00:00.580   64bitEnabled       <integer> = 0x0000000000000001 (1)
00:00:00.580   EnableLargePages   <integer> = 0x0000000000000000 (0)
00:00:00.580   EnableNestedPaging <integer> = 0x0000000000000001 (1)
00:00:00.580   EnableVPID         <integer> = 0x0000000000000001 (1)
00:00:00.580   Enabled            <integer> = 0x0000000000000001 (1)
00:00:00.580   Exclusive          <integer> = 0x0000000000000000 (0)

comment:6 by ralf w, 13 years ago

oops.. i meant

64bitEnabled       1
EnableLargePages   0
EnableNestedPaging 1
EnableVPID         1
Enabled            1
Exclusive          0

comment:7 by Frank Mehnert, 13 years ago

I've tested a newer build and it seems that the issue does not show up anymore. Could you check if this build makes any difference for you?

comment:8 by ralf w, 13 years ago

the 4.0.5 build makes no difference.

im testing with a vm that has 2200mb ram set and call memtester with 2050 as parameter. even then sometimes the faulty address is not included in the tested range so one has to start memtester multiple times ( or reboot the guest ) to shuffle memory around to make sure almost all memory is tested.

the guests physical memory address where the the corruption occurs is constant once linux is booted up so maybe this helps. for the whole 2200 mb ram i dedicated to the vm its then only this one 64bit guest physical memory location that gets somehow overwritten.

comment:9 by Frank Mehnert, 13 years ago

Thanks for testing. Currently searching for a way to trigger this problem more reliably because so far I saw it only once in several runs.

comment:10 by ralf w, 13 years ago

have you tried switching consoles while memtester is running ?

comment:11 by Frank Mehnert, 13 years ago

Yes, does not make any difference here.

comment:12 by ralf w, 13 years ago

i just tested on a machine with 8gb ram and the problem does not seem to occur ( maybe it does but i cant test it ) when the vm has more than 3,5GB or so dedicated ram but everything between 2100mb and 3500mb shows memory corruption for me on different machines.

comment:13 by Frank Mehnert, 13 years ago

I think we found and fixed this issue. Please download and install this build.

comment:14 by Frank Mehnert, 13 years ago

Summary: memory corruption in linux guestmemory corruption in linux guest => Fixed in SVN

comment:15 by ralf w, 13 years ago

yes the new build fixes the issue for me. thank you.

comment:16 by Frank Mehnert, 13 years ago

Resolution: fixed
Status: newclosed

The fix is contained in VBox 4.0.8.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use