PSA: Test kernel with Intel fixes is available for testing

Started by newsense, October 13, 2024, 12:34:39 AM

Previous topic - Next topic
For those interested, Franco built a test kernel based on a sizable import of Intel related fixes that recently made it into FreeBSD. You can review the new commits on Github in opnsense/src section.

To install and verify you're on  the new kernel:

# opnsense-update -zkr 24.7.6-intel

Fetching kernel-24.7.6-intel-amd64.txz: ..... done
!!!!!!!!!!!! ATTENTION !!!!!!!!!!!!!!!
! A critical upgrade is in progress. !
! Please do not turn off the system. !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Installing kernel-24.7.6-intel-amd64.txz... done
Please reboot.

# opnsense-shell reboot

root@OPNsense:~ # uname -a
FreeBSD OPNsense.home.arpa 14.1-RELEASE-p5 FreeBSD 14.1-RELEASE-p5 stable/24.7-n267903-51187ea746d SMP amd64



In case of issues you can always boot the old kernel from the boot menu. Snapshots are also available on ZFS - although in this case it may be a bit overkill.


I'm running on this kernel for over 24h without issues, 3 FWs with igc NICs and one APU with igb.

Any feedback welcome, and potential issues will have a chance to be fixed before these patches make it into 24.7.7+

No issues after applying this.  Will run for a few days and report any issues.


Thanks for the early testing! Currently busy with the business release so I haven't been all over this yet.

Can you all also give reference to the Intel drivers you are using? I think this touches every driver so some reference might be good.


Cheers,
Franco

What specific Intel NIC issues are this kernel fix?

I upgraded to it so far; other than the WAN interface, which does not get a public IPv6 address (/128) anymore, so far, so good. 

Using iXL driver with Intel x710..

Here is the abbreviated commit list off git:

6fbe7e4dd14 e1000: Re-add AIM
ca95baff951 netpfil tests: run in parallel
5c0dbb73dd5 iflib: Make iflib_stop() static
7751551389f if_vlan: handle VID conflicts
51187ea746d ixgbe: add reset count field to HW struct
1f9500080f6 ixgbe: increase VF reset timeout
f33b5451eaa ixgbe: add missing QV defines
767371038e7 ixgbe: fix PHY ID for X550
6cd77c97666 ixgbe: fix misleading indentation in ixgbe_phy
4e9b87df887 ixgbe: update ixgbe_phy with ix-3.3.38 changes
1a6466a912a ixgbe: improve Atom C3000 SWFW semaphore acq
33d5bb2e927 ixgbe: remove circular dependency in ixgbe_mbx.h
654abbb71f5 ixgbe: increase DCB BW calculation for MTU
81fe0f394a4 ixgbe: fix fw_recovery_mode callout
eeb0c0b11e6 ixgbe: remove unused function prototypes
3e83bfba1e9 ixgbe: Remove Atom C3000 HIC FW access
c087e7b2eef iflib: Correct indentation according to style(9)
ff29eb0cc4f iflib: Fix compiler warnings
43c6e9c9f1b iflib: Prefer C99's __func__ over GCC's __FUNCTION__
3e0e7b69522 iflib: Many style fixes
47574d67a50 ixgbe: prevent PBA read over eeprom word size
1c2f9ecb475 ixgbe: use primary and block terminology
6885c77664f ixgbe: improve function comments
64d62bb4433 ixgbe: replace implicit fall-through comments
1f5c31409b6 ixgbe: Switch if_sriov read/write back to ixgbe_mbx APIs
00e3c3efac4 ixgbe: update if_sriov with ix-3.3.38 changes
5e3a969e037 ixgbe: update if_sriov to use the new mailbox apis
7ab90af94b8 ixgbe: fix compilation for VF
8ae4b93f5c9 ixgbe: update ixgbe_mbx with ix-3.3.38 changes
aef03eaa67f ixgbe: introduce new mailbox API
be5e1c89e36 ixgbe: correct register names to match datasheet
792d5e06e80 ixgbe: rename VF message type macros
73405b8ffb0 ixv: fix x550 VF link speed reported
1b4494eb64a ixgbe: update if_ix and ixgbe api with ix-3.3.38 changes
b2a392c64f5 ixgbe: update if_bypass to ix-3.3.38
90a1709624f e1000: remove NEEDGIANT from a couple sysctls
f6ce5c29b9c e1000: drop NEEDGIANT from em_sysctl_debug_info use
7ea6e25ab12 e1000: drop NEEDGIANT on em_sysctl_reg_handler uses
0ae5fc2a34c e1000: fix link power down
72d2c5f8472 e1000: Update igb driver version to 2.5.28-fbsd
8e7ea373c8f igc: Add NVM/firmware prints and sysctl
7941470ba5c e1000: Clean up ITR/EITR in preparation for AIM
653e6f0ac29 e1000: Delay safe_pause switch until SI_SUB_CLOCKS
9457b504321 e1000: Add sysctl for igb(4) DMA Coalesce
1af69a3af35 e1000: Handle igb EEE sysctl
38de8de9e60 e1000: Add sysctls for some missing MAC stats
7ceca538aee iflib: Simplify iflib_legacy_setup
82ec23b1ccc e1000: Clean up legacy absolute and packet timers
3ce46d49d19 igc: Remove non-existent legacy absolute and packet timers
f36281617b9 netmap: Make the memory ops function pointer table const
719c7eb93b3 iflib: Use if_alloc_dev() to allocate the ifnet
246cf4bd41b if_enc(4): Make enc_add_hhooks() void


I've uploaded a second one with a couple more changes (the top ones in the list).

# opnsense-update -zkr 24.7.6-intel2


Cheers,
Franco

Franco,

Thanks for the list of fixes..  That is a lot..

All good here on 24.7.6-intel2 kernel, same firewalls as in the original post.

Beautiful!

New & Franco thx so much.

I will test this out today (on N100 DDR5 unit) once I have a free slot and report back.

Regards,
S.
Networking is love. You may hate it, but in the end, you always come back to it.

OPNSense HW
APU2D2 - deceased
N5105 - i226-V | Patriot 2x8G 3200 DDR4 | L 790 512G - VM HA(SOON)
N100   - i226-V | Crucial 16G  4800 DDR5 | S 980 500G - PROD

Seems to work fine here, hardware is I211/igb https://bsd-hardware.info/?probe=85f998d2ab
In theory there is no difference between theory and practice. In practice there is.

Quote from: franco on October 18, 2024, 01:30:50 PM
Here is the abbreviated commit list off git:

6fbe7e4dd14 e1000: Re-add AIM
ca95baff951 netpfil tests: run in parallel
5c0dbb73dd5 iflib: Make iflib_stop() static
7751551389f if_vlan: handle VID conflicts
51187ea746d ixgbe: add reset count field to HW struct
1f9500080f6 ixgbe: increase VF reset timeout
f33b5451eaa ixgbe: add missing QV defines
767371038e7 ixgbe: fix PHY ID for X550
6cd77c97666 ixgbe: fix misleading indentation in ixgbe_phy
4e9b87df887 ixgbe: update ixgbe_phy with ix-3.3.38 changes
1a6466a912a ixgbe: improve Atom C3000 SWFW semaphore acq
33d5bb2e927 ixgbe: remove circular dependency in ixgbe_mbx.h
654abbb71f5 ixgbe: increase DCB BW calculation for MTU
81fe0f394a4 ixgbe: fix fw_recovery_mode callout
eeb0c0b11e6 ixgbe: remove unused function prototypes
3e83bfba1e9 ixgbe: Remove Atom C3000 HIC FW access
c087e7b2eef iflib: Correct indentation according to style(9)
ff29eb0cc4f iflib: Fix compiler warnings
43c6e9c9f1b iflib: Prefer C99's __func__ over GCC's __FUNCTION__
3e0e7b69522 iflib: Many style fixes
47574d67a50 ixgbe: prevent PBA read over eeprom word size
1c2f9ecb475 ixgbe: use primary and block terminology
6885c77664f ixgbe: improve function comments
64d62bb4433 ixgbe: replace implicit fall-through comments
1f5c31409b6 ixgbe: Switch if_sriov read/write back to ixgbe_mbx APIs
00e3c3efac4 ixgbe: update if_sriov with ix-3.3.38 changes
5e3a969e037 ixgbe: update if_sriov to use the new mailbox apis
7ab90af94b8 ixgbe: fix compilation for VF
8ae4b93f5c9 ixgbe: update ixgbe_mbx with ix-3.3.38 changes
aef03eaa67f ixgbe: introduce new mailbox API
be5e1c89e36 ixgbe: correct register names to match datasheet
792d5e06e80 ixgbe: rename VF message type macros
73405b8ffb0 ixv: fix x550 VF link speed reported
1b4494eb64a ixgbe: update if_ix and ixgbe api with ix-3.3.38 changes
b2a392c64f5 ixgbe: update if_bypass to ix-3.3.38
90a1709624f e1000: remove NEEDGIANT from a couple sysctls
f6ce5c29b9c e1000: drop NEEDGIANT from em_sysctl_debug_info use
7ea6e25ab12 e1000: drop NEEDGIANT on em_sysctl_reg_handler uses
0ae5fc2a34c e1000: fix link power down
72d2c5f8472 e1000: Update igb driver version to 2.5.28-fbsd
8e7ea373c8f igc: Add NVM/firmware prints and sysctl
7941470ba5c e1000: Clean up ITR/EITR in preparation for AIM
653e6f0ac29 e1000: Delay safe_pause switch until SI_SUB_CLOCKS
9457b504321 e1000: Add sysctl for igb(4) DMA Coalesce
1af69a3af35 e1000: Handle igb EEE sysctl
38de8de9e60 e1000: Add sysctls for some missing MAC stats
7ceca538aee iflib: Simplify iflib_legacy_setup
82ec23b1ccc e1000: Clean up legacy absolute and packet timers
3ce46d49d19 igc: Remove non-existent legacy absolute and packet timers
f36281617b9 netmap: Make the memory ops function pointer table const
719c7eb93b3 iflib: Use if_alloc_dev() to allocate the ifnet
246cf4bd41b if_enc(4): Make enc_add_hhooks() void


I've uploaded a second one with a couple more changes (the top ones in the list).

# opnsense-update -zkr 24.7.6-intel2


As far as I can see most of the changes are related to ixgbe ( 10 Gigabit ) so I wonder what benefits they bring to other interfaces.

Went with the upgrade Kernel intel2,
Installation went without problems, device booted without problems.

All looks so far good on my Prod device:
N100   - i226-V | Crucial 16G  4800 DDR5 | S 980 500G

Regards,
S.
Networking is love. You may hate it, but in the end, you always come back to it.

OPNSense HW
APU2D2 - deceased
N5105 - i226-V | Patriot 2x8G 3200 DDR4 | L 790 512G - VM HA(SOON)
N100   - i226-V | Crucial 16G  4800 DDR5 | S 980 500G - PROD

Thanks for testing so far. Looks quite ok for the moment, but for extra testing we will skip kernel updates in 24.7.7 this week so this batch will likely land in 243.7.8.


Cheers,
Franco

Quote from: franco on October 21, 2024, 09:09:20 AM
Thanks for testing so far. Looks quite ok for the moment, but for extra testing we will skip kernel updates in 24.7.7 this week so this batch will likely land in 243.7.8.


219 more years for the kernel update.   =)     I have time (j/k).