summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/nvidia
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2017-02-10 04:27:58 -0800
committerDavid S. Miller <davem@davemloft.net>2017-02-17 10:55:22 -0500
commit01f0f4253469e1b1e80bc84ae64728c294534836 (patch)
tree04d19fb652370947799509fce5e87668e5835c98 /drivers/net/ethernet/nvidia
parent99d5ceeea5120dd3ac2f879f4083697b70a1c89f (diff)
downloadlinux-01f0f4253469e1b1e80bc84ae64728c294534836.tar.bz2
mlx4: do not fire tasklet unless necessary
All rx and rx netdev interrupts are handled by respectively by mlx4_en_rx_irq() and mlx4_en_tx_irq() which simply schedule a NAPI. But mlx4_eq_int() also fires a tasklet to service all items that were queued via mlx4_add_cq_to_tasklet(), but this handler was not called unless user cqe was handled. This is very confusing, as "mpstat -I SCPU ..." show huge number of tasklet invocations. This patch saves this overhead, by carefully firing the tasklet directly from mlx4_add_cq_to_tasklet(), removing four atomic operations per IRQ. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Tariq Toukan <tariqt@mellanox.com> Cc: Saeed Mahameed <saeedm@mellanox.com> Acked-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/nvidia')
0 files changed, 0 insertions, 0 deletions