Page MenuHomeFreeBSD

Detach Rx/Tx/IOV tasks upon iflib device or psuedo device register failure.
ClosedPublic

Authored by stallamr_netapp.com on Nov 23 2020, 5:36 PM.

Details

Summary

Once MSIX interrupt assign is complete, Rx/Tx/IOV tasks gets attach to respective taskqueues. Upon IFDI_ATTACH_POST()
or any failure beyond interrupt assignment, only admin tasks gets detached so far. While I'm here, group taskqueue
detach tasks into single function and use new function instead.

Test Plan

At NetApp, tested with kernel failpoints on physical interfaces. Didnot test psuedo interfaces though.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

sys/net/iflib.c
5088 ↗(On Diff #79907)

This calls iflib_rx_sds_free() on each rxq, so why is it necessary to keep freeing the freelist bitmaps in the loop immediately above?

5167 ↗(On Diff #79907)

Same question as above.

sys/net/iflib.c
5088 ↗(On Diff #79907)

Thanks Mark for pointing this out. I agree. Above loop to free bitmap is not necessary. I will remove the loop and refresh the change.

5167 ↗(On Diff #79907)

Agree. Will remove the loop and refresh the review.

rx bitmap do get free in following function call. Remove explicit free of bitmap yet again.

I think this is ok. I'll give other reviewers a few more days to have a look.

This revision was not accepted when it landed; it landed in state Needs Review.Dec 7 2020, 2:53 PM
This revision was automatically updated to reflect the committed changes.