VirtualBox

Ticket #5385 (closed defect: fixed)

Opened 4 years ago

Last modified 2 years ago

Problems with more than one CPU under Windows 2003 64 Bit -> retry with 3.1.4

Reported by: Samuel13 Owned by:
Priority: major Component: guest smp
Version: VirtualBox 3.1.6 Keywords:
Cc: Guest type: Windows
Host type: Windows

Description

In the virtual machine (Windows XP SP3 32 Bit) I build a .NET solution. With more than one core I get strange internal compiler errors or sometimes a bluescreen after some minutes of building. With the same configuration but only one core the system works fine for hours. Also the same virtual disk image works fine when running with multiple cores on a Windows XP 32 Bit host.

My host configuration: Microsoft Windows Server 2003 R2, Standard x64 Edition Service Pack 2 4x Dual-Core AMD Opteron(tm) Processor 2218, 2.6 GHz, 4 GB RAM

Session log file, box configuration and minidump from the guest OS attached.

Attachments

WinXP-2009-11-04-09-40-42.log Download (34.6 KB) - added by Samuel13 4 years ago.
Virtual Box log file
WinXP.xml Download (8.3 KB) - added by Samuel13 4 years ago.
Virtual box configuration
Mini110409-01.dmp.txt Download (88.0 KB) - added by Samuel13 4 years ago.
Minidump from the guest OS
WinXP2CoresSATA-2010-04-14-16-02-39.log Download (39.4 KB) - added by Samuel13 4 years ago.
VBoxProfiling18102010.zip Download (63.7 KB) - added by Samuel13 4 years ago.

Change History

Changed 4 years ago by Samuel13

Virtual Box log file

Changed 4 years ago by Samuel13

Virtual box configuration

Changed 4 years ago by Samuel13

Minidump from the guest OS

comment:1 Changed 4 years ago by Technologov

Since Windows XP x64 and Windows Server 2003 x64 are based on the same kernel (NT 5.2), this bug may be related bug #4480

-Technologov

comment:2 Changed 4 years ago by Smeikkie

The problem with multiple cpu's occur for what I have find out on almost every operating system of microsoft. Is this something that can be fixed?

comment:3 Changed 4 years ago by frank

  • Component changed from other to guest smp

comment:4 Changed 4 years ago by Samuel13

Also under Virtual Box 3.0.12

comment:5 Changed 4 years ago by Samuel13

also under Virtual Box 3.1.0

comment:6 Changed 4 years ago by gernst48

Also not working under Windows 7 64 Bit with Virtual Box 3.0.12 and 3.1.0. If I use more then one processor for wathever guest it is not properly working. The guest stops suddently and takes a lot of host CPU time or some strange behavior is observed in the guest. For me it seems the 64 bit multiprocessor emulation is not usable. As far as I have this tested it is working for 32 bit guests.

comment:7 Changed 4 years ago by Samuel13

Also under 3.1.2

comment:8 Changed 4 years ago by sandervl73

  • Version changed from VirtualBox 3.0.10 to VirtualBox 3.1.2
  • Summary changed from Problems with more than one CPU under Windows 2003 64 Bit to Problems with more than one CPU under Windows 2003 64 Bit -> retry with 3.1.4

Retry with 3.1.4. That version will include an important stability fix for SMP guests.

comment:9 Changed 4 years ago by sandervl73

Please check if 3.1.4 beta 1 solves the problem:  http://forums.virtualbox.org/viewtopic.php?f=15&t=27300

comment:10 Changed 4 years ago by Samuel13

Does not crash anymore with 3.1.4 BETA 1, running stable for more than 24 hours with 2 cores. But there is still a strange thing: Performance with 2 cores is less than with just one core! The same task takes factor 1.5 longer with two cores. On real machines the same task is much faster with multiple cores.

comment:11 Changed 4 years ago by sandervl73

Can you be more specific?

comment:12 Changed 4 years ago by Samuel13

I use this virtual machine to build a .NET application. The build takes about 1h 15min in average with one core configured. With two cores configured (other settings exactly the same) the same build process takes about 1h45min. On real machines the build is much faster when more cores are available than with only one core. I also experimented with the setting Nested Paging, but no difference. Let me know if you need more details...

comment:13 Changed 4 years ago by Samuel13

Tested with 3.1.6, performance with two cores is still less than with one core. After some performance tests I found out that disk performance is divided by factor 2 when switching from one core to two cores... see  http://forums.virtualbox.org/viewtopic.php?f=2&t=29899

comment:14 Changed 4 years ago by Technologov

I suggest trying "Passmark Performance Test". This great benchmark can show CPU UP/SMP, RAM I/O, and Disk I/O. Unfortunately it is for Windows guests only.

-Technologov, 14.4.2010.

comment:15 Changed 4 years ago by Samuel13

I was using this tool for my performance tests. The resulting benchmark showed this behaviour I mentioned in my previous post.

comment:16 Changed 4 years ago by sandervl73

How do you compare to one core? Using the same VM with one CPU or another VM which was never installed using the smp windows kernel?

Did you install the guest additions?

comment:17 Changed 4 years ago by sandervl73

  • Version changed from VirtualBox 3.1.2 to VirtualBox 3.1.6

Please attach a new log of of the SMP VM with 3.1.6 too.

comment:18 Changed 4 years ago by Samuel13

I did the performance tests in the same VM: I shutdown the VM and changed the number of cores...

Guest additions 3.1.6 were already installed before doing the tests.

Log file from current session with 2 cores and SATA controller is attached.

Changed 4 years ago by Samuel13

comment:19 Changed 4 years ago by sandervl73

Here I get: (win7 64-bit host, core i7 3.2 ghz; nested paging disabled)

  • 1021 (Win XP 32 bits; 1 CPU)
  • 1421 (Win XP 32 bits; 2 CPUs)

I assume this is related to the hardware optimization Intel introduced for VT-x (in selected CPU models) for speeding up TPR APIC accesses for 32 bits Windows (2k & xp) guests.

We partly compensate with this in the guest additions, but it's not optimal. AMD has no such hardware solution.

If you can, you should update your guest to 32-bit Vista or Windows 7 or switch to any 64 bits Windows version.

comment:20 Changed 4 years ago by Technologov

sandervl73: KVM has a similar TPR software optimization in the hypervisor, without the need to install guest additions.

Maybe it's worth checking...

-Technologov

comment:21 Changed 4 years ago by sandervl73

The guest additions provide such a software optimization already. Without it you'd get 100% idle load.

comment:22 Changed 4 years ago by Samuel13

I'm not sure which passmark benchmark values you posted? The CPU or disk results?

For CPU I got

  • 460 (1 CPU)
  • 858 (2 CPU)

but for disk I got

  • 822 (1 CPU / IDE), 529 (1 CPU / SATA)
  • 556 (2 CPU / IDE), 391 (2 CPU / SATA)

KVM is not a choice because it runs only on Linux hosts, isnt' it?

It seems that other users have this problem too, see  http://forums.virtualbox.org/viewtopic.php?f=7&t=26611

comment:23 Changed 4 years ago by Technologov

Samuel13: yes, on Linux hosts only. But I told this to Sander, because some of it's code or ideas may be useful for VirtualBox too...

comment:24 Changed 4 years ago by sandervl73

It's the overall score. Disk scores were pretty much identical. (IDE)

comment:25 Changed 4 years ago by Samuel13

Ok I see, my overall scores are not identical:

  • 1000 (1 CPU)
  • 600 (2 CPU)

What are the chances that this can be fixed? Or do I have to switch the guest OS (are you sure that this works in Vista or Windows 7)?

comment:26 Changed 4 years ago by sandervl73

Individual scores:

  • CPU SMP: 2260 vs UNI: 978
  • DISK SMP: 1527 vs UNI: 1530
  • 2D SMP: 819 vs UNI: 723

I'll try it on an AMD machine too.

comment:27 Changed 4 years ago by sandervl73

AMD (2x Opteron 2427; Vista 64):

  • CPU SMP: 1103 vs UNI: 588
  • DISK SMP: 567 vs UNI: 598
  • 2D SMP: 584 vs UNI: 656

comment:28 Changed 4 years ago by sandervl73

In other words: I can't reproduce your observations.

Note that when you use snapshots the disk benchmark will be seriously affected if run after restoring a snapshot. (new diff image, so writes expand the disk image, which is slow)

comment:29 Changed 4 years ago by Samuel13

Did you try it with Windows XP 32 bit on the AMD system? In meantime I tested with a Windows 7 64 bit guest and there disk performance was about the same when running with two or one core...

I'm aware of the behaviour with snapshots, but should not affect disk reading tests.

What else can I do to help you to reproduce this behaviour?

comment:30 Changed 4 years ago by sandervl73

Yes, with Win XP 32 bit on an Opteron system. Both my tests were with 512 MB guest ram. Haven't tried with 2 GB.

comment:31 Changed 4 years ago by sandervl73

My XP isn't up-to-date though. SP3 might make a difference.

comment:32 Changed 4 years ago by Samuel13

Any news?

comment:33 Changed 4 years ago by Samuel13

Today I did some more testing with two cores: When I disable I/O APIC the disk performance is much better (passmark benchmark result):

  • 733 (2 CPU, IDE, No I/O APIC)
  • 556 (2 CPU, IDE, I/O APIC)
  • 822 (1 CPU, IDE, I/O APIC)

comment:34 Changed 4 years ago by Samuel13

I missed that the I/O APIC option gets enabled automatically when using more than one core, so my last comment is wrong... But the disk performance increased a little bit (don't know why) but in general still slower with two cores, I measured this also with my build in Visual Studio...

comment:35 Changed 4 years ago by sandervl73

I could give you access to a profile build that will add more statistics to the VBox log file. That's the only way to get more information.

comment:36 Changed 4 years ago by Samuel13

Yes please

comment:37 Changed 4 years ago by sandervl73

You can download the profile build  here.

Best is to start the VM until you are are about to start your test. Take a snapshot, close the VM, then restart it and start your test. Please attach the VBox.log and log file created in the directory where you start the VM (date-time.log) after running the test for a few minutes and closing the VM again.

Changed 4 years ago by Samuel13

comment:38 Changed 4 years ago by Samuel13

Thanks for the binaries and instructions. The log files are attached (VBoxProfiling18102010.zip), did a test with 1 CPU and another one with 2 CPUs

Executed the following steps:

  • Shutdown VM
  • Uninstalled Virtual Box 3.2.10
  • Installed Test Build
  • Took Snapshot
  • Started VM
  • Executed a small part of my buid process, running time = 8 min 08 sec
  • Shutdown VM
  • Set number of CPUs to 2 (did not change any other VM settings)
  • Started VM
  • Executed same small part of my buid process, running time = 8 min 42 sec
  • Shutdown VM
  • Uninstalled Profile build
  • Installed version 3.2.10 again
  • Deleted snapshot and restarted VMs


Remark: Did not reinstall the guest additions after installing the profile build

comment:39 Changed 2 years ago by frank

Still relevant with VBox 4.1.6?

comment:40 Changed 2 years ago by frank

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

No response, closing.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use