No relevant resource is found in the selected language.

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Read our privacy policy>


To have a better experience, please upgrade your IE browser.


"Out of SW-IOMMU space" Is Displayed for Linux

Publication Date:  2015-06-19 Views:  145 Downloads:  0
Issue Description
Hardware configuration:
An RH2285 server configured with eight or twelve hard disks and a LSISAS1068 controller card

Software configuration:
SUSE10 SP2 x86_64

  • The messages for Linux are as follows:
  • DMA: Out of SW-IOMMU space for 16384 bytes at device 08:00.0
  • DMA: Out of SW-IOMMU space for 16384 bytes at device 08:00.0
  • DMA: Out of SW-IOMMU space for 16384 bytes at device 08:00.0
Handling Process
LSI SAS1068E PCI-E device is displayed after 08:00.0 by using the lspci command, as shown in Figure 1.

Figure 1 lspci command output

Root Cause
An input/output memory management unit (IOMMU) is a hardware unit that provides the I/O function. The IOMMU transfers device memory addresses from the I/O space to the machine space, which enables a device to connect to physical memory addresses beyond its device range. This function is implemented by mapping the address space within the device range to physical memory addresses beyond the device range. The swiotlb parameter implements the IOMMU function from the software layer, which is called "bounce buffers". If the IOMMU space is insufficient but the system has extra memory space, you can set the swiotlb parameter to a large value to enlarge the IOMMU space size.

The default value of swiotlb is 64 MB for RedHat systems and 16 MB for SUSE systems. If a Peripheral Component Interconnect Express (PCIe) network interface card (NIC) is under a great deal of pressure, and swiotlb is set to a small value, the PCIe NIC cannot be used properly.

Set swiotlb to a large value and add swiotlb=128 or swiotlb=256 to /boot/grub/menu.lst, as shown in Figure 2. Restart the system and enter the #cat /proc/cmdline command on the command-line interface (CLI) to check whether the modification (swiotlb=128) takes effect, as shown in Figure 3.

Figure 2 Setting the swiotlb parameter

Figure 3 Setting results

According to the SUSE engineers, SUSE OSs of the version or later can detect and solve this problem automatically.