38

What are the advantages of checking the "Enable IO APIC" option in VirtualBox?

While I can't find any information on advantages when I google it, two disadvantages are clear. First, it can break older Windows VMs if it is disabled after installation. Second, it reduces VM performance. Yet, I noticed that it is enabled by default when installing Ubuntu 64bit.

Abtin Forouzandeh
  • 1,279
  • 3
  • 12
  • 13

6 Answers6

33

Here is the quote from VirtualBox documentation:

Enable I/O APIC

Advanced Programmable Interrupt Controllers (APICs) are a newer x86 hardware feature that have replaced old-style Programmable Interrupt Controllers (PICs) in recent years. With an I/O APIC, operating systems can use more than 16 interrupt requests (IRQs) and therefore avoid IRQ sharing for improved reliability.

Note: Enabling the I/O APIC is required for 64-bit guest operating systems, especially Windows Vista; it is also required if you want to use more than one virtual CPU in a virtual machine.

However, software support for I/O APICs has been unreliable with some operating systems other than Windows. Also, the use of an I/O APIC slightly increases the overhead of virtualization and therefore slows down the guest OS a little.

Warning: All Windows operating systems starting with Windows 2000 install different kernels depending on whether an I/O APIC is available. As with ACPI, the I/O APIC therefore must not be turned off after installation of a Windows guest OS. Turning it on after installation will have no effect however.

In addition, you can turn off the Advanced Configuration and Power Interface (ACPI) which VirtualBox presents to the guest operating system by default. ACPI is the current industry standard to allow operating systems to recognize hardware, configure motherboards and other devices and manage power. As all modern PCs contain this feature and Windows and Linux have been supporting it for years, it is also enabled by default in VirtualBox. It can be turned off on the command line; e see the section called “VBoxManage modifyvm”.

Anthony Mastrean
  • 441
  • 1
  • 6
  • 18
Goyuix
  • 3,164
  • 5
  • 28
  • 37
10

You might need it when migrating a physical machine to a virtual machine, if the physical machine has an IO APIC. Most modern machines do.

A standard installation on a modern physical PC or VMware will usually result in Halaacpi.dll being chosen as most systems nowadays have an IO APIC and VMware chose to virtualize it by default (VirtualBox disables the IO APIC because it is more expensive to virtualize than a standard PIC).

http://www.virtualbox.org/wiki/Migrate_Windows

Nic
  • 13,025
  • 16
  • 59
  • 102
  • 2
    Another advantage is that it allows you allocate more than one virtual processor to your guest VM. – Goyuix Dec 07 '09 at 21:25
4

Unfortunately, I have an older machine with only a Pentium D processor. My VirtualBox running under Fedora was HORRIBLE. I scoured the internet looking for anything that would improve performance. I found an Article that showed how to manually disable APIC IO, and after doing the procedure, I was astounded by the marked improvement (better than double the speed) I gained by doing it.....

Running Fedora Core 14 on an HP / Compaq dc7700 with 3G memory, running Virtualbox version 3.2.10 r66523

1

I/O APIC is required in Windows Vista.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
0

Having tried to get an Acronis restored image from an original, physical image to boot in Vbox - (XPSP3) - (Just displays the 'didn't shut down properly' message...every boot), I decided to select the IO APIC option (Settings - System - Motherboard - Extended Features - SELECT Enable IO APIC) - not really knowing what its function was in Vbox. Once I selected and rebooted, the machine fired into life and works perfectly.

Hope this helps.

-1

As my machine does not support APIC (Host is win 8.1 64 Bit,Guest is Oracle Linux 64 Bit ) I was getting system panic and could not fully initialized the guest machine .

As I changed the number of CPU's in my guest system from 2X to 1X (I have the total of 4X) I was able to fully load my guest machine .

ygivon
  • 1
  • Of course you should just enable IO APIC. There is no good reason to have this disabled. – Michael Hampton Dec 07 '14 at 17:55
  • Downvoting because this doesn't seem to answer the question or add anything useful to the discussion. – Andrew Schulman Dec 07 '14 at 17:55
  • @AndrewSchulman You mean you aren't downvoting because of the superfluous apostrophe in "CPU's" (sic)? ;0 – Caltor Nov 23 '20 at 16:50
  • Actually, this helped me a LOT. I had moved a VirtualBox VM from one machine to another and coulsdn't for the life of me figure out why I started getting this error. Once I saw that some hosts support it and some don't, it solved my problem. – limos Apr 21 '21 at 15:51