Why should I enable IO APIC in VirtualBox?

Solution 1:

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”.

Solution 2:

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


Solution 3:

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