On Tue, Jun 18, 2024 at 10:56:42AM +0800, Heng Qi wrote: > The NetDIM library, currently leveraged by an array of NICs, delivers > excellent acceleration benefits. Nevertheless, NICs vary significantly > in their dim profile list prerequisites. > > Specifically, virtio-net backends may present diverse sw or hw device > implementation, making a one-size-fits-all parameter list impractical. > On Alibaba Cloud, the virtio DPU's performance under the default DIM > profile falls short of expectations, partly due to a mismatch in > parameter configuration. > > I also noticed that ice/idpf/ena and other NICs have customized > profilelist or placed some restrictions on dim capabilities. > > Motivated by this, I tried adding new params for "ethtool -C" that provides > a per-device control to modify and access a device's interrupt parameters. > > Usage > ======== > The target NIC is named ethx. > > Assume that ethx only declares support for rx profile setting > (with DIM_PROFILE_RX flag set in profile_flags) and supports modification > of usec and pkt fields. > > 1. Query the currently customized list of the device > > $ ethtool -c ethx > ... > rx-profile: > {.usec = 1, .pkts = 256, .comps = n/a,}, > {.usec = 8, .pkts = 256, .comps = n/a,}, > {.usec = 64, .pkts = 256, .comps = n/a,}, > {.usec = 128, .pkts = 256, .comps = n/a,}, > {.usec = 256, .pkts = 256, .comps = n/a,} > tx-profile: n/a > > 2. Tune > $ ethtool -C ethx rx-profile 1,1,n_2,n,n_3,3,n_4,4,n_n,5,n > "n" means do not modify this field. > $ ethtool -c ethx > ... > rx-profile: > {.usec = 1, .pkts = 1, .comps = n/a,}, > {.usec = 2, .pkts = 256, .comps = n/a,}, > {.usec = 3, .pkts = 3, .comps = n/a,}, > {.usec = 4, .pkts = 4, .comps = n/a,}, > {.usec = 256, .pkts = 5, .comps = n/a,} > tx-profile: n/a > > 3. Hint > If the device does not support some type of customized dim profiles, > the corresponding "n/a" will display. > > If the "n/a" field is being modified, -EOPNOTSUPP will be reported. > > Signed-off-by: Heng Qi <hengqi@xxxxxxxxxxxxxxxxx> Reviewed-by: Simon Horman <horms@xxxxxxxxxx>