1
Hardware and Performance / Re: Intel i225/i226 2.5G NIC Information/Issue Tracking Thread
« on: February 14, 2024, 02:55:09 am »
Hello All.
This is my first post on the forums and I am wondering if anyone else has noticed this. I just converted to OPNSense this last weekend and so far seems to be alright except for some throughput issues. I am on a FTTH connection at 1Gbps and routinely only pull around 350-400Mbps (speedtest.net and iperf3 public servers). My current opnsense setup is as follows:
Intel i3-530 @ 2.93GHz
Intel H55 Chipset
8GB RAM
On-board Gigabit NIC (em0/WAN)
Intel I225-V 4 Port (igc0-3)
OPNSense 24.1.1
I have read a lot on the previous issues that have popped up with this controller since it was baked into FreeBSD and I have been researching kernel tunables to try and increase throughput. I have noticed in my pursuit that it seems like opnsense is not loading the igc driver. When I run kldstat, I am not seeing a module loaded for the card but somehow the card is still identified:
When I run 'pciconf -a igc0', it only shows that it is attached and no driver information. Am I missing something here? I know that the freebsd man page for IGC4 says that the driver was not implemented until 14.0, but how is this card working under freebsd 13.2 base? The reason I am asking about this is that I found a driver pack that references the I225-V card that was updated on 12/23/2023 here (https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html) and was wondering if maybe this could be helpful to alleviate the rampant issues with this controller. Other reason that I am curious is because I found this paper "Tuning FreeBSD for routing and firewalling" (https://papers.freebsd.org/2018/asiabsdcon/cochard-tuning_freebsd_for_routing_and_firewalling.files/cochard-tuning_freebsd_for_routing_and_firewalling-paper.pdf referenced in another post under this forum and it makes mention of setting the receive process limit to unlimited on Intel controllers; however, 'sysctl -a | grep rx_process_limit' only returns an oid of "hw.vtnet.rx_process_limit: 1024".
Am I missing something on this whole thing?
This is my first post on the forums and I am wondering if anyone else has noticed this. I just converted to OPNSense this last weekend and so far seems to be alright except for some throughput issues. I am on a FTTH connection at 1Gbps and routinely only pull around 350-400Mbps (speedtest.net and iperf3 public servers). My current opnsense setup is as follows:
Intel i3-530 @ 2.93GHz
Intel H55 Chipset
8GB RAM
On-board Gigabit NIC (em0/WAN)
Intel I225-V 4 Port (igc0-3)
OPNSense 24.1.1
I have read a lot on the previous issues that have popped up with this controller since it was baked into FreeBSD and I have been researching kernel tunables to try and increase throughput. I have noticed in my pursuit that it seems like opnsense is not loading the igc driver. When I run kldstat, I am not seeing a module loaded for the card but somehow the card is still identified:
Code: [Select]
# kldstat
Id Refs Address Size Name
1 46 0xffffffff80200000 216c2e0 kernel
2 1 0xffffffff8236d000 3b18 pflog.ko
3 3 0xffffffff82371000 78aa0 pf.ko
4 1 0xffffffff823ea000 aa70 if_gre.ko
5 1 0xffffffff823f5000 16148 if_lagg.ko
6 2 0xffffffff8240c000 3538 if_infiniband.ko
7 1 0xffffffff82410000 e8f8 if_bridge.ko
8 2 0xffffffff8241f000 8958 bridgestp.ko
9 1 0xffffffff82428000 f4c8 pfsync.ko
10 1 0xffffffff82438000 4b58 if_enc.ko
11 1 0xffffffff8243e000 f858 carp.ko
12 1 0xffffffff828e5000 3250 ichsmb.ko
13 1 0xffffffff828e9000 2180 smbus.ko
14 1 0xffffffff828ec000 4700 nullfs.ko
15 2 0xffffffff828f1000 27198 ipfw.ko
16 1 0xffffffff82919000 12520 dummynet.ko
17 1 0xffffffff8292c000 39c0 ng_socket.ko
18 1 0xffffffff82930000 aac8 netgraph.ko
Code: [Select]
# sysctl -a | grep -E 'dev.igc.*.%desc'
dev.igc.3.%desc: Intel(R) Ethernet Controller I225-V
dev.igc.2.%desc: Intel(R) Ethernet Controller I225-V
dev.igc.1.%desc: Intel(R) Ethernet Controller I225-V
dev.igc.0.%desc: Intel(R) Ethernet Controller I225-V
Code: [Select]
# pciconf -llv igc0
drv selector class rev hdr vendor device subven subdev
igc0@pci0:3:0:0: 020000 03 00 8086 15f3 8086 0000
vendor = 'Intel Corporation'
device = 'Ethernet Controller I225-V'
class = network
subclass = ethernet
When I run 'pciconf -a igc0', it only shows that it is attached and no driver information. Am I missing something here? I know that the freebsd man page for IGC4 says that the driver was not implemented until 14.0, but how is this card working under freebsd 13.2 base? The reason I am asking about this is that I found a driver pack that references the I225-V card that was updated on 12/23/2023 here (https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html) and was wondering if maybe this could be helpful to alleviate the rampant issues with this controller. Other reason that I am curious is because I found this paper "Tuning FreeBSD for routing and firewalling" (https://papers.freebsd.org/2018/asiabsdcon/cochard-tuning_freebsd_for_routing_and_firewalling.files/cochard-tuning_freebsd_for_routing_and_firewalling-paper.pdf referenced in another post under this forum and it makes mention of setting the receive process limit to unlimited on Intel controllers; however, 'sysctl -a | grep rx_process_limit' only returns an oid of "hw.vtnet.rx_process_limit: 1024".
Am I missing something on this whole thing?