]> 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)
commit105518082b23c2330165e7d23739f63fc04e88db
tree1cacef8dc34f05f26af456311d746bcf56c36ce6
parentf4ae5d70b015acbeb2a8c99d46d40c2b48cf434c
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