• Eran Ben Elisha's avatar
    net/mlx5e: Poll event queue upon TX timeout before performing full channels recovery · 7ca560b5
    Eran Ben Elisha authored
    Up until this patch, on every TX timeout we would try to do channels
    recovery.  However, in case of a lost interrupt for an EQ, the channel
    associated to it cannot be recovered if reopened as it would never get
    another interrupt on sent/received traffic, and eventually ends up with
    another TX timeout (Restarting the EQ is not part of channel recovery).
    
    This patch adds a mechanism for explicitly polling EQ in case of a TX
    timeout in order to recover from a lost interrupt. If this is not the
    case (no pending EQEs), perform a channels full recovery as usual.
    
    Once a lost EQE is recovered, it triggers the NAPI to run and handle all
    pending completions. This will free some budget in the bql (via calling
    netdev_tx_completed_queue) or by clearing pending TXWQEs and waking up
    the queue.  One of the above actions will move the queue to be ready for
    transmit again.
    Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    7ca560b5
mlx5_core.h 7.49 KB