Page 1 of 1

DMA: Out of SW-IOMMU space

Posted: Wed Nov 07, 2012 4:48 pm
by bobmeister
Under a variety of circumstances I start getting rapid-fire messages in /var/log/syslog like this:

Nov 5 02:57:01 fitpc3 kernel: [ 5178.471617] DMA: Out of SW-IOMMU space for 162 bytes at device 0000:05:00.0

When this starts occurring the network interfaces (eth0 and perhaps wlan0) lose their IPv4 info in ifconfig and become inoperable.

The problem begins after the system has been up for a while.

Here are some things I found by Googling that appear to be along the same lines:

https://bugs.launchpad.net/ubuntu/+sour ... bug/856496
https://bugzilla.kernel.org/show_bug.cgi?id=9468

An IT consultant that was here working on configuring DHCP suggested that it might be related to the fact that the driver for the RealTek network adapter is loaded dynamically instead of statically. I'm not much of a sys admin and I don't make a living by re-compiling Linux kernels so I'm not sure how to proceed on that tip.

Btw, I'm running hostapd, isc-dhcp-server, bind9, nginx, and ruby to create a captive portal WiFi hotspot. This is all working well if eth0 is connected. However, if I boot the machine with eth0 disconnected wlan0 loses it's IPv4 info. To wit, after booting with eth0 disconnected and then connecting eth0:

$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:c0:0c:b1:cd
inet addr:192.168.0.19 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::201:c0ff:fe0c:b1cd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:78 errors:0 dropped:0 overruns:0 frame:0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10623 (10.6 KB) TX bytes:19762 (19.7 KB)
Interrupt:43 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2948 (2.9 KB) TX bytes:2948 (2.9 KB)

mon.wlan0 Link encap:UNSPEC HWaddr 00-08-CA-AF-99-50-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:811 (811.0 B) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:08:ca:af:99:50
inet6 addr: fe80::208:caff:feaf:9950/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:54 errors:0 dropped:0 overruns:0 frame:0
TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11059 (11.0 KB) TX bytes:17267 (17.2 KB)


You can see that wlan0 no longer has it's IPv4 address.

If I then take the wlan0 interface down and then bring it back up:

$ ifdown wlan0
$ ifup wlan0
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:c0:0c:b1:cd
inet addr:192.168.0.19 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::201:c0ff:fe0c:b1cd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:288 errors:0 dropped:0 overruns:0 frame:0
TX packets:277 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28251 (28.2 KB) TX bytes:38824 (38.8 KB)
Interrupt:43 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:61 errors:0 dropped:0 overruns:0 frame:0
TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5641 (5.6 KB) TX bytes:5641 (5.6 KB)

mon.wlan0 Link encap:UNSPEC HWaddr 00-08-CA-AF-99-50-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:354 (354.0 B) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:08:ca:af:99:50
inet addr:10.0.0.1 Bcast:10.0.3.255 Mask:255.255.252.0
inet6 addr: fe80::208:caff:feaf:9950/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:13113 (13.1 KB)

Now wlan0 has it's IPv4 info back.

Of course, when things get goofy then DHCP negotiation with WiFi clients ceases along with networking generally.

Ideas? Help!!

Re: DMA: Out of SW-IOMMU space

Posted: Sat Nov 10, 2012 8:43 am
by bobmeister
I found the answer. There is a bug in the 3.2.x Linux kernel. The beacon count is what triggers the runaway log messages and the crash of the network interfaces. This bug is fixed no later than kernel version 3.5.x. Unfortunately, there is no way to stay on Llnux Mint and get this bug resolved because Linux Mint 13 (maya) is still using the 3.2.x kernel.

So, I installed Ubuntu server 12.10 on my fit-pc3 because it is based on the 3.5.0 kernel. I didn't need a Desktop GUI anyway, so no big loss. So far so good.

Btw, here's where I found the info about the kernel bug: See blog post #13:

https://bugs.launchpad.net/ubuntu/+sour ... bug/961618

Re: DMA: Out of SW-IOMMU space

Posted: Mon Nov 12, 2012 3:07 pm
by gabrielh
You can also try to update the kernel of Linux Mint 13 to the latest available by UpUbuntu by following this easy guide

Code: Select all

sudo add-apt-repository ppa:upubuntu-com/kernel-amd64
sudo apt-get update
sudo apt-get install linux
Thanks to http://www.upubuntu.com/. Do it on your own risk