Re: missing hw.em.msix support in FreeBSD 14.0-CURRENT?

From: Yuri <yuri_at_aetern.org>
Date: Sun, 07 May 2023 20:18:22 UTC
Cheng Cui wrote:
> Hello,
> 
> I am using this em(4) driver for some tests. According to the man page
> below, there should be a "hw.em.msix" sysctl to enable/disable MSI-X
> style interrupts. But why is it missing in my system below?
> https://man.freebsd.org/cgi/man.cgi?em(4)
> <https://man.freebsd.org/cgi/man.cgi?em(4)>
> 
> root@s1:~ # dmesg | egrep "8254"
> Timecounter "i8254" frequency 1193182 Hz quality 0
> Event timer "i8254" frequency 1193182 Hz quality 100
> em0: <Intel(R) Legacy PRO/1000 MT 82541GI> port 0xdcc0-0xdcff mem
> 0xdfae0000-0xdfafffff irq 64 at device 7.0 on pci6
> em1: <Intel(R) Legacy PRO/1000 MT 82541GI> port 0xccc0-0xccff mem
> 0xdf8e0000-0xdf8fffff irq 65 at device 8.0 on pci7
> em2: <Intel(R) Legacy PRO/1000 MT 82546EB (Copper)> port 0xbcc0-0xbcff
> mem 0xdf5e0000-0xdf5fffff irq 106 at device 4.0 on pci9
> em3: <Intel(R) Legacy PRO/1000 MT 82546EB (Copper)> port 0xbc80-0xbcbf
> mem 0xdf5c0000-0xdf5dffff irq 107 at device 4.1 on pci9
> em4: <Intel(R) Legacy PRO/1000 MT 82546EB (Copper)> port 0xacc0-0xacff
> mem 0xdf3e0000-0xdf3fffff irq 101 at device 3.0 on pci10
> em5: <Intel(R) Legacy PRO/1000 MT 82546EB (Copper)> port 0xac80-0xacbf
> mem 0xdf3c0000-0xdf3dffff irq 102 at device 3.1 on pci10
> 
> root@s1:~ # ifconfig em5
> em5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
> ether 00:04:23:b7:1e:1d
> inet 10.1.1.2 netmask 0xffffff00 broadcast 10.1.1.255
> media: Ethernet 1000baseT <full-duplex>
> status: active
> nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> 
> root@s1:~ # sysctl hw.em
> hw.em.max_interrupt_rate: 8000
> hw.em.eee_setting: 1
> hw.em.rx_process_limit: 100
> hw.em.sbp: 0
> hw.em.smart_pwr_down: 0
> hw.em.rx_abs_int_delay: 66
> hw.em.tx_abs_int_delay: 66
> hw.em.rx_int_delay: 0
> hw.em.tx_int_delay: 66
> hw.em.disable_crc_stripping: 0
> root@s1:~ #

As if_em was converted to iflib, I guess the related sysctl would now be
dev.em.0.iflib.disable_msix (I could be wrong, don't have h/w to check).