HomeFreeBSD

Have ifmp_ring_enqueue() abdicate instead of switch to a consumer

Description

Have ifmp_ring_enqueue() abdicate instead of switch to a consumer

Move TX out of the enqueue() path. As a result, we need
to have ifmp_ring_check_drainage() pick up from the abdicate state.

We also need to either enqueue the TX task, or check drainage
after calling ifmp_ring_enqueue() to ensure it's sent.

This change results in a 30% small packet forwarding improvement.

Reviewed by: olivier, sbruno
Approved by: sbruno (mentor)
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D12439

Details

Provenance
shurdAuthored on
Reviewer
olivier
Differential Revision
D12439: Have ifmp_ring_enqueue() abdicate instead of switch to a consumer
Parents
rS323953: No need to use grep(1).
Branches
Unknown
Tags
Unknown