Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Mar 2014 19:16:29 -0400 (EDT)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Christopher Forgeron <csforgeron@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>, Andre Oppermann <andre@freebsd.org>, Garrett Wollman <wollman@freebsd.org>, Jack Vogel <jfvogel@gmail.com>, Markus Gebert <markus.gebert@hostpoint.ch>
Subject:   Re: 9.2 ixgbe tx queue hang
Message-ID:  <1985661701.540906.1395789389694.JavaMail.root@uoguelph.ca>
In-Reply-To: <CAB2_NwA2zp9VaBm4ZRR1udghbSpSDs_x8bK6CPHCaBuiBKD=KA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Christopher Forgeron wrote:
> Update:
> 
>  I'm changing my mind, and I believe Rick's TSO patch is fixing
>  things
> (sorry). In looking at my notes, it's possible I had lagg on for
> those
> tests.  lagg does seem to negate the TSO patch in my case.
> 
Ok, that's useful information. It implies that r251296 doesn't quite
work and needs to be fixed for "stacked" network interface drivers
before it can be used. I've cc'd Andre who is the author of that
patch, in case he knows how to fix it.

Thanks for checking this, rick

> kernel.10stable_basicTSO_65535/
> 
> - IP_MAXPACKET = 65535;
> - manually forced (no if statement) ifp->if_hw_tsomax = IP_MAXPACKET
> -
> (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN);
> - Verified on boot via printf that ifp->if_hw_tsomax = 65517
> - Boot in a NON LAGG environment.  ix0 only.
> 
> ixgbe's printf is showing packets up to 65530. Haven't run long
> enough yet
> to see if anything will go over 65535
> 
> I have this tcpdump running to check packet size.
> tcpdump -ennvvXS -i ix0 greater 65518
> 
> I do expect to get packets over 65518, but I was just curious to see
> if any
> of them would go over 65535. Time will tell.
> 
> In a separate test, If I enable lagg, we have LOTS of oversized
> packet
> problems. It looks like tsomax is definitely not making it through in
> if_lagg.c - Any recommendations there? I will eventually need lagg,
> as I'm
> sure will others.
> 
> With dtrace, it's showing t_tsomax >= 65518. Shouldn't that not be
> happening?
> 
> 
> dtrace -n 'fbt::tcp_output:entry / args[0]->t_tsomax != 0 &&
> args[0]->t_tsomax >= 65518 / { printf("unexpected tp->t_tsomax:
> %i\n",
> args[0]->t_tsomax); stack(); }'
> 
> 
>   6  31403                 tcp_output:entry unexpected tp->t_tsomax:
>   65535
> 
>               kernel`tcp_do_segment+0x2c99
>               kernel`tcp_input+0x11a2
>               kernel`ip_input+0xa2
>               kernel`netisr_dispatch_src+0x5e
>               kernel`ether_demux+0x12a
>               kernel`ether_nh_input+0x35f
>               kernel`netisr_dispatch_src+0x5e
>               kernel`bce_intr+0x765
>               kernel`intr_event_execute_handlers+0xab
>               kernel`ithread_loop+0x96
>               kernel`fork_exit+0x9a
>               kernel`0xffffffff80c75b2e
> 
>   3  31403                 tcp_output:entry unexpected tp->t_tsomax:
>   65535
> 
>               kernel`tcp_do_segment+0x2c99
>               kernel`tcp_input+0x11a2
>               kernel`ip_input+0xa2
>               kernel`netisr_dispatch_src+0x5e
>               kernel`ether_demux+0x12a
>               kernel`ether_nh_input+0x35f
>               kernel`netisr_dispatch_src+0x5e
>               kernel`bce_intr+0x765
>               kernel`intr_event_execute_handlers+0xab
>               kernel`ithread_loop+0x96
>               kernel`fork_exit+0x9a
>               kernel`0xffffffff80c75b2e
> 
>   6  31403                 tcp_output:entry unexpected tp->t_tsomax:
>   65535
> 
>               kernel`tcp_do_segment+0x2c99
>               kernel`tcp_input+0x11a2
>               kernel`ip_input+0xa2
>               kernel`netisr_dispatch_src+0x5e
>               kernel`ether_demux+0x12a
>               kernel`ether_nh_input+0x35f
>               kernel`netisr_dispatch_src+0x5e
>               kernel`bce_intr+0x765
>               kernel`intr_event_execute_handlers+0xab
>               kernel`ithread_loop+0x96
>               kernel`fork_exit+0x9a
>               kernel`0xffffffff80c75b2e
> 
>   1  31403                 tcp_output:entry unexpected tp->t_tsomax:
>   65535
> 
>               kernel`tcp_do_segment+0x2c99
>               kernel`tcp_input+0x11a2
>               kernel`ip_input+0xa2
>               kernel`netisr_dispatch_src+0x5e
>               kernel`ether_demux+0x12a
>               kernel`ether_nh_input+0x35f
>               kernel`netisr_dispatch_src+0x5e
>               kernel`bce_intr+0x765
>               kernel`intr_event_execute_handlers+0xab
>               kernel`ithread_loop+0x96
>               kernel`fork_exit+0x9a
>               kernel`0xffffffff80c75b2e
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to
> "freebsd-net-unsubscribe@freebsd.org"
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1985661701.540906.1395789389694.JavaMail.root>