Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Sep 2012 12:07:48 +0330
From:      Hooman Fazaeli <hoomanfazaeli@gmail.com>
To:        "Rudy (bulk)" <crapsh@monkeybrains.net>
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: ping: sendto: No buffer space available
Message-ID:  <50616D5C.705@gmail.com>
In-Reply-To: <50615F6F.1070105@monkeybrains.net>
References:  <5060884C.3050709@monkeybrains.net> <506154C7.3040209@sepehrs.com> <50615F6F.1070105@monkeybrains.net>

next in thread | previous in thread | raw e-mail | index | archive | help


On 9/25/2012 11:08 AM, Rudy (bulk) wrote:
> On 9/24/12 11:52 PM, Hooman Fazaeli wrote:
>> sysctl dev.em.1
>
> From the side having the 'No buffer space available' (FreeBSD 8.3  Sep 13 2012)
>
> # sysctl dev.em.1
> dev.em.1.%desc: Intel(R) PRO/1000 Network Connection 7.3.2
> dev.em.1.%driver: em
> dev.em.1.%location: slot=0 function=0
> dev.em.1.%pnpinfo: vendor=0x8086 device=0x10d3 subvendor=0x15d9 subdevice=0x0000 class=0x020000
> dev.em.1.%parent: pci5
> dev.em.1.nvm: -1
> dev.em.1.debug: -1
> dev.em.1.fc: 3
> dev.em.1.rx_int_delay: 0
> dev.em.1.tx_int_delay: 66
> dev.em.1.rx_abs_int_delay: 66
> dev.em.1.tx_abs_int_delay: 66
> dev.em.1.rx_processing_limit: 200
> dev.em.1.eee_control: 0
> dev.em.1.link_irq: 6379725883
> dev.em.1.mbuf_alloc_fail: 0
> dev.em.1.cluster_alloc_fail: 0
> dev.em.1.dropped: 0
> dev.em.1.tx_dma_fail: 0
> dev.em.1.rx_overruns: 0
> dev.em.1.watchdog_timeouts: 0
> dev.em.1.device_control: 1477444168
> dev.em.1.rx_control: 67141634
> dev.em.1.fc_high_water: 18432
> dev.em.1.fc_low_water: 16932
> dev.em.1.queue0.txd_head: 188
> dev.em.1.queue0.txd_tail: 188
> dev.em.1.queue0.tx_irq: 760427663
> dev.em.1.queue0.no_desc_avail: 0
> dev.em.1.queue0.rxd_head: 300
> dev.em.1.queue0.rxd_tail: 297
> dev.em.1.queue0.rx_irq: 838300057
> dev.em.1.mac_stats.excess_coll: 0
> dev.em.1.mac_stats.single_coll: 0
> dev.em.1.mac_stats.multiple_coll: 0
> dev.em.1.mac_stats.late_coll: 0
> dev.em.1.mac_stats.collision_count: 0
> dev.em.1.mac_stats.symbol_errors: 0
> dev.em.1.mac_stats.sequence_errors: 0
> dev.em.1.mac_stats.defer_count: 0
> dev.em.1.mac_stats.missed_packets: 580251107926
> dev.em.1.mac_stats.recv_no_buff: 895
> dev.em.1.mac_stats.recv_undersize: 0
> dev.em.1.mac_stats.recv_fragmented: 0
> dev.em.1.mac_stats.recv_oversize: 0
> dev.em.1.mac_stats.recv_jabber: 0
> dev.em.1.mac_stats.recv_errs: 0
> dev.em.1.mac_stats.crc_errs: 0
> dev.em.1.mac_stats.alignment_errs: 0
> dev.em.1.mac_stats.coll_ext_errs: 0
> dev.em.1.mac_stats.xon_recvd: 809
> dev.em.1.mac_stats.xon_txd: 684
> dev.em.1.mac_stats.xoff_recvd: 580251112172
> dev.em.1.mac_stats.xoff_txd: 580251108668
> dev.em.1.mac_stats.total_pkts_recvd: 582154845658
> dev.em.1.mac_stats.good_pkts_recvd: 1903732156
> dev.em.1.mac_stats.bcast_pkts_recvd: 923
> dev.em.1.mac_stats.mcast_pkts_recvd: 0
> dev.em.1.mac_stats.rx_frames_64: 257128416
> dev.em.1.mac_stats.rx_frames_65_127: 702676478
> dev.em.1.mac_stats.rx_frames_128_255: 225331435
> dev.em.1.mac_stats.rx_frames_256_511: 59888288
> dev.em.1.mac_stats.rx_frames_512_1023: 47777176
> dev.em.1.mac_stats.rx_frames_1024_1522: 610930363
> dev.em.1.mac_stats.good_octets_recvd: 1057190106675
> dev.em.1.mac_stats.good_octets_txd: 1502996801989
> dev.em.1.mac_stats.total_pkts_txd: 582709483882
> dev.em.1.mac_stats.good_pkts_txd: 2458374408
> dev.em.1.mac_stats.bcast_pkts_txd: 73
> dev.em.1.mac_stats.mcast_pkts_txd: 0
> dev.em.1.mac_stats.tx_frames_64: 314613253
> dev.em.1.mac_stats.tx_frames_65_127: 841961719
> dev.em.1.mac_stats.tx_frames_128_255: 268669868
> dev.em.1.mac_stats.tx_frames_256_511: 73341358
> dev.em.1.mac_stats.tx_frames_512_1023: 62765737
> dev.em.1.mac_stats.tx_frames_1024_1522: 897022473
> dev.em.1.mac_stats.tso_txd: 1880
> dev.em.1.mac_stats.tso_ctx_fail: 0
> dev.em.1.interrupts.asserts: 6331439142
> dev.em.1.interrupts.rx_pkt_timer: 0
> dev.em.1.interrupts.rx_abs_timer: 0
> dev.em.1.interrupts.tx_pkt_timer: 0
> dev.em.1.interrupts.tx_abs_timer: 0
> dev.em.1.interrupts.tx_queue_empty: 0
> dev.em.1.interrupts.tx_queue_min_thresh: 0
> dev.em.1.interrupts.rx_desc_min_thresh: 0
> dev.em.1.interrupts.rx_overrun: 74346455
>
>
> And the the other end of the link (FreeBSD 9.0-STABLE  Feb 1 2012)
>
> # sysctl dev.em.2
> dev.em.2.%desc: Intel(R) PRO/1000 Network Connection 7.2.3
> dev.em.2.%driver: em
> dev.em.2.%location: slot=0 function=0
> dev.em.2.%pnpinfo: vendor=0x8086 device=0x10d3 subvendor=0x15d9 subdevice=0x10d3 class=0x020000
> dev.em.2.%parent: pci7
> dev.em.2.nvm: -1
> dev.em.2.debug: -1
> dev.em.2.rx_int_delay: 0
> dev.em.2.tx_int_delay: 66
> dev.em.2.rx_abs_int_delay: 66
> dev.em.2.tx_abs_int_delay: 66
> dev.em.2.rx_processing_limit: 100
> dev.em.2.flow_control: 3
> dev.em.2.eee_control: 0
> dev.em.2.link_irq: 6379294926
> dev.em.2.mbuf_alloc_fail: 0
> dev.em.2.cluster_alloc_fail: 0
> dev.em.2.dropped: 0
> dev.em.2.tx_dma_fail: 0
> dev.em.2.rx_overruns: 0
> dev.em.2.watchdog_timeouts: 0
> dev.em.2.device_control: 1477444168
> dev.em.2.rx_control: 67141634
> dev.em.2.fc_high_water: 18432
> dev.em.2.fc_low_water: 16932
> dev.em.2.queue0.txd_head: 735
> dev.em.2.queue0.txd_tail: 735
> dev.em.2.queue0.tx_irq: 839960061
> dev.em.2.queue0.no_desc_avail: 0
> dev.em.2.queue0.rxd_head: 237
> dev.em.2.queue0.rxd_tail: 236
> dev.em.2.queue0.rx_irq: 762108556
> dev.em.2.mac_stats.excess_coll: 0
> dev.em.2.mac_stats.single_coll: 0
> dev.em.2.mac_stats.multiple_coll: 0
> dev.em.2.mac_stats.late_coll: 0
> dev.em.2.mac_stats.collision_count: 0
> dev.em.2.mac_stats.symbol_errors: 0
> dev.em.2.mac_stats.sequence_errors: 0
> dev.em.2.mac_stats.defer_count: 0
> dev.em.2.mac_stats.missed_packets: 580252415422
> dev.em.2.mac_stats.recv_no_buff: 3211
> dev.em.2.mac_stats.recv_undersize: 0
> dev.em.2.mac_stats.recv_fragmented: 0
> dev.em.2.mac_stats.recv_oversize: 0
> dev.em.2.mac_stats.recv_jabber: 0
> dev.em.2.mac_stats.recv_errs: 0
> dev.em.2.mac_stats.crc_errs: 0
> dev.em.2.mac_stats.alignment_errs: 0
> dev.em.2.mac_stats.coll_ext_errs: 0
> dev.em.2.mac_stats.xon_recvd: 684
> dev.em.2.mac_stats.xon_txd: 811
> dev.em.2.mac_stats.xoff_recvd: 580252412652
> dev.em.2.mac_stats.xoff_txd: 580252416163
> dev.em.2.mac_stats.total_pkts_recvd: 582710830267
> dev.em.2.mac_stats.good_pkts_recvd: 2458413107
> dev.em.2.mac_stats.bcast_pkts_recvd: 162
> dev.em.2.mac_stats.mcast_pkts_recvd: 0
> dev.em.2.mac_stats.rx_frames_64: 314616449
> dev.em.2.mac_stats.rx_frames_65_127: 841966916
> dev.em.2.mac_stats.rx_frames_128_255: 268689241
> dev.em.2.mac_stats.rx_frames_256_511: 73346849
> dev.em.2.mac_stats.rx_frames_512_1023: 62768450
> dev.em.2.mac_stats.rx_frames_1024_1522: 897025202
> dev.em.2.mac_stats.good_octets_recvd: 1503009815756
> dev.em.2.mac_stats.good_octets_txd: 1056695683673
> dev.em.2.mac_stats.total_pkts_txd: 582155360950
> dev.em.2.mac_stats.good_pkts_txd: 1902943976
> dev.em.2.mac_stats.bcast_pkts_txd: 8862
> dev.em.2.mac_stats.mcast_pkts_txd: 5
> dev.em.2.mac_stats.tx_frames_64: 257064868
> dev.em.2.mac_stats.tx_frames_65_127: 702386644
> dev.em.2.mac_stats.tx_frames_128_255: 225240646
> dev.em.2.mac_stats.tx_frames_256_511: 59862797
> dev.em.2.mac_stats.tx_frames_512_1023: 47743269
> dev.em.2.mac_stats.tx_frames_1024_1522: 610645752
> dev.em.2.mac_stats.tso_txd: 12910
> dev.em.2.mac_stats.tso_ctx_fail: 0
> dev.em.2.interrupts.asserts: 6331624353
> dev.em.2.interrupts.rx_pkt_timer: 1
> dev.em.2.interrupts.rx_abs_timer: 0
> dev.em.2.interrupts.tx_pkt_timer: 0
> dev.em.2.interrupts.tx_abs_timer: 0
> dev.em.2.interrupts.tx_queue_empty: 0
> dev.em.2.interrupts.tx_queue_min_thresh: 0
> dev.em.2.interrupts.rx_desc_min_thresh: 0
> dev.em.2.interrupts.rx_overrun: 74250608
>
>
> I should note that I had the two devices set to mtu of 9000 at first, I got the 'No buffer space available' error a week ago and set both to an mtu of 1500.  Then the 'No buffer space available'
> came back until the link was reset with an 'ifconfig up/down'.
>
>
>

Based on the strangely high value of dev.em.1.link_irq (which means too many link
status changes: down -> up -> down -> ....), I guess the problem is the same as
discussed in these threads:

http://lists.freebsd.org/pipermail/freebsd-net/2011-November/030424.html
http://lists.freebsd.org/pipermail/freebsd-net/2012-March/031648.html

To confirm, you may run this test:

1. Start a ping flood: ping -f <other-machine-ip>
2. Let it run for a few seconds.
3. Disconnect the cable.
4. After a while, you should see "no buffer space" error.
5. Stop ping flood.
6. Re-connect the cable and wait 10 seconds.
7. Start a normal ping. Error messages should show up again.

To fix, upgrade to the latest e1000 driver from HEAD.

The very high link_irq may be due to a loose connection.
Replace the patch cord and see if it helps.










Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50616D5C.705>