Page MenuHomeFreeBSD

iflib: Own queue quiescence during power transitions
ClosedPublic

Authored by kbowling on Sep 3 2026, 4:23 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Oct 4, 3:09 AM
Unknown Object (File)
Fri, Oct 2, 8:39 PM
Unknown Object (File)
Thu, Oct 1, 3:35 AM
Unknown Object (File)
Tue, Sep 29, 6:10 PM
Unknown Object (File)
Tue, Sep 29, 6:09 PM
Unknown Object (File)
Tue, Sep 29, 4:07 PM
Unknown Object (File)
Fri, Sep 25, 10:14 PM
Unknown Object (File)
Wed, Sep 23, 10:46 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

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a reviewer: Restricted Owners Package.Sep 3 2026, 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.