PSA: Test kernel with Intel fixes is available for testing

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

Previous topic - Next topic
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.


Cheers,
Franco

Upgraded to 24.7.7, will I get into trouble to install the kernel patch on top of 24.7.7?

No trouble at all, 24.7.7 has no new kernel.


For those already on the 24.7.6-intel2 kernel there are two options:

a) Install 24.7.7 which will revert your kernel to 24.7.6

b) Temporary lock the kernel in the GUI until 24.7.8 is available, so you can upgrade to 24.7.7 without issues. Don't forget to unlock before upgrading to 24.7.8 though

New kernel

Quote from: 42bf31316a551230f13e247dba5cb11e8e1b06e8
igc: Add AIM

igc is derived from igb and has never had an AIM implementation. The
same algorithm from e1000 is appropriate here.

Upon more detailed study of the Linux driver which has a newer AIM
implementation, it finally became clear to me this is actually a
holdoff timer and not an interrupt limit as it is conventionally
(statically) programmed and displayed as an interrupt rate. The data
sheets also make this somewhat clear.

Thus, AIM accomplishes two beneficial things for a wide variety of
workloads[1]:

1. At low throughput/packet rates, it will significantly lower latency
(by counter-intuitively "increasing" the interrupt rate.. better
thought of as decreasing the holdoff timer because you will modulate
down before coming anywhere near these interrupt rates).
2. At bulk data rates, it is tuned to achieve a lower interrupt rate
(by increasing the holdoff timer) than the current static 8000/s. This
decreases processing overhead and yields more headroom for other work
such as packet filters or userland.

For a single NIC this might be worth a few sys% on common CPUs, but may
be meaningful when multiplied such as if_lagg, if_bridge and forwarding
setups.

The AIM algorithm was re-introduced from the older igb or out of tree
driver, and then modernized with permission to use Intel code from other
drivers.

[1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf

https://github.com/opnsense/src/commit/42bf31316a551230f13e247dba5cb11e8e1b06e8


# opnsense-update -zkr 24.7.6-intel3
# opnsense-shell reboot



Quote from: newsense on October 24, 2024, 02:33:35 PM
New kernel

Quote from: 42bf31316a551230f13e247dba5cb11e8e1b06e8
igc: Add AIM

igc is derived from igb and has never had an AIM implementation. The
same algorithm from e1000 is appropriate here.

Upon more detailed study of the Linux driver which has a newer AIM
implementation, it finally became clear to me this is actually a
holdoff timer and not an interrupt limit as it is conventionally
(statically) programmed and displayed as an interrupt rate. The data
sheets also make this somewhat clear.

Thus, AIM accomplishes two beneficial things for a wide variety of
workloads[1]:

1. At low throughput/packet rates, it will significantly lower latency
(by counter-intuitively "increasing" the interrupt rate.. better
thought of as decreasing the holdoff timer because you will modulate
down before coming anywhere near these interrupt rates).
2. At bulk data rates, it is tuned to achieve a lower interrupt rate
(by increasing the holdoff timer) than the current static 8000/s. This
decreases processing overhead and yields more headroom for other work
such as packet filters or userland.

For a single NIC this might be worth a few sys% on common CPUs, but may
be meaningful when multiplied such as if_lagg, if_bridge and forwarding
setups.

The AIM algorithm was re-introduced from the older igb or out of tree
driver, and then modernized with permission to use Intel code from other
drivers.

[1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf

https://github.com/opnsense/src/commit/42bf31316a551230f13e247dba5cb11e8e1b06e8


# opnsense-update -zkr 24.7.6-intel3
# opnsense-shell reboot


Alright this looks juicy!

New were you able already see the benefits on the igc based NIC such as i225 i226?

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

Things are rather quiet for now on the two FW I got to reboot, a bit hard to tell since they're only up for ~90 minutes

Still thanks for the reply.

I am currently unable to install/reboot my unit. But once I can I will go for that kernel.

Personally my setup uses LAGGs so I am looking for this.

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

October 25, 2024, 12:38:19 AM #21 Last Edit: October 25, 2024, 01:45:34 AM by nghappiness
Quote from: newsense on October 24, 2024, 01:58:21 AM
No trouble at all, 24.7.7 has no new kernel.


For those already on the 24.7.6-intel2 kernel there are two options:

a) Install 24.7.7 which will revert your kernel to 24.7.6

b) Temporary lock the kernel in the GUI until 24.7.8 is available, so you can upgrade to 24.7.7 without issues. Don't forget to unlock before upgrading to 24.7.8 though

Thanks!  Applied intel3 patch on top of 24.7.7.   so far so good..   Intel x710-DA2.

I seem to be having issues with the intel3 kernel with PPPoE and DHCPv6 on WAN. Very similar to the problem discussed a little while ago with dhcp6c. Reverting to the intel2 kernel and restarting seems to consistently fix the issue. To re-iterate, WAN receives an IPv6 address but not a prefix. It seems weird since I use an igb interface, and most of the changes regarding that were already present in intel2. Happy to provide more info if needed.

Edit: Clicking apply in the interface settings seems to work, it's just after boot up that it is not picked up. Will try to narrow it down more.

Edit 2: Seems like an ISP issue, just something to keep an eye on.

New kernel today


# opnsense-update -zkr 24.7.6-intel4
# opnsense-shell reboot

intel4 will probably be the state of the final 24.7.8 later this week. All testing is welcome.


Cheers,
Franco

Running Intel4 after running Intel3 for 1.5 weeks.
No issues so far!

Same here, no issues with intel3.

Intel4 running on 3/4 FWs already and all is fine.

As per special request the "intel5" kernel contains temporary test patches for e1000/igb:

https://reviews.freebsd.org/D47336
https://reviews.freebsd.org/D47337

# opnsense-update -zkr 24.7.6-intel5


Cheers,
Franco

intel5 running, no issues that I can see so far. Mellanox (igb)

Quote from: franco on November 05, 2024, 11:54:31 AM
# opnsense-update -zkr 24.7.6-intel5

installed intel5 running with Intel x710 ixl driver.