]> git.baikalelectronics.ru Git - kernel.git/commit
net:cxgb3: replace tasklets with works
authorÍñigo Huguet <ihuguet@redhat.com>
Thu, 3 Jun 2021 06:34:29 +0000 (08:34 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Jun 2021 21:57:37 +0000 (14:57 -0700)
commitf5a9d6fe22703d949f4fde7cc5ee4a0bf3eb0660
tree1cacef8dc34f05f26af456311d746bcf56c36ce6
parent5453e397e0d3ed2a16b3bd3ebbf374727a568c1f
net:cxgb3: replace tasklets with works

OFLD and CTRL TX queues can be stopped if there is no room in
their DMA rings. If this happens, they're tried to be restarted
later after having made some room in the corresponding ring.

The tasks of restarting these queues were triggered using
tasklets, but they can be replaced for workqueue works, getting
them out of softirq context.

This queues stop/restart probably doesn't happen often and they
can be quite lengthy because they try to send all pending skbs.
Moreover, given that probably the ring is not empty yet, so the
DMA still has work to do, we don't need to be so fast to justify
using tasklets/softirq instead of running in a thread.

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb3/adapter.h
drivers/net/ethernet/chelsio/cxgb3/common.h
drivers/net/ethernet/chelsio/cxgb3/sge.c