VirtualBox

Ticket #8643 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

memory corruption in linux guest => Fixed in SVN

Reported by: ralfw Owned by:
Priority: major 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

VBox.log Download (67.1 KB) - added by ralfw 3 years ago.
Gentoo Guest logfile

Change History

Changed 3 years ago by ralfw

Gentoo Guest logfile

comment:1 Changed 3 years ago by frank

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

comment:2 Changed 3 years ago by frank

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

comment:3 Changed 3 years ago by frank

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 Changed 3 years ago by frank

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 Changed 3 years ago by ralfw

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 Changed 3 years ago by ralfw

oops.. i meant

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

comment:7 Changed 3 years ago by frank

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 Changed 3 years ago by ralfw

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 Changed 3 years ago by frank

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 Changed 3 years ago by ralfw

have you tried switching consoles while memtester is running ?

comment:11 Changed 3 years ago by frank

Yes, does not make any difference here.

comment:12 Changed 3 years ago by ralfw

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 Changed 3 years ago by frank

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

comment:14 Changed 3 years ago by frank

  • Summary changed from memory corruption in linux guest to memory corruption in linux guest => Fixed in SVN

comment:15 Changed 3 years ago by ralfw

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

comment:16 Changed 3 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

The fix is contained in VBox 4.0.8.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use