Message ID | 20240621050525.3720069-1-allen.lkml@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | ethernet: Convert from tasklet to BH workqueue | expand |
On Thu, 20 Jun 2024 22:05:10 -0700 Allen Pais <allen.lkml@gmail.com> wrote: > The only generic interface to execute asynchronously in the BH context is > tasklet; however, it's marked deprecated and has some design flaws. To > replace tasklets, BH workqueue support was recently added. A BH workqueue > behaves similarly to regular workqueues except that the queued work items > are executed in the BH context. > > This patch converts a few drivers in drivers/ethernet/* from tasklet > to BH workqueue. The next set will be sent out after the next -rc is > out. > > This series is based on > commit a6ec08beec9e ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net") > > First version converting all the drivers can be found at: > https://lore.kernel.org/all/20240507190111.16710 > -2-apais@linux.microsoft.com/ > > > Allen Pais (15): > net: alteon: Convert tasklet API to new bottom half workqueue > mechanism > net: xgbe: Convert tasklet API to new bottom half workqueue mechanism > net: cnic: Convert tasklet API to new bottom half workqueue mechanism > net: macb: Convert tasklet API to new bottom half workqueue mechanism > net: cavium/liquidio: Convert tasklet API to new bottom half workqueue > mechanism > net: octeon: Convert tasklet API to new bottom half workqueue > mechanism > net: thunderx: Convert tasklet API to new bottom half workqueue > mechanism > net: chelsio: Convert tasklet API to new bottom half workqueue > mechanism > net: sundance: Convert tasklet API to new bottom half workqueue > mechanism > net: hinic: Convert tasklet API to new bottom half workqueue mechanism > net: ehea: Convert tasklet API to new bottom half workqueue mechanism > net: ibmvnic: Convert tasklet API to new bottom half workqueue > mechanism > net: jme: Convert tasklet API to new bottom half workqueue mechanism > net: marvell: Convert tasklet API to new bottom half workqueue > mechanism > net: mtk-wed: Convert tasklet API to new bottom half workqueue > mechanism > > drivers/net/ethernet/alteon/acenic.c | 26 +++---- > drivers/net/ethernet/alteon/acenic.h | 8 +-- > drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 30 ++++---- > drivers/net/ethernet/amd/xgbe/xgbe-i2c.c | 16 ++--- > drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 16 ++--- > drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 4 +- > drivers/net/ethernet/amd/xgbe/xgbe.h | 10 +-- > drivers/net/ethernet/broadcom/cnic.c | 19 ++--- > drivers/net/ethernet/broadcom/cnic.h | 2 +- > drivers/net/ethernet/cadence/macb.h | 3 +- > drivers/net/ethernet/cadence/macb_main.c | 10 +-- > .../net/ethernet/cavium/liquidio/lio_core.c | 4 +- > .../net/ethernet/cavium/liquidio/lio_main.c | 24 +++---- > .../ethernet/cavium/liquidio/lio_vf_main.c | 10 +-- > .../ethernet/cavium/liquidio/octeon_droq.c | 4 +- > .../ethernet/cavium/liquidio/octeon_main.h | 4 +- > .../net/ethernet/cavium/octeon/octeon_mgmt.c | 13 ++-- > drivers/net/ethernet/cavium/thunder/nic.h | 5 +- > .../net/ethernet/cavium/thunder/nicvf_main.c | 24 +++---- > .../ethernet/cavium/thunder/nicvf_queues.c | 4 +- > .../ethernet/cavium/thunder/nicvf_queues.h | 2 +- > drivers/net/ethernet/chelsio/cxgb/sge.c | 19 ++--- > drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 9 +-- > .../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- > .../ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c | 4 +- > .../net/ethernet/chelsio/cxgb4/cxgb4_uld.c | 2 +- > drivers/net/ethernet/chelsio/cxgb4/sge.c | 40 +++++------ > drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 6 +- > drivers/net/ethernet/dlink/sundance.c | 41 +++++------ > .../net/ethernet/huawei/hinic/hinic_hw_cmdq.c | 2 +- > .../net/ethernet/huawei/hinic/hinic_hw_eqs.c | 17 +++-- > .../net/ethernet/huawei/hinic/hinic_hw_eqs.h | 2 +- > drivers/net/ethernet/ibm/ehea/ehea.h | 3 +- > drivers/net/ethernet/ibm/ehea/ehea_main.c | 14 ++-- > drivers/net/ethernet/ibm/ibmvnic.c | 24 +++---- > drivers/net/ethernet/ibm/ibmvnic.h | 2 +- > drivers/net/ethernet/jme.c | 72 +++++++++---------- > drivers/net/ethernet/jme.h | 8 +-- > .../net/ethernet/marvell/mvpp2/mvpp2_main.c | 4 +- > drivers/net/ethernet/marvell/skge.c | 12 ++-- > drivers/net/ethernet/marvell/skge.h | 3 +- > drivers/net/ethernet/mediatek/mtk_wed_wo.c | 12 ++-- > drivers/net/ethernet/mediatek/mtk_wed_wo.h | 3 +- > 43 files changed, 273 insertions(+), 266 deletions(-) > This should also go to netdev@vger.kernel.org
> > > The only generic interface to execute asynchronously in the BH context is > > tasklet; however, it's marked deprecated and has some design flaws. To > > replace tasklets, BH workqueue support was recently added. A BH workqueue > > behaves similarly to regular workqueues except that the queued work items > > are executed in the BH context. > > > > This patch converts a few drivers in drivers/ethernet/* from tasklet > > to BH workqueue. The next set will be sent out after the next -rc is > > out. > > > > This series is based on > > commit a6ec08beec9e ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net") > > > > First version converting all the drivers can be found at: > > https://lore.kernel.org/all/20240507190111.16710 > > -2-apais@linux.microsoft.com/ > > > > > > Allen Pais (15): > > net: alteon: Convert tasklet API to new bottom half workqueue > > mechanism > > net: xgbe: Convert tasklet API to new bottom half workqueue mechanism > > net: cnic: Convert tasklet API to new bottom half workqueue mechanism > > net: macb: Convert tasklet API to new bottom half workqueue mechanism > > net: cavium/liquidio: Convert tasklet API to new bottom half workqueue > > mechanism > > net: octeon: Convert tasklet API to new bottom half workqueue > > mechanism > > net: thunderx: Convert tasklet API to new bottom half workqueue > > mechanism > > net: chelsio: Convert tasklet API to new bottom half workqueue > > mechanism > > net: sundance: Convert tasklet API to new bottom half workqueue > > mechanism > > net: hinic: Convert tasklet API to new bottom half workqueue mechanism > > net: ehea: Convert tasklet API to new bottom half workqueue mechanism > > net: ibmvnic: Convert tasklet API to new bottom half workqueue > > mechanism > > net: jme: Convert tasklet API to new bottom half workqueue mechanism > > net: marvell: Convert tasklet API to new bottom half workqueue > > mechanism > > net: mtk-wed: Convert tasklet API to new bottom half workqueue > > mechanism > > > > drivers/net/ethernet/alteon/acenic.c | 26 +++---- > > drivers/net/ethernet/alteon/acenic.h | 8 +-- > > drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 30 ++++---- > > drivers/net/ethernet/amd/xgbe/xgbe-i2c.c | 16 ++--- > > drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 16 ++--- > > drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 4 +- > > drivers/net/ethernet/amd/xgbe/xgbe.h | 10 +-- > > drivers/net/ethernet/broadcom/cnic.c | 19 ++--- > > drivers/net/ethernet/broadcom/cnic.h | 2 +- > > drivers/net/ethernet/cadence/macb.h | 3 +- > > drivers/net/ethernet/cadence/macb_main.c | 10 +-- > > .../net/ethernet/cavium/liquidio/lio_core.c | 4 +- > > .../net/ethernet/cavium/liquidio/lio_main.c | 24 +++---- > > .../ethernet/cavium/liquidio/lio_vf_main.c | 10 +-- > > .../ethernet/cavium/liquidio/octeon_droq.c | 4 +- > > .../ethernet/cavium/liquidio/octeon_main.h | 4 +- > > .../net/ethernet/cavium/octeon/octeon_mgmt.c | 13 ++-- > > drivers/net/ethernet/cavium/thunder/nic.h | 5 +- > > .../net/ethernet/cavium/thunder/nicvf_main.c | 24 +++---- > > .../ethernet/cavium/thunder/nicvf_queues.c | 4 +- > > .../ethernet/cavium/thunder/nicvf_queues.h | 2 +- > > drivers/net/ethernet/chelsio/cxgb/sge.c | 19 ++--- > > drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 9 +-- > > .../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- > > .../ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c | 4 +- > > .../net/ethernet/chelsio/cxgb4/cxgb4_uld.c | 2 +- > > drivers/net/ethernet/chelsio/cxgb4/sge.c | 40 +++++------ > > drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 6 +- > > drivers/net/ethernet/dlink/sundance.c | 41 +++++------ > > .../net/ethernet/huawei/hinic/hinic_hw_cmdq.c | 2 +- > > .../net/ethernet/huawei/hinic/hinic_hw_eqs.c | 17 +++-- > > .../net/ethernet/huawei/hinic/hinic_hw_eqs.h | 2 +- > > drivers/net/ethernet/ibm/ehea/ehea.h | 3 +- > > drivers/net/ethernet/ibm/ehea/ehea_main.c | 14 ++-- > > drivers/net/ethernet/ibm/ibmvnic.c | 24 +++---- > > drivers/net/ethernet/ibm/ibmvnic.h | 2 +- > > drivers/net/ethernet/jme.c | 72 +++++++++---------- > > drivers/net/ethernet/jme.h | 8 +-- > > .../net/ethernet/marvell/mvpp2/mvpp2_main.c | 4 +- > > drivers/net/ethernet/marvell/skge.c | 12 ++-- > > drivers/net/ethernet/marvell/skge.h | 3 +- > > drivers/net/ethernet/mediatek/mtk_wed_wo.c | 12 ++-- > > drivers/net/ethernet/mediatek/mtk_wed_wo.h | 3 +- > > 43 files changed, 273 insertions(+), 266 deletions(-) > > > > This should also go to netdev@vger.kernel.org My Bad, I thought I had it marked. Thanks for pointing it out. - Allen
On Thu, 2024-06-20 at 22:05 -0700, Allen Pais wrote: > The only generic interface to execute asynchronously in the BH context is > tasklet; however, it's marked deprecated and has some design flaws. To > replace tasklets, BH workqueue support was recently added. A BH workqueue > behaves similarly to regular workqueues except that the queued work items > are executed in the BH context. > > This patch converts a few drivers in drivers/ethernet/* from tasklet > to BH workqueue. The next set will be sent out after the next -rc is > out. > > This series is based on > commit a6ec08beec9e ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net") > > First version converting all the drivers can be found at: > https://lore.kernel.org/all/20240507190111.16710 > -2-apais@linux.microsoft.com/ The above link was mangled. I guess you will have to re-submit to cope at least with Andrew's feedback, but it think it's better to wait a little longer for the next version, to give the vendors more time to actually test this. When you will re-submit you can retain the already collected ack. Please include the target tree ('net-next') in the subj title and a revision counter ('v3'). The whole subj should be: [PATCH net-next v3 00/15] ethernet: Convert from tasklet to BH workqueue Thanks, Paolo