Joel Dahl wrote:
> I hit a kernel panic running a fresh -CURRENT today. This machine is my home
> server and it exports src and obj to a bunch of other machines. During an
> installkernel on one of the other machines (using the src and obj exports
> the NFS server) the NFS server kernel paniced.
> I took a quick photo of the stack backtrace, since I didn't have time to
> investigate further (but I haven't rebooted the machine yet, it's still
> sitting at the db> prompt:
> Any ideas?
The panic is "tcp_output: len > IP_MAXPACKET". This would be a TCP/TSO problem
and not NFS. NFS just puts stuff on the TCP socket for transmission through the
kernel rpc layer. (It happens to do so in a way that the TSO code gets tested
in ways that a netperf test won't do.)
Take a look at the net device driver for your hardware and see if if_hw_tsomax
is set to > IP_MAXPACKET somehow. If it is, the value needs to be changed to
IP_MAXPACKET or less.
You can also try the attached patch for a related issue for net drivers that
can't handle 35 transmit segments for a TSO segment, although this shouldn't
problem wouldn't cause the above panic unless if_hw_tsomax wasn't set correctly,
from what I can see looking at the code.
If you just want to make the panic go away "disable TSO", but it would be nice
if we knew what net driver you were using and how this was caused?
> email@example.com mailing list
> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
--- netinet/tcp_output.c.sav 2015-08-22 07:48:12.000000000 -0400
+++ netinet/tcp_output.c 2015-08-22 07:50:52.000000000 -0400
@@ -794,7 +794,13 @@ send:
/* extract TSO information */
if_hw_tsomax = tp->t_tsomax;
- if_hw_tsomaxsegcount = tp->t_tsomaxsegcount;
+ * Subtract 1 for the tcp/ip header mbuf that
+ * will be prepended to this mbuf chain after
+ * the code in this section limits the number of
+ * mbufs in the chain to if_hw_tsomaxsegcount.
+ if_hw_tsomaxsegcount = tp->t_tsomaxsegcount - 1;
if_hw_tsomaxsegsize = tp->t_tsomaxsegsize;
firstname.lastname@example.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"