Russell L. Carter wrote: > > > On 07/02/14 19:09, Rick Macklem wrote: > > > Could you please post the dmesg stuff for the network interface, > > so I can tell what driver is being used? I'll take a look at it, > > in case it needs to be changed to use m_defrag(). > > em0: <Intel(R) PRO/1000 Network Connection 7.4.2> port 0xd020-0xd03f > mem > 0xfe4a0000-0xfe4bffff,0xfe480000-0xfe49ffff irq 44 at device 0.0 on > pci2 > em0: Using an MSI interrupt > em0: Ethernet address: 00:15:17:bc:29:ba > 001.000007 [2323] netmap_attach success for em0 tx 1/1024 > rx > 1/1024 queues/slots > > This is one of those dual nic cards, so there is em1 as well... > Well, I took a quick look at the driver and it does use m_defrag(), but I think that the "retry:" label it does a goto after doing so might be in the wrong place.
The attached untested patch might fix this. Is it convenient to build a kernel with this patch applied and then try it with TSO enabled? rick ps: It does have the transmit segment limit set to 32. I have no idea if this is a hardware limitation. > Best, > Russell > > > > > Thanks for letting us know this fixed the problem, rick > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to > "freebsd-net-unsubscr...@freebsd.org" >
--- sys/dev/e1000/if_em.c.sav 2014-07-03 20:27:50.000000000 -0400 +++ sys/dev/e1000/if_em.c 2014-07-03 20:29:53.000000000 -0400 @@ -1818,7 +1818,6 @@ em_xmit(struct tx_ring *txr, struct mbuf int nsegs, i, j, first, last = 0; int error, do_tso, tso_desc = 0, remap = 1; -retry: m_head = *m_headp; txd_upper = txd_lower = txd_used = txd_saved = 0; do_tso = ((m_head->m_pkthdr.csum_flags & CSUM_TSO) != 0); @@ -1944,6 +1943,7 @@ retry: tx_buffer_mapped = tx_buffer; map = tx_buffer->map; +retry: error = bus_dmamap_load_mbuf_sg(txr->txtag, map, *m_headp, segs, &nsegs, BUS_DMA_NOWAIT);
_______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"