bce(4) - com_no_buffers (Again)

Pyun YongHyeon pyunyh at gmail.com
Mon Sep 13 22:50:22 UTC 2010


On Mon, Sep 13, 2010 at 03:21:13PM -0700, David Christensen wrote:
> > I'm under the impression the header splitting in bce(4) is for
> > LRO(opposite of TSO), not for VM magic to enable page flipping
> > tricks.
> 
> Header splitting was implemented in the Linux version of bce(4)
> to prevent jumbo memory allocations.  Allocating 9KB frames was
> causing problems on systems used for virtualization.  (Harder to
> find a contiguous 9KB frame when a hypervisor is in use.)  Using 
> 4KB or smaller buffer sizes was considered more compatible with
> virtualization.  
> 
> LRO (Large Receive Offload, aka Transparent Packet Aggregation
> or TPA on the 10Gb controllers) is not supported on the 1Gb 
> bce(4) devices.
> 

I meant tcp_lro implementation of FreeBSD. ATM tcp_lro_rx() runs
long list of sanity checks before combining TCP segments into a TCP
segment but if TCP header is split with its payload I guess we can
optimize that path. This way we may be able to support LRO over
VLAN, I guess.


More information about the freebsd-net mailing list