Created attachment 168236 [details]
Example console messages and sysctl values
Somewhere along the line, the ixgbe driver started printing an unexpected "ix0: Invalid advertised speed; valid modes are 0x1 through 0x7" at boot time as shown in the attachment. The hardware is a retail Intel X540-T1 card at the latest firmware revision. The two (why two?) sysctls in the attachment are at their default value. The 2.8.3 driver in earlier 10.3 builds didn't do this, so it is probably due to something in the 3.1.13-k import.
The message seems harmless, but should probably be fixed. Note that simply changing the default value of one / both sysctls may not have the desired effect - a quick look in the driver source shows a bunch of potential error messages when trying to select the advertised speed on (for example) fiber ports.
The two sysctls are the global default and the interface specific ones so thats fine.
The error should only be displayed when changing the setting via a sysctl, so if this happens on boot it seems to infer you have an invalid setting in either /boot/loader.conf or /etc/sysctl.conf for this setting.
Created attachment 168271 [details]
As you say, 0 is the default value and that's what my sysctls are set at. I don't change them in either loader.conf or sysctl.conf (and sysctl.conf should not matter anyway as this error is happening at probe time while the kernel is starting up). I am attaching my entire loader.conf.
Correction - I see you did not say that 0 is the default value for those sysctls.
Mine are 0 and I didn't change them, so it would seem that 0 is the default regardless.
Taking a quick look through the code, it seems that ixgbe_set_advertise() is called from 2 places in if_ix.c:
1) ixgbe_sysctl_advertise(), which has a check to see if the value changed and omits the call if it hasn't. So this probably isn't the problem.
2) ixgbe_attach() calls ixgbe_set_advertise() with ixgbe_advertise_speed which is 0 on a system where the default hasn't changed. This unconditionally enters ixgbe_set_advertise() which would seem to trigger the error message.
Created attachment 168276 [details]
Patch to prevent bogus advertised speed warning on boot
Sorry my mistake I was looking at ixl not ixgbe, confusing naming ;-)
I can see the issue now, it can be safely ignored but can you try the attached patch to see if it fixes it for you?
Yes, that fixes it. Thanks!
A commit references this bug:
Date: Wed Mar 16 01:41:55 UTC 2016
New revision: 296922
Prevent invalid ixgbe advertise setting warning
Prevent ixgbe outputting "Invalid advertised speed" warning on boot with
no customisations by moving test from sysctl handler to set handler.
MFC after: 3 days
Sponsored by: Multiplay