Date: Thu, 12 Jun 2008 18:17:20 +0300 From: "Yony Yossef" <yonyossef.lists@gmail.com> To: freebsd-net@freebsd.org Cc: liranl@mellanox.co.il Subject: TSO bug in FreeBSD 7.0 ? Message-ID: <20def4870806120817q5b755805hfafa0d0d1523f2ad@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi freebsd-net, I'm seeing mbuf chains larger than 64K being sent down by FreeBSD 7 when TSO is enabled. Then my driver crashes in bus_dmamap_load_mbuf_sg (error=EINVAL). I'm printing the mbuf m_pkthdr.len size right after the DEQUEUE from the stack: IFQ_DRV_DEQUEUE(&dev->if_snd, m_head); if (m_head == NULL) break; if (m_head->m_pkthdr.len > 65000) { printf("TSO packet mbuf len:%d\n", m_head->m_pkthdr.len); } and the output is: .... TSO packet mbuf len:65387 TSO packet mbuf len:65417 TSO packet mbuf len:65447 TSO packet mbuf len:65477 TSO packet mbuf len:65507 TSO packet mbuf len:65537 mtnic0: bus_dmamap_load_mbuf_sg error: 22 xmit_failure:12 ... Note the 65537, I've also seen TSO packets sized 65542. There's this old thread talking about it: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/net/2007-02/msg00312.html but I've seen no solution for this bug. Is there a fix for that? Thanks, Yony
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20def4870806120817q5b755805hfafa0d0d1523f2ad>