Page MenuHomeFreeBSD

Fix first-packet completion
ClosedPublic

Authored by shurd on Nov 28 2018, 3:25 PM.

Details

Summary

The first packet after the ring is initialized was never
completed as isc_txd_credits_update() would not include it in the
count of completed packets. This caused netmap to never complete
a batch. See PR 233022 and 233607 for more details.

Test Plan

lev tests all the things!

Diff Detail

Repository
rS FreeBSD src repository
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 21239
Build 20581: arc lint + arc unit

Event Timeline

shurd created this revision.Nov 28 2018, 3:25 PM
lev accepted this revision.Nov 28 2018, 3:28 PM

It helps for ix, can not test for ixl, as I don't have one/

This revision is now accepted and ready to land.Nov 28 2018, 3:28 PM
This revision was automatically updated to reflect the committed changes.

I know I'm late commenting on this, but I think the correct fix is to initialize tx_cidx_processed to txr->desc_count -1 when we initialize.

head/sys/dev/ixl/ixl_txrx.c
523 ↗(On Diff #51299)

Also, this MPASS seems very fishy. I don't think it's correct.