Page MenuHomeFreeBSD

Fix first-packet completion
ClosedPublic

Authored by shurd on Nov 28 2018, 3:25 PM.
Tags
None
Referenced Files
F103265837: D18368.diff
Fri, Nov 22, 8:11 PM
Unknown Object (File)
Mon, Nov 18, 1:22 PM
Unknown Object (File)
Sun, Nov 10, 9:37 AM
Unknown Object (File)
Sun, Nov 10, 9:28 AM
Unknown Object (File)
Sun, Nov 10, 7:35 AM
Unknown Object (File)
Fri, Nov 1, 5:32 AM
Unknown Object (File)
Thu, Oct 24, 4:35 PM
Unknown Object (File)
Oct 1 2024, 5:00 AM

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 - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 21239
Build 20581: arc lint + arc unit

Event Timeline

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.