Page MenuHomeFreeBSD

ice: Refresh link status on first initialization
Needs ReviewPublic

Authored by kbowling on Tue, Sep 1, 9:30 AM.
Tags
None
Referenced Files
F171356098: D59300.id185548.diff
Thu, Sep 10, 3:44 PM
F171281759: D59300.diff
Thu, Sep 10, 2:54 AM
F171256049: D59300.id185681.diff
Wed, Sep 9, 9:42 PM
F171243432: D59300.id185681.diff
Wed, Sep 9, 7:19 PM
Unknown Object (File)
Wed, Sep 9, 10:58 AM
Unknown Object (File)
Tue, Sep 8, 11:54 PM
Unknown Object (File)
Tue, Sep 8, 10:47 PM
Unknown Object (File)
Tue, Sep 8, 9:47 PM

Details

Reviewers
kgalazka
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Summary

I'm not sure if there is a timing issue on E835-XXV, I didn't see this on E810. Updating nvm to latest had no impact:
dev.ice.0.fw_version: fw 7.10.2 api 1.7 nvm 2.11 etid 80019290 netlist 0.0.1105-7.59.0.f0781d28 oem 1.4031.0

When link_active_on_if_down keeps the PHY active, attach records
FIRST_INIT_LINK to avoid reapplying the PHY configuration during the
first administrative init.  If the physical link becomes active after
the attach query without a link-status event reaching the driver, the
cached link state remains down.  First init then consumes the flag and
leaves iflib reporting no carrier until another down/up cycle.

Refresh and publish the firmware link status during first init without
restarting autonegotiation.  Keep the attach refresh request distinct
from FIRST_INIT_LINK, which is also used to suppress redundant PHY
configuration after reset recovery.  Rebuild already refreshes and
reports link, so its subsequent iflib init must not publish it again.

On an E835 with an Intel 10GBASE-LR optic, rebooting without this change
left firmware reporting a 10 Gbps link while the first administrative up
reported no carrier; a second down/up recovered it.  With this change,
the first up after reboot reported active immediately.  Three subsequent
down/up cycles kept the physical link active and restored carrier.

MFC after:      2 weeks
Sponsored by:   BBOX.io

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Owners added a reviewer: Restricted Owners Package.Tue, Sep 1, 9:30 AM
kbowling edited the summary of this revision. (Show Details)

Add an attach-only refresh latch instead of overloading. Reset recovery still skips redundant PHY programming without republishing link. Reset preparation clears any obsolete attach refresh.

This is odd. I can reproduce this also on E830 QSFP adapters, which I used quite recently without any link issues. I'm looking into which patch might have caused the regression.

The problem comes from https://reviews.freebsd.org/D58149. I don't know how it slipped through internal testing, but I think I found a root cause. I'll submit a fix for review this week.