Page MenuHomeFreeBSD

ice: Refresh link status on first initialization
AbandonedPublic

Authored by kbowling on Tue, Sep 1, 9:30 AM.
Tags
None
Referenced Files
F172563294: D59300.id.diff
Sat, Sep 19, 7:17 AM
F172556625: D59300.id185548.diff
Sat, Sep 19, 6:06 AM
Unknown Object (File)
Wed, Sep 16, 5:24 AM
Unknown Object (File)
Sun, Sep 13, 12:55 PM
Unknown Object (File)
Sat, Sep 12, 11:05 PM
Unknown Object (File)
Sat, Sep 12, 9:45 PM
Unknown Object (File)
Sat, Sep 12, 6:41 PM
Unknown Object (File)
Sat, Sep 12, 8:23 AM

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.