Page MenuHomeFreeBSD

cxgbe netmap: Directly flushes batches of 64 packets in lazy_tx_credit_flush
Needs ReviewPublic

Authored by on Nov 7 2018, 7:54 AM.
Referenced Files
Unknown Object (File)
Sat, Sep 30, 6:40 AM
Unknown Object (File)
Sun, Sep 10, 4:57 AM
Unknown Object (File)
Jun 21 2023, 2:41 PM
Unknown Object (File)
May 3 2023, 10:28 PM
Unknown Object (File)
Apr 8 2023, 4:03 PM
Unknown Object (File)
Mar 22 2023, 11:20 PM
Unknown Object (File)
Mar 1 2023, 5:25 PM
Unknown Object (File)
Feb 11 2023, 8:02 PM


Group Reviewers

By default, lazy_tx_credit_flush will process packets by batch of 15
packets or less. With this change, batches or 64 packets are directly
processed. Under high load, this prevents to fill up completely the TX
ring and then to flush it entirely.

Submitted by: Marc De La Gueronniere <>
MFC after: 1 week
Sponsored by: Verisign, Inc.

Diff Detail

Lint Passed
No Test Coverage
Build Status
Buildable 20676
Build 20091: arc lint + arc unit

Event Timeline

@jhb Can you take a look at this?

@brd what kind of workload do you see the improvements with?

There are no updates here but I discussed this (and a couple of other t4_netmap.c changes) with the author and submitter at vBSDCon 2019 and we thought it best to leave this as a private change in their repo at that time.

If this helps other users too then we could replace the on/off style lazy_tx_credit_flush with a threshold at which to flush the credits instead of hardcoding it to 64.