Page MenuHomeFreeBSD

cxgbe: Support TCP_USE_DDP on offloaded TOE connections
ClosedPublic

Authored by jhb on Feb 21 2024, 12:56 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Oct 16, 7:51 PM
Unknown Object (File)
Wed, Oct 16, 7:51 PM
Unknown Object (File)
Wed, Oct 16, 7:51 PM
Unknown Object (File)
Wed, Oct 16, 7:50 PM
Unknown Object (File)
Wed, Oct 16, 7:50 PM
Unknown Object (File)
Wed, Oct 16, 7:29 PM
Unknown Object (File)
Sep 9 2024, 6:32 PM
Unknown Object (File)
Sep 8 2024, 12:00 AM
Subscribers

Details

Summary

When this socket option is enabled, relatively large contiguous
buffers are allocated and used to receive data from the remote
connection. When data is received a wrapper M_EXT mbuf is queued to
the socket's receive buffer. This reduces the length of the linked
list of received mbufs and allows consumers to consume receive data in
larger chunks.

To minimize reprogramming the page pods in the adapter, receive
buffers for a given connection are recycled. When a buffer has been
fully consumed by the receiver and freed, the buffer is placed on a
per-connection free buffers list.

The size of the receive buffers defaults to 256k and can be set via
the hw.cxgbe.toe.ddp_rcvbuf_len sysctl. The
hw.cxgbe.toe.ddp_rcvbuf_cache sysctl (defaults to 4) determines the
maximum number of free buffers cached per connection. Note that this
limit does not apply to "in-flight" receive buffers that are
associated with mbufs in the socket's receive buffer.

Co-authored-by: Navdeep Parhar <np@FreeBSD.org>
Sponsored by: Chelsio Communications

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 56699
Build 53587: arc lint + arc unit

Event Timeline

Ignore indicates for RCVBUF

Fix various bugs from testing

This revision was not accepted when it landed; it landed in state Needs Review.Mar 20 2024, 10:35 PM
This revision was automatically updated to reflect the committed changes.