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