[RFC] Allow m_dup() to use JUMBO clusters

Hans Petter Selasky hps at selasky.org
Mon Jul 7 08:11:58 UTC 2014


Hi,

I'm asking for some input on the attached m_dup() patch, so that 
existing functionality or dependencies are not broken. The background 
for the change is to allow m_dup() to defrag long mbuf chains that 
doesn't fit into a specific hardware's scatter gather entries, typically 
when doing TSO.

In my case the HW limit is 16 entries of length 4K for doing a 64KByte 
TSO packet. Currently m_dup() is at best producing 32 entries of each 2K 
for a 64Kbytes TSO packet.

By allowing m_dup() to get JUMBO clusters when allocating mbufs, we 
avoid creating a new function, specific to the hardware, to defrag some 
rare-occurring very long mbuf chains into a mbuf chain below 16 entries.

Any comments?

--HPS

-------------- next part --------------
A non-text attachment was scrubbed...
Name: uipc_mbuf.c.diff
Type: text/x-patch
Size: 588 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20140707/2e6ec2d0/attachment.bin>


More information about the freebsd-current mailing list