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 <[email protected]>
Reviewed-by: Simon Horman <[email protected]>