Hi,

I am trying to do some benchmarking with my Intel I210 NIC, with the igb
driver. I want to disable IRQ coalescing because I want to see the effects
of injecting traffic into my network. Currently, when I inject traffic,
latency improves, which, I'm guessing, is due to interrupt coalescing on
the receive side.

To get to the point, I just want to disable IRQ coalescing by setting
rx-usecs = 0 (ethtool -C enp1s0 rx-usecs 0) and rx-frames = 1 (ethtool -C
enp1s0 rx-frames 1).
What this does, is generate 1 IRQ per received packet. However, when I do
this (with the latest version of igb (5.13.20)) that, when I checked, seems
to support these operations in igb_ethtool.c in function
igb_set_coalesce(), I get an error:

sudo ethtool -c enp1s0 rx-frames 1
Cannot set device coalesce parameters: Operation not supported

Is this an issue with my HW or driver? The driver code seems to support
this operation, and the Intel I210 datasheet says that it supports DMA
Coalescing.

For reference, here is the output of modinfo igb:

filename:
/lib/modules/5.15.0-76-generic/updates/drivers/net/ethernet/intel/igb/igb.ko
version:        5.13.20
license:        GPL
description:    Intel(R) Gigabit Ethernet Linux Driver
author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>
srcversion:     8AE05E400AE66E94A99DE98
alias:          pci:v00008086d000010D6sv*sd*bc*sc*i*
alias:          pci:v00008086d000010A9sv*sd*bc*sc*i*
alias:          pci:v00008086d000010A7sv*sd*bc*sc*i*
alias:          pci:v00008086d000010E8sv*sd*bc*sc*i*
alias:          pci:v00008086d00001526sv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Dsv*sd*bc*sc*i*
alias:          pci:v00008086d000010E7sv*sd*bc*sc*i*
alias:          pci:v00008086d000010E6sv*sd*bc*sc*i*
alias:          pci:v00008086d00001518sv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Asv*sd*bc*sc*i*
alias:          pci:v00008086d000010C9sv*sd*bc*sc*i*
alias:          pci:v00008086d00000440sv*sd*bc*sc*i*
alias:          pci:v00008086d0000043Csv*sd*bc*sc*i*
alias:          pci:v00008086d0000043Asv*sd*bc*sc*i*
alias:          pci:v00008086d00000438sv*sd*bc*sc*i*
alias:          pci:v00008086d00001516sv*sd*bc*sc*i*
alias:          pci:v00008086d00001511sv*sd*bc*sc*i*
alias:          pci:v00008086d00001510sv*sd*bc*sc*i*
alias:          pci:v00008086d00001527sv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Fsv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Esv*sd*bc*sc*i*
alias:          pci:v00008086d00001524sv*sd*bc*sc*i*
alias:          pci:v00008086d00001523sv*sd*bc*sc*i*
alias:          pci:v00008086d00001522sv*sd*bc*sc*i*
alias:          pci:v00008086d00001521sv*sd*bc*sc*i*
alias:          pci:v00008086d00001539sv*sd*bc*sc*i*
alias:          pci:v00008086d0000157Csv*sd*bc*sc*i*
alias:          pci:v00008086d0000157Bsv*sd*bc*sc*i*
alias:          pci:v00008086d00001538sv*sd*bc*sc*i*
alias:          pci:v00008086d00001537sv*sd*bc*sc*i*
alias:          pci:v00008086d00001536sv*sd*bc*sc*i*
alias:          pci:v00008086d00001533sv*sd*bc*sc*i*
alias:          pci:v00008086d00001F45sv*sd*bc*sc*i*
alias:          pci:v00008086d00001F41sv*sd*bc*sc*i*
alias:          pci:v00008086d00001F40sv*sd*bc*sc*i*
depends:        dca
retpoline:      Y
name:           igb
vermagic:       5.15.0-76-generic SMP mod_unload modversions
parm:           InterruptThrottleRate:Maximum interrupts per second, per
vector, (max 100000), default 3=adaptive (array of int)
parm:           IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X),
default 2 (array of int)
parm:           Node:set the starting node to allocate memory on, default
-1 (array of int)
parm:           LLIPort:Low Latency Interrupt TCP Port (0-65535), default
0=off (array of int)
parm:           LLIPush:Low Latency Interrupt on TCP Push flag (0,1),
default 0=off (array of int)
parm:           LLISize:Low Latency Interrupt on Packet Size (0-1500),
default 0=off (array of int)
parm:           RSS:Number of Receive-Side Scaling Descriptor Queues (0-8),
default 1, 0=number of cpus (array of int)
parm:           VMDQ:Number of Virtual Machine Device Queues: 0-1 =
disable, 2-8 enable, default 0 (array of int)
parm:           max_vfs:Number of Virtual Functions: 0 = disable, 1-7
enable, default 0 (array of int)
parm:           MDD:Malicious Driver Detection (0/1), default 1 = enabled.
Only available when max_vfs is greater than 0 (array of int)
parm:           QueuePairs:Enable Tx/Rx queue pairs for interrupt handling
(0,1), default 1=on (array of int)
parm:           EEE:Enable/disable on parts that support the feature (array
of int)
parm:           DMAC:Disable or set latency for DMA Coalescing ((0=off,
1000-10000(msec), 250, 500 (usec)) (array of int)
parm:           LRO:Large Receive Offload (0,1), default 0=off (array of
int)
parm:           debug:Debug level (0=none, ..., 16=all) (int)

and the output of ethtool -i enp1s0:

driver: igb
version: 5.15.0-76-generic
firmware-version: 3.25, 0x800006eb
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

Thanks,

_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel Ethernet, visit 
https://community.intel.com/t5/Ethernet-Products/bd-p/ethernet-products

Reply via email to