• Maxim Mikityanskiy's avatar
    net/mlx5e: Sync txq2sq updates with mlx5e_xmit for HTB queues · 17c84cb4
    Maxim Mikityanskiy authored
    This commit makes necessary changes to guarantee that txq2sq remains
    stable while mlx5e_xmit is running. Proper synchronization is added for
    HTB TX queues.
    
    All updates to txq2sq are performed while the corresponding queue is
    disabled (i.e. mlx5e_xmit doesn't run on that queue). smp_wmb after each
    change guarantees that mlx5e_xmit can see the updated value after the
    queue is enabled. Comments explaining this mechanism are added to
    mlx5e_xmit.
    
    When an HTB SQ can be deleted (after deleting an HTB node), synchronize
    with RCU to wait for mlx5e_select_queue to finish and stop selecting
    that queue, before we re-enable it to avoid TX timeout watchdog alarms.
    Signed-off-by: default avatarMaxim Mikityanskiy <maximmi@nvidia.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    17c84cb4
en_tx.c 27.5 KB