[Intel-wired-lan] [PATCH iwl-net] idpf: extend tx watchdog timeout
Nelson, Shannon
shannon.nelson at amd.com
Tue Jun 4 00:33:21 UTC 2024
On 6/3/2024 11:47 AM, Joshua Hay wrote:
>
> There are several reasons for a TX completion to take longer than usual
> to be written back by HW. For example, the completion for a packet that
> misses a rule will have increased latency. The side effect of these
> variable latencies for any given packet is out of order completions. The
> stack sends packet X and Y. If packet X takes longer because of the rule
> miss in the example above, but packet Y hits, it can go on the wire
> immediately. Which also means it can be completed first. The driver
> will then receive a completion for packet Y before packet X. The driver
> will stash the buffers for packet X in a hash table to allow the tx send
> queue descriptors for both packet X and Y to be reused. The driver will
> receive the completion for packet X sometime later and have to search
> the hash table for the associated packet.
>
> The driver cleans packets directly on the ring first, i.e. not out of
> order completions since they are to some extent considered "slow(er)
> path". However, certain workloads can increase the frequency of out of
> order completions thus introducing even more latency into the cleaning
> path. Bump up the timeout value to account for these workloads.
>
> Fixes: 0fe45467a104 ("idpf: add create vport and netdev configuration")
> Reviewed-by: Sridhar Samudrala <sridhar.samudrala at intel.com>
> Signed-off-by: Joshua Hay <joshua.a.hay at intel.com>
> ---
> drivers/net/ethernet/intel/idpf/idpf_lib.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c
> index f1ee5584e8fa..3d4ae2ed9b96 100644
> --- a/drivers/net/ethernet/intel/idpf/idpf_lib.c
> +++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c
> @@ -770,8 +770,8 @@ static int idpf_cfg_netdev(struct idpf_vport *vport)
> else
> netdev->netdev_ops = &idpf_netdev_ops_singleq;
>
> - /* setup watchdog timeout value to be 5 second */
> - netdev->watchdog_timeo = 5 * HZ;
> + /* setup watchdog timeout value to be 30 seconds */
> + netdev->watchdog_timeo = 30 * HZ;
Huh... that's a pretty big number. If it really needs to be that big I
wonder if there's something else that needs attention.
sln
>
> netdev->dev_port = idx;
>
> --
> 2.39.2
>
>
More information about the Intel-wired-lan
mailing list