Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Mar 2014 20:06:43 -0300
From:      Christopher Forgeron <csforgeron@gmail.com>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        FreeBSD Net <freebsd-net@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:  <CAB2_NwA2zp9VaBm4ZRR1udghbSpSDs_x8bK6CPHCaBuiBKD=KA@mail.gmail.com>
In-Reply-To: <CAB2_NwBrdp3XsVrgkWgf7zGsrCBq1%2BC7FgsYvV28yjcUe4qZ=Q@mail.gmail.com>
References:  <0BC10908-2081-45AC-A1C8-14220D81EC0A@hostpoint.ch> <1236110257.2510701.1395709458870.JavaMail.root@uoguelph.ca> <CAB2_NwBrdp3XsVrgkWgf7zGsrCBq1%2BC7FgsYvV28yjcUe4qZ=Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB2_NwA2zp9VaBm4ZRR1udghbSpSDs_x8bK6CPHCaBuiBKD=KA>