Network stack returning EFBIG?
wollman at bimajority.org
wollman at bimajority.org
Thu Mar 20 13:51:44 UTC 2014
In article <21290.60558.750106.630804 at hergotha.csail.mit.edu>, I wrote:
>Since we put this server into production, random network system calls
>have started failing with [EFBIG] or maybe sometimes [EIO]. I've
>observed this with a simple ping, but various daemons also log the
>errors:
>Mar 20 09:22:04 nfs-prod-4 sshd[42487]: fatal: Write failed: File too
>large [preauth]
>Mar 20 09:23:44 nfs-prod-4 nrpe[42492]: Error: Could not complete SSL
>handshake. 5
I found at least one call stack where this happens and it does get
returned all the way to userspace:
17 15547 _bus_dmamap_load_buffer:return
kernel`_bus_dmamap_load_mbuf_sg+0x5f
kernel`bus_dmamap_load_mbuf_sg+0x38
kernel`ixgbe_xmit+0xcf
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 8863 _bus_dmamap_load_mbuf_sg:return
kernel`bus_dmamap_load_mbuf_sg+0x38
kernel`ixgbe_xmit+0xcf
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 25315 bus_dmamap_load_mbuf_sg:return
kernel`ixgbe_xmit+0xcf
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 15547 _bus_dmamap_load_buffer:return
kernel`_bus_dmamap_load_mbuf_sg+0x5f
kernel`bus_dmamap_load_mbuf_sg+0x38
kernel`ixgbe_xmit+0xcf
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 8863 _bus_dmamap_load_mbuf_sg:return
kernel`bus_dmamap_load_mbuf_sg+0x38
kernel`ixgbe_xmit+0xcf
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 25315 bus_dmamap_load_mbuf_sg:return
kernel`ixgbe_xmit+0xcf
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 4206 ixgbe_xmit:return
kernel`ixgbe_mq_start_locked+0x94
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 4208 ixgbe_mq_start_locked:return
kernel`ixgbe_mq_start+0x12a
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 4212 ixgbe_mq_start:return
if_lagg.ko`lagg_transmit+0xc4
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 36017 lagg_transmit:return
kernel`ether_output_frame+0x33
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 23948 ether_output_frame:return
kernel`ether_output+0x4fe
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 18849 ether_output:return
kernel`ip_output+0xd74
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 30895 ip_output:return
kernel`tcp_output+0xfea
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 20356 tcp_output:return
kernel`tcp_usr_send+0x325
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 10923 tcp_usr_send:return
kernel`sosend_generic+0x3f6
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 19509 sosend_generic:return
kernel`soo_write+0x5e
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 26794 soo_write:return
kernel`dofilewrite+0x85
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 9141 dofilewrite:return
kernel`kern_writev+0x6c
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 25665 kern_writev:return
kernel`sys_write+0x64
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
17 24390 sys_write:return
kernel`amd64_syscall+0x5ea
kernel`0xffffffff808443c7
The MTU here is 9120, and the ixgbe driver has one local modification,
to prevent it from using large contiguous mbufs in its receive queue:
Index: ixgbe.c
===================================================================
--- ixgbe.c (revision 261091)
+++ ixgbe.c (working copy)
@@ -1117,12 +1117,8 @@
*/
if (adapter->max_frame_size <= 2048)
adapter->rx_mbuf_sz = MCLBYTES;
- else if (adapter->max_frame_size <= 4096)
+ else
adapter->rx_mbuf_sz = MJUMPAGESIZE;
- else if (adapter->max_frame_size <= 9216)
- adapter->rx_mbuf_sz = MJUM9BYTES;
- else
- adapter->rx_mbuf_sz = MJUM16BYTES;
/* Prepare receive descriptors and buffers */
if (ixgbe_setup_receive_structures(adapter)) {
-GAWollman
More information about the freebsd-net
mailing list