Page MenuHomeFreeBSD

iflib: Own queue quiescence during power transitions
ClosedPublic

Authored by kbowling on Thu, Sep 3, 4:23 AM.
Tags
None
Referenced Files
F171972760: D59329.diff
Tue, Sep 15, 1:15 AM
F171961639: D59329.diff
Mon, Sep 14, 11:07 PM
F171897119: D59329.id185675.diff
Mon, Sep 14, 10:27 AM
Unknown Object (File)
Sat, Sep 12, 6:48 PM
Unknown Object (File)
Fri, Sep 11, 8:50 PM
Unknown Object (File)
Fri, Sep 11, 6:47 PM
Unknown Object (File)
Fri, Sep 11, 5:56 PM
Unknown Object (File)
Fri, Sep 11, 5:35 PM

Details

Reviewers
gallatin
nick_spun.io
shurd
Group Reviewers
iflib
Restricted Owners Package(Owns No Changed Paths)
Commits
rG2b2cc52236f4: iflib: Own queue quiescence during power transitions
Summary
Perform a terminal datapath stop before suspend and shutdown
callbacks, then drain the private configuration taskqueue before
entering low power.  Track power state independently of queue
ownership and prevent built-in admin, IOV, LED, and media-status
callbacks from accessing a suspended device.

Restore driver-specific state while the datapath remains stopped.
Initialize it exactly once on resume when the interface is
administratively up, and keep an administratively-down interface
stopped.  Roll back the driver when suspend or child suspension fails.

Add ifdi_power_prepare() for policy which must be established before
the terminal stop.  Use it to snapshot ixgbe(4) wake policy and preserve
X550EM PHY ordering, and remove the duplicate stop from aq(4).  Other
driver power-method wiring follows separately.

MFC after:      2 weeks

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Owners added a reviewer: Restricted Owners Package.Thu, Sep 3, 4:23 AM
sys/dev/ixgbe/if_ix.c
4002

What version is this against? As of this am (0abd71f39a5c) ixgbe_setup_low_power_mode() doesn't seem to have a 2nd arg.

<10:06am>flea/gallatin:main>git grep ^ixgbe_setup_low_power_mode
sys/dev/ixgbe/if_ix.c:ixgbe_setup_low_power_mode(if_ctx_t ctx)

sys/dev/ixgbe/if_ix.c
4002

Apologies I had c004384343be in my merge queue pending validation. Please update main past that when you may and this should then apply.

ifdi_power_prepare or whatever lands will also be used in a followup commit to disarm the ixgbe firmware recovery task when the device is suspended.

gallatin added inline comments.
sys/dev/ixgbe/if_ix.c
4002

thanks.. looking at things in the proper order makes a lot more sense

This revision was not accepted when it landed; it landed in state Needs Review.Fri, Sep 11, 8:13 PM
This revision was automatically updated to reflect the committed changes.