FreeBSD 12 sysctl system parameters

Hello.
My system FreeBSD 12
hw.igb.rxd="4096"
hw.igb.txd="4096"
hw.igb.max_interrupt_rate=32000
hw.igb.rx_process_limit=4096

I have a network igb.
The parameters are outdated and no longer exist in the system.
Where can you read about them?
 
The old if_igb(4) driver has been merged into the if_em(4) driver.

Code:
root@hosaka:~ # sysctl -d hw.em
hw.em: EM driver parameters
hw.em.max_interrupt_rate: Maximum interrupts per second
hw.em.eee_setting: Enable Energy Efficient Ethernet
hw.em.rx_process_limit: Maximum number of received packets to process at a time, -1 means unlimited
hw.em.sbp: Show bad packets in promiscuous mode
hw.em.smart_pwr_down: Set to true to leave smart power down enabled on newer adapters
hw.em.rx_abs_int_delay: Default receive interrupt delay limit in usecs
hw.em.tx_abs_int_delay: Default transmit interrupt delay limit in usecs
hw.em.rx_int_delay: Default receive interrupt delay in usecs
hw.em.tx_int_delay: Default transmit interrupt delay in usecs
hw.em.disable_crc_stripping: Disable CRC Stripping
 
Why do you think you need to set them in the first place? Don't tune for the sake of tuning, tune when you're running into limits.
Server under load.
Shows what needs to be specified in loader.conf
Then why can't I see this sysctl hw.em system parameter?
hw.em.rxd
hw.em.txd
 
I don't have an answer, all I know is that these drivers have been merged into one. I suggest asking on the freebsd-net@ mailing list.

Code:
20170109:
        The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
        IFLIB.  If you have a custom kernel configuration that excludes em(4)
        but you use igb(4), you need to re-add em(4) to your custom
        configuration.
 
I don't have an answer, all I know is that these drivers have been merged into one. I suggest asking on the freebsd-net@ mailing list.

Code:
20170109:
        The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
        IFLIB.  If you have a custom kernel configuration that excludes em(4)
        but you use igb(4), you need to re-add em(4) to your custom
        configuration.
I wrote it, but it's still quiet.
 
I also have an igb card and I also am curious.
Not only rxd and txd are not recognized or shown, msix also seems affected.

The discrepancy between man page and what sysctl actually shows/accepts is obvious.
Maybe this justifies a PR?
 
The info here is mostly wrong, so I'll update for posterity's sake.

While the igb and em driver were merged into a single file to accommodate the hokey IFLIB framework, , they're still tuned separately and are really still separate drivers. The reasons for tuning are many; well beyond the scope of this forum. The driver defaults are, in my opinion, misguided, so tuning the queues at least is often desirable. The generic interface makes tuning even more important; a "default" value for 20 very different cards can't possibly be best for all of them. And a 4 core system is very different from a 12 core system in how you allocate network resources. A personal desktop and a busy web server need to be allocated differently.

By default the driver binds cpus to as many queues as you have cores and you may want to reserve some cores for other things. And "spreading" sounds good but isn't always most efficient; steering an 8 lane highway into a single lane creates additional lock contention when you get to certain threshold loads . 1 modern core can easily handle a gigabit connection so it's not like 2005 when you needed to use multiple cores to handle receive.

To tune the IFLIB parameters, put stuff like this in. your loader.conf:

Code:
dev.igb.1.iflib.override_nrxqs=2
dev.igb.1.iflib.override_ntxqs=2
dev.igb.2.iflib.override_nrxqs=2
dev.igb.2.iflib.override_ntxqs=2
 
Back
Top