Message ID | 20210422040914.47788-13-ilya.lipnitskiy@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | mtk_eth_soc: fixes and performance improvements | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 10 of 10 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 21 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On Wed, 21 Apr 2021 21:09:12 -0700 Ilya Lipnitskiy wrote: > @@ -1551,8 +1551,9 @@ static int mtk_napi_rx(struct napi_struct *napi, int budget) > remain_budget -= rx_done; > goto poll_again; > } > - napi_complete(napi); > - mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); > + > + if (napi_complete(napi)) > + mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); Why not napi_complete_done(napi, rx_done + budget - remain_budget)? (Modulo possible elimination of rx_done in this function.)
On Thu, Apr 22, 2021 at 9:26 AM Jakub Kicinski <kuba@kernel.org> wrote: > > On Wed, 21 Apr 2021 21:09:12 -0700 Ilya Lipnitskiy wrote: > > @@ -1551,8 +1551,9 @@ static int mtk_napi_rx(struct napi_struct *napi, int budget) > > remain_budget -= rx_done; > > goto poll_again; > > } > > - napi_complete(napi); > > - mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); > > + > > + if (napi_complete(napi)) > > + mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); > > Why not napi_complete_done(napi, rx_done + budget - remain_budget)? > (Modulo possible elimination of rx_done in this function.) No reason, I think. Thanks for pointing it out. I will clean up both TX and RX NAPI callbacks to use napi_complete_done and to get rid of that ugly goto... Ilya
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 5a531bb83348..88a437f478fd 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -1517,8 +1517,8 @@ static int mtk_napi_tx(struct napi_struct *napi, int budget) if (status & MTK_TX_DONE_INT) return budget; - napi_complete(napi); - mtk_tx_irq_enable(eth, MTK_TX_DONE_INT); + if (napi_complete(napi)) + mtk_tx_irq_enable(eth, MTK_TX_DONE_INT); return tx_done; } @@ -1551,8 +1551,9 @@ static int mtk_napi_rx(struct napi_struct *napi, int budget) remain_budget -= rx_done; goto poll_again; } - napi_complete(napi); - mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); + + if (napi_complete(napi)) + mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); return rx_done + budget - remain_budget; }