Using ethtool utility in Rocky9

Hi,

I used one of the commands as given below.

ethtool -L eth2 combined 2

The outcome is , netlink error: Device or resource busy

Which service I need to down before running ethtool command ?

Please guide me.

Maybe explain what it is you are trying to achieve, rather than a particular command. Most likely itā€™s a command for old distributions, that in newer versions has alternatively functionality that does the same thing. That way, an alternative method can be suggested.

Hi,

I am trying to combine the irq interrupts in to core 2 from all other cores.

I have a cpu with 40 cores. My application read input from network. Hence irq interrupts are distributed through all 40 cores. This i combine in to core 2 and isolate it from user application.it will improve my input output operation.

OK, I see in man ethtool this:

So it seems ethtool still has the functionality, I tried similar command on my Rocky9 install:

root@rocky9:~# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
root@rocky9:~# ethtool -L ens33 combined 2
netlink error: Operation not supported

slightly different result to you. Iā€™m wondering if the option is only possible on certain network cards and yours and mine donā€™t allow configuring that option.

According to this, certain ethtool options can be configured with nmcli, perhaps try that instead? Chapter 30. Configuring ethtool settings in NetworkManager connection profiles | Red Hat Product Documentation

Yes. I agree with your observation.

I made a modification to the command as given below.

nmcli con modify eth2 ethtool combined 2

Error: invalid property ā€˜combinedā€™: ā€˜combinedā€™

Do you have any other recommendations to accommodate the parameter ā€˜combinedā€™?

Thatā€™s because you used an invalid command. Did you read the documentation? In section 30.1 it gave an example on how to use and configure the features. Going by the example given:

I guess you would adapt it to something like:

nmcli con modify eth2 ethtool.feature-combined 2

but since they donā€™t give an explicit example for that, itā€™s just a guess based on the format and the parameters they allow. You may have to google more yourself to find explicit examples where people have attempted to do the same as you.

In fact, if you do man nm-settings-nmcli as also shown in the documentation and search for combined you will see:

ethtool.channels-combined

therefore on that basis:

nmcli con modify eth2 ethtool.channels-combined 2

would most likely be the command.

man nm-settings-nmcli

   ethtool setting
       Ethtool Ethernet Settings.

       Properties:

       ethtool.channels-combined
           Format: integer

           Valid values: 0 - 4294967295

       ethtool.channels-other
           Format: integer

           Valid values: 0 - 4294967295

       ethtool.channels-rx
           Format: integer

           Valid values: 0 - 4294967295

       ethtool.channels-tx
           Format: integer

           Valid values: 0 - 4294967295

as options to choose from.

I tried the command as given below

# nmcli con modify eth2 ethtool.feature-combined 2
Error: invalid property 'feature-combined': 'feature-combined' not among [feature-esp-hw-offload, feature-esp-tx-csum-hw-offload, feature-fcoe-mtu, feature-gro, feature-gso, feature-highdma, feature-hw-tc-offload, feature-l2-fwd-offload, feature-loopback, feature-lro, feature-macsec-hw-offload, feature-ntuple, feature-rx, feature-rxhash, feature-rxvlan, feature-rx-all, feature-rx-fcs, feature-rx-gro-hw, feature-rx-gro-list, feature-rx-udp-gro-forwarding, feature-rx-udp_tunnel-port-offload, feature-rx-vlan-filter, feature-rx-vlan-stag-filter, feature-rx-vlan-stag-hw-parse, feature-sg, feature-tls-hw-record, feature-tls-hw-rx-offload, feature-tls-hw-tx-offload, feature-tso, feature-tx, feature-txvlan, feature-tx-checksum-fcoe-crc, feature-tx-checksum-ipv4, feature-tx-checksum-ipv6, feature-tx-checksum-ip-generic, feature-tx-checksum-sctp, feature-tx-esp-segmentation, feature-tx-fcoe-segmentation, feature-tx-gre-csum-segmentation, feature-tx-gre-segmentation, feature-tx-gso-list, feature-tx-gso-partial, feature-tx-gso-robust, feature-tx-ipxip4-segmentation, feature-tx-ipxip6-segmentation, feature-tx-nocache-copy, feature-tx-scatter-gather, feature-tx-scatter-gather-fraglist, feature-tx-sctp-segmentation, feature-tx-tcp6-segmentation, feature-tx-tcp-ecn-segmentation, feature-tx-tcp-mangleid-segmentation, feature-tx-tcp-segmentation, feature-tx-tunnel-remcsum-segmentation, feature-tx-udp-segmentation, feature-tx-udp_tnl-csum-segmentation, feature-tx-udp_tnl-segmentation, feature-tx-vlan-stag-hw-insert, coalesce-adaptive-rx, coalesce-adaptive-tx, coalesce-pkt-rate-high, coalesce-pkt-rate-low, coalesce-rx-frames, coalesce-rx-frames-irq, coalesce-rx-frames-high, coalesce-rx-frames-low, coalesce-rx-usecs, coalesce-rx-usecs-irq, coalesce-rx-usecs-high, coalesce-rx-usecs-low, coalesce-sample-interval, coalesce-stats-block-usecs, coalesce-tx-frames, coalesce-tx-frames-irq, coalesce-tx-frames-high, coalesce-tx-frames-low, coalesce-tx-usecs, coalesce-tx-usecs-irq, coalesce-tx-usecs-high, coalesce-tx-usecs-low, pause-autoneg, pause-rx, pause-tx, ring-rx, ring-rx-jumbo, ring-rx-mini, ring-tx].

My version of tool is : nmcli tool, version 1.44.0-3.el9
What is your version ?

Also I tried below option

# nmcli con modify eth2 ethtool.channels-combined 2
Error: invalid property 'channels-combined': 'channels-combined' not among [feature-esp-hw-offload, feature-esp-tx-csum-hw-offload, feature-fcoe-mtu, feature-gro, feature-gso, feature-highdma, feature-hw-tc-offload, feature-l2-fwd-offload, feature-loopback, feature-lro, feature-macsec-hw-offload, feature-ntuple, feature-rx, feature-rxhash, feature-rxvlan, feature-rx-all, feature-rx-fcs, feature-rx-gro-hw, feature-rx-gro-list, feature-rx-udp-gro-forwarding, feature-rx-udp_tunnel-port-offload, feature-rx-vlan-filter, feature-rx-vlan-stag-filter, feature-rx-vlan-stag-hw-parse, feature-sg, feature-tls-hw-record, feature-tls-hw-rx-offload, feature-tls-hw-tx-offload, feature-tso, feature-tx, feature-txvlan, feature-tx-checksum-fcoe-crc, feature-tx-checksum-ipv4, feature-tx-checksum-ipv6, feature-tx-checksum-ip-generic, feature-tx-checksum-sctp, feature-tx-esp-segmentation, feature-tx-fcoe-segmentation, feature-tx-gre-csum-segmentation, feature-tx-gre-segmentation, feature-tx-gso-list, feature-tx-gso-partial, feature-tx-gso-robust, feature-tx-ipxip4-segmentation, feature-tx-ipxip6-segmentation, feature-tx-nocache-copy, feature-tx-scatter-gather, feature-tx-scatter-gather-fraglist, feature-tx-sctp-segmentation, feature-tx-tcp6-segmentation, feature-tx-tcp-ecn-segmentation, feature-tx-tcp-mangleid-segmentation, feature-tx-tcp-segmentation, feature-tx-tunnel-remcsum-segmentation, feature-tx-udp-segmentation, feature-tx-udp_tnl-csum-segmentation, feature-tx-udp_tnl-segmentation, feature-tx-vlan-stag-hw-insert, coalesce-adaptive-rx, coalesce-adaptive-tx, coalesce-pkt-rate-high, coalesce-pkt-rate-low, coalesce-rx-frames, coalesce-rx-frames-irq, coalesce-rx-frames-high, coalesce-rx-frames-low, coalesce-rx-usecs, coalesce-rx-usecs-irq, coalesce-rx-usecs-high, coalesce-rx-usecs-low, coalesce-sample-interval, coalesce-stats-block-usecs, coalesce-tx-frames, coalesce-tx-frames-irq, coalesce-tx-frames-high, coalesce-tx-frames-low, coalesce-tx-usecs, coalesce-tx-usecs-irq, coalesce-tx-usecs-high, coalesce-tx-usecs-low, pause-autoneg, pause-rx, pause-tx, ring-rx, ring-rx-jumbo, ring-rx-mini, ring-tx].

One more test I added :

Upgarde the NetworkManager & try

nmcli con modify eth2 ethtool.channels-combined 2

Error: Failed to modify connection 'eth2': failed to update connection: The ifcfg-rh plugin doesn't support property 'ethtool.channels-combined'. If you are modifying an existing connection profile saved in ifcfg-rh format, please migrate the connection to keyfile using 'nmcli connection migrate 3a73717e-65ab-93e8-b518-24f5af32dc0d' or via the Update2() D-Bus API and try again.

How can do this property setup.?

Upstream NetworkManager 1.46 did add:

  • Support configuring ethtool channels property to configure NIC multiqueue

That was the first version for Rocky Linux 9.3. The 9.3 did get at least two (security?) updates.
The Rocky Linux 9.4 had NetworkManager (end hence nmcli) rebased to 1.46, and
The Rocky Linux 9.5 has NetworkManager rebased to 1.48.

Only the latest (9.5 content) of Rocky 9 is supported. Everybody is expected to dnf up to
keep their system up to date.

That explains your initial:

Error: invalid property ā€˜channels-combinedā€™


Upgrade the whole system with dnf up. ā€œCherry-pickingā€ is not supported.


That is a self-explanatory error message, isnā€™t it?

1 Like

Hi All,
Even after using the nmcli command, I am facing an issue.

Here are my steps:

ethtool -l eth3

Channel parameters for eth3:
Pre-set maximums:
RX: 48
TX: 48
Other: 1
Combined: 48
Current hardware settings:
RX: 0
TX: 0
Other: 1
Combined: 48

nmcli conn modify eth3 ethtool.channels-combined 2

ethtool -l eth3
Channel parameters for eth3:
Pre-set maximums:
RX: 48
TX: 48
Other: 1
Combined: 48
Current hardware settings:
RX: 0
TX: 0
Other: 1
Combined: 48

Now combined channel is 48 which is equal to my processor cores.
How can I change it to a value 2.?

Additional info :

ethtool -i eth3

driver: ice
version: 5.14.0-362.8.1.el9_3.x86_64
firmware-version: 4.40 0x8001ba1e 22.5.7
expansion-rom-version:
bus-info: 0000:8b:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

Can you use:

nmcli conn show eth3

instead, since any settings configured with nmcli will be shown there. Stop using ethtool, since it is not being configured with ethtool in the first place. Itā€™s being configured with nmcli.

I slightly disagree on that. The NetworkManager, FirewallD, DNF, etc ā€œdo the workā€ and thus ought to be consistently the method to modify the config. However, it should be ok to query the current status with ethtool, ip, rpm, etc ā€“ as long as one does not get confused by different identifiers.


In other words, one should see a change, which was made with nmcli, with nmcli and ethtool.
If nmcli does not show change in any way, then NM has an issue.
If nmcli does show change in saved config, but not in effective state, then why not/when should it take effect? On reboot?

Good point, I stand corrected :+1: the link here that I referenced previously: Chapter 30. Configuring ethtool settings in NetworkManager connection profiles | Red Hat Product Documentation seems to mention using:

ethtool -k eth3

to verify the settings. One would assume that the OP using ethtool -i eth3 therefore potentially is incorrect. It would be good to try it using the above command instead to see if there is a difference.