Knowledge Base
The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides

|
64-Bit Linux Guests Panic with More Than 4GB of Guest Memory (2269)
Details
Solution
If possible, configure the guest operating system to require less than 4GB of memory.
If this is not possible, implement one of the following workarounds, as described below.
- Upgrade to a version of the operating system with a supported kernel.
- Provide the appropriate kernel option to disable support for IOMMU in the kernel.
Upgrading to a Supported Kernel
For RHEL3
Upgrade to RHEL3 U2, or later update version.
RHEL3 and RHEL3 U1 are not supported because they are based on kernel 2.4.21, which predates support for EM64T.
For SLES8 or SUSE9
Upgrade to SLES9 or SUSE9.1, or newer.
Disabling Support for IOMMU in the Kernel
For kernels 2.4.25 or older, and 2.6.0-2.6.3 kernels
Provide the kernel option iommu=off. This option forces the guest not to use the non-existing IOMMU.
You might see a guest panic message, such as Kernel panic: pci_map_single: high address but no IOMMU. This message means that some device drivers in the guest cannot handle more than 4GB without an IOMMU. Upgrade to one of the kernels listed in Upgrading to a Supported Kernel (above), or limit your virtual machine to less than 4GB of memory.
Exceptions - The following operating systems cannot function as virtual machines with more than 4GB guests:
-
SLES8 and SUSE9.0
-
RHEL3, RHEL3U1 (based on kernels 2.4.21 before introducing EM64T support)
-
RHEL3Ux (based on kernel 2.4.21 even if the iommu=off option is applied)
For kernels 2.4.26 and newer, and for 2.6.4 kernels
Operating systems known to accept this workaround:
- RHEL3U2..RHEL3U6, ia32e
Provide the kernel option iommu=off and make sure that your kernel was built with SWIOTLB support. Once the system boots, verify that SWIOTLB is used by executing the following commands:
dmesg | grep SWIOTLB
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
A message similar to PCI-DMA: Using SWIOTLB should appear in the kernel log. Using the iommu=off option is optional for a kernel with SWIOTLB support. If your kernel was built without SWIOTLB support and you did not use the iommu=off option, a silent memory corruption might occur instead of a panic (pci_map_single: high address but no IOMMU).
dmesg | grep SWIOTLB
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
A message similar to PCI-DMA: Using SWIOTLB should appear in the kernel log. Using the iommu=off option is optional for a kernel with SWIOTLB support. If your kernel was built without SWIOTLB support and you did not use the iommu=off option, a silent memory corruption might occur instead of a panic (pci_map_single: high address but no IOMMU).
For kernels 2.6.5 and newer
Operating systems known to accept this workaround:
-
Ubuntu 5.04, 5.10
-
SLES9, SUSE9.1, SUSE9.2, SUSE9.3, SUSE10 (+SP/updates)
- RHEL4
Provide the kernel option iommu=soft and make sure your kernel was built with SWIOTLB support. Once the system boots, verify by executing the command:
dmesg | grep SWIOTLB
A message similar to PCI-DMA: Using software bounce buffering for IO (SWIOTLB) should appear in the kernel log.
dmesg | grep SWIOTLB
A message similar to PCI-DMA: Using software bounce buffering for IO (SWIOTLB) should appear in the kernel log.
Using the iommu=off option is optional for a kernel with SWIOTLB support. If your kernel was built without SWIOTLB support and you did not use the iommu=off option, a silent memory corruption might occur instead of a panic (pci_map_single: high address but no IOMMU).
Request a Product Feature
To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.
Actions
KB:
- Updated:
- Categories:
- Languages:
- Product Family:
- Product(s):
- Product Version(s):

