• Heng Qi's avatar
    ethtool: provide customized dim profile management · f750dfe8
    Heng Qi authored
    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: default avatarHeng Qi <hengqi@linux.alibaba.com>
    Reviewed-by: default avatarSimon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20240621101353.107425-4-hengqi@linux.alibaba.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    f750dfe8
coalesce.c 22.9 KB