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"

Reply via email to