GET BUF: dmamap load failure - 12 + kernel panic [was: NETIO UDP benchmark problem]

Miroslav Lachman 000.fbsd at quip.cz
Thu Aug 20 02:52:14 UTC 2009


I changed subject to better describing one, because it is not problem in 
netio itself.

Viktor CISTICZ wrote:
> Hello,
> recently i have been testing two servers  via crosslink. Both have
> Freebsd installed >
> 
> twin1$ uname -a
> FreeBSD twin1 8.0-BETA2 FreeBSD 8.0-BETA2 #0: Sun Aug 16
> 22:57:29 CEST 2009
> viktor at twin1:/usr/obj/usr/src/sys/GEN_NO_DBG  amd64
> 
> twin2$ uname -a
> FreeBSD kitt.twin2 8.0-BETA2 FreeBSD 8.0-BETA2 #0: Wed Jul 22 15:05:19
> CEST 2009     viktor at kitt.twin2:/usr/obj/usr/src/sys/GEN_NO_DBG  amd64
> 
> GEN_NO_DBG is GENERIC kernel without debugging options
> 
> Twin2 is virtual machine on the same hardware as twin1, vmware used.
> 
> I have this set installed on both machines >
> twin1$ pkg_info
> NetPIPE-3.7.1       A self-scaling network benchmark
> gettext-0.17_1      GNU gettext package
> gmake-3.81_3        GNU version of 'make' utility
> iperf-2.0.4         A tool to measure maximum TCP and UDP bandwidth
> libiconv-1.13.1     A character set conversion library
> libtool-2.2.6a      Generic shared library support script
> netio-1.26          Network benchmark
> netperf-2.4.5       Network performance benchmarking package
> portaudit-0.5.13    Checks installed ports against a list of security
> vulnerabi
> portmaster-2.9      Manage your ports without external databases or
> languages
> screen-4.0.3_6      A multi-screen window manager
> ttcp-1.12           Benchmarking tool for analysing TCP and UDP
> performance
> unzip-5.52_5        List, test and extract compressed files in a ZIP
> archive
> 
> Both machines are connected via crosslink >
> twin1# ifconfig
> igb0 : public interface
> igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>         options=13b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,TSO4>
>         ether 00:30:48:c8:f3:91
>         inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255
>         media: Ethernet autoselect (1000baseT <full-duplex>)
>         status: active
> 
> twin2# ifconfig
> em0: public interface
> em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
>         ether 00:0c:29:4b:f1:76
>         inet 10.10.10.20 netmask 0xffffff00 broadcast 10.10.10.255
>         media: Ethernet autoselect (1000baseT <full-duplex>)
>         status: active
> 
> I have set up twin2 as a server for netio >
> kitt.twin2# netio -s -p 1122
> 
> And then tested from twin1 tcp test >
> twin1# netio -p 1122 -t 10.10.10.20
> 
> It was allright, i've got some results.
> 
> But when I tried UDP, it failed.
> 
> The server is still the same >
> kitt.twin2# netio -s -p 1122
> 
> Client
> twin1# netio -p 1122 -u 10.10.10.20
> 
> After around 1 minute, twin1 server stopped responding on public
> interface, i've been disconnected. Via remote console i could access
> the machine, it was acting normally. I could ping both interfaces. I
> could even ping from other side of crosslink, from twin2 the privat
> interface, but no reply on public interface.
> The interface was shown UP in ifconfig, no messages in /var/log/messages.
> 
> Then i executed ifconfig igb1 down && ifconfig igb1 up and it worked
> again.

Did you ifconfig down + up igb1 or igb0? As you said "server stopped 
responding on public interface", but you have igb0 marked as public 
interface and igb1 as private crosslink interface in ifconfig above.

Are you really saying that heavy UDP load on private interface igb1 
caused freez of public interface igb0 and then kernel panic?

> I have then executed netio udp test again with 2k udp packets
> 
> The server is still the same >
> kitt.twin2# netio -s -p 1122
> 
> twin1# netio -p 1122 -u -b 2k 10.10.10.20
> 
> The same problem on twin1, but now it has crashed the computer >
> via remote console i could see this >
> twin1# GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> GET BUF: dmamap load failure - 12
> 
> then it executed core dump and restarted.
> 
> I am lost, thanks for any advise.

Did you run it as root or regular user?

Can you add output of netstat -m right before interface freez / kernel 
panic?

And last - can you reproduce it with kernel with debugging options enabled?

Miroslav Lachman


More information about the freebsd-current mailing list