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.
Tags
None
Referenced Files
F83176183: D27342.diff
Tue, May 7, 7:39 AM
Unknown Object (File)
Wed, May 1, 8:23 PM
Unknown Object (File)
Wed, May 1, 6:47 AM
Unknown Object (File)
Tue, Apr 30, 8:06 PM
Unknown Object (File)
Tue, Apr 30, 8:03 PM
Unknown Object (File)
Tue, Apr 30, 8:03 PM
Unknown Object (File)
Tue, Apr 30, 8:03 PM
Unknown Object (File)
Tue, Apr 30, 7:43 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
Lint Not Applicable
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.