* [PATCH iwl-net] ice: add missing napi deletion
@ 2023-06-20 8:24 Maciej Fijalkowski
2023-06-20 9:58 ` [Intel-wired-lan] " Przemek Kitszel
2023-06-20 16:53 ` Jakub Kicinski
0 siblings, 2 replies; 6+ messages in thread
From: Maciej Fijalkowski @ 2023-06-20 8:24 UTC (permalink / raw)
To: intel-wired-lan
Cc: netdev, anthony.l.nguyen, magnus.karlsson, michal.swiatkowski,
Maciej Fijalkowski
Error path from ice_probe() is missing ice_napi_del() calls, add it to
ice_deinit_eth() as ice_init_eth() was the one to add napi instances. It
is also a good habit to delete napis when removing driver and this also
addresses that. FWIW ice_napi_del() had no callsites.
Fixes: 6624e780a577 ("ice: split ice_vsi_setup into smaller functions")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
---
drivers/net/ethernet/intel/ice/ice_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index cd562856f23a..f6b041490154 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4485,6 +4485,7 @@ static void ice_deinit_eth(struct ice_pf *pf)
if (!vsi)
return;
+ ice_napi_del(vsi);
ice_vsi_close(vsi);
ice_unregister_netdev(vsi);
ice_devlink_destroy_pf_port(pf);
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [Intel-wired-lan] [PATCH iwl-net] ice: add missing napi deletion 2023-06-20 8:24 [PATCH iwl-net] ice: add missing napi deletion Maciej Fijalkowski @ 2023-06-20 9:58 ` Przemek Kitszel 2023-06-20 16:53 ` Jakub Kicinski 1 sibling, 0 replies; 6+ messages in thread From: Przemek Kitszel @ 2023-06-20 9:58 UTC (permalink / raw) To: Maciej Fijalkowski, intel-wired-lan Cc: netdev, anthony.l.nguyen, magnus.karlsson, michal.swiatkowski On 6/20/23 10:24, Maciej Fijalkowski wrote: > Error path from ice_probe() is missing ice_napi_del() calls, add it to > ice_deinit_eth() as ice_init_eth() was the one to add napi instances. It > is also a good habit to delete napis when removing driver and this also > addresses that. FWIW ice_napi_del() had no callsites. > > Fixes: 6624e780a577 ("ice: split ice_vsi_setup into smaller functions") > Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_main.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c > index cd562856f23a..f6b041490154 100644 > --- a/drivers/net/ethernet/intel/ice/ice_main.c > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > @@ -4485,6 +4485,7 @@ static void ice_deinit_eth(struct ice_pf *pf) > if (!vsi) > return; > > + ice_napi_del(vsi); > ice_vsi_close(vsi); > ice_unregister_netdev(vsi); > ice_devlink_destroy_pf_port(pf); Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH iwl-net] ice: add missing napi deletion 2023-06-20 8:24 [PATCH iwl-net] ice: add missing napi deletion Maciej Fijalkowski 2023-06-20 9:58 ` [Intel-wired-lan] " Przemek Kitszel @ 2023-06-20 16:53 ` Jakub Kicinski 2023-06-20 17:22 ` Maciej Fijalkowski 1 sibling, 1 reply; 6+ messages in thread From: Jakub Kicinski @ 2023-06-20 16:53 UTC (permalink / raw) To: Maciej Fijalkowski Cc: intel-wired-lan, netdev, anthony.l.nguyen, magnus.karlsson, michal.swiatkowski On Tue, 20 Jun 2023 10:24:54 +0200 Maciej Fijalkowski wrote: > Error path from ice_probe() is missing ice_napi_del() calls, add it to > ice_deinit_eth() as ice_init_eth() was the one to add napi instances. It > is also a good habit to delete napis when removing driver and this also > addresses that. FWIW ice_napi_del() had no callsites. > > Fixes: 6624e780a577 ("ice: split ice_vsi_setup into smaller functions") > Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> Is there user visible impact? I agree that it's a good habit, but since unregister cleans up NAPI instances automatically the patch is not necessarily a fix. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH iwl-net] ice: add missing napi deletion 2023-06-20 16:53 ` Jakub Kicinski @ 2023-06-20 17:22 ` Maciej Fijalkowski 2023-06-20 17:49 ` Jakub Kicinski 0 siblings, 1 reply; 6+ messages in thread From: Maciej Fijalkowski @ 2023-06-20 17:22 UTC (permalink / raw) To: Jakub Kicinski Cc: intel-wired-lan, netdev, anthony.l.nguyen, magnus.karlsson, michal.swiatkowski On Tue, Jun 20, 2023 at 09:53:35AM -0700, Jakub Kicinski wrote: > On Tue, 20 Jun 2023 10:24:54 +0200 Maciej Fijalkowski wrote: > > Error path from ice_probe() is missing ice_napi_del() calls, add it to > > ice_deinit_eth() as ice_init_eth() was the one to add napi instances. It > > is also a good habit to delete napis when removing driver and this also > > addresses that. FWIW ice_napi_del() had no callsites. > > > > Fixes: 6624e780a577 ("ice: split ice_vsi_setup into smaller functions") > > Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> > > Is there user visible impact? I agree that it's a good habit, but > since unregister cleans up NAPI instances automatically the patch > is not necessarily a fix. It's rather free_netdev() not unregistering per se, no? I sent this patch as I found that cited commit didn't delete napis on ice_probe()'s error path - I just saw that as a regression. But as you're saying when getting rid of netdev we actually do netif_napi_del() - it seems redundant to do explicit napi delete on remove path as it is supposed do free the netdev. Does it mean that many drivers should be verified against that? Sorta tired so might be missing something, pardon. If not, I'll send a v2 that just removes ice_napi_del(). ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH iwl-net] ice: add missing napi deletion 2023-06-20 17:22 ` Maciej Fijalkowski @ 2023-06-20 17:49 ` Jakub Kicinski 2023-06-21 11:43 ` Maciej Fijalkowski 0 siblings, 1 reply; 6+ messages in thread From: Jakub Kicinski @ 2023-06-20 17:49 UTC (permalink / raw) To: Maciej Fijalkowski Cc: intel-wired-lan, netdev, anthony.l.nguyen, magnus.karlsson, michal.swiatkowski On Tue, 20 Jun 2023 19:22:01 +0200 Maciej Fijalkowski wrote: > On Tue, Jun 20, 2023 at 09:53:35AM -0700, Jakub Kicinski wrote: > > Is there user visible impact? I agree that it's a good habit, but > > since unregister cleans up NAPI instances automatically the patch > > is not necessarily a fix. > > It's rather free_netdev() not unregistering per se, no? I sent this patch > as I found that cited commit didn't delete napis on ice_probe()'s error > path - I just saw that as a regression. > > But as you're saying when getting rid of netdev we actually do > netif_napi_del() - it seems redundant to do explicit napi delete on remove > path as it is supposed do free the netdev. Does it mean that many drivers > should be verified against that? Sorta tired so might be missing > something, pardon. If not, I'll send a v2 that just removes > ice_napi_del(). I personally prefer to keep track of my resources, so I avoid devm_* and delete NAPI instances by hand. It's up to the author and/or maintainer of the driver in question. My only real ask is to no route this via net and drop the Fixes tag. Whether you prefer to keep the patch as is or drop ice_napi_del() -- up to you. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH iwl-net] ice: add missing napi deletion 2023-06-20 17:49 ` Jakub Kicinski @ 2023-06-21 11:43 ` Maciej Fijalkowski 0 siblings, 0 replies; 6+ messages in thread From: Maciej Fijalkowski @ 2023-06-21 11:43 UTC (permalink / raw) To: Jakub Kicinski Cc: intel-wired-lan, netdev, anthony.l.nguyen, magnus.karlsson, michal.swiatkowski On Tue, Jun 20, 2023 at 10:49:11AM -0700, Jakub Kicinski wrote: > On Tue, 20 Jun 2023 19:22:01 +0200 Maciej Fijalkowski wrote: > > On Tue, Jun 20, 2023 at 09:53:35AM -0700, Jakub Kicinski wrote: > > > Is there user visible impact? I agree that it's a good habit, but > > > since unregister cleans up NAPI instances automatically the patch > > > is not necessarily a fix. > > > > It's rather free_netdev() not unregistering per se, no? I sent this patch > > as I found that cited commit didn't delete napis on ice_probe()'s error > > path - I just saw that as a regression. > > > > But as you're saying when getting rid of netdev we actually do > > netif_napi_del() - it seems redundant to do explicit napi delete on remove > > path as it is supposed do free the netdev. Does it mean that many drivers > > should be verified against that? Sorta tired so might be missing > > something, pardon. If not, I'll send a v2 that just removes > > ice_napi_del(). > > I personally prefer to keep track of my resources, so I avoid devm_* > and delete NAPI instances by hand. It's up to the author and/or > maintainer of the driver in question. Hmm I am not a fan of devm either but I didn't mean that in my response at all. There are quite a few drivers that do this: net/core/dev.c: void free_netdev(struct net_device *dev) { (...) list_for_each_entry_safe(p, n, &dev->napi_list, dev_list) netif_napi_del(p); (...) } static inline void netif_napi_del(struct napi_struct *napi) { __netif_napi_del(napi); synchronize_net(); } drivers/net/ethernet/xxxcorp/xxx/xxx_main.c: static void xxx_remove(struct pci_dev *pdev) { // retrieve net_device and napi_struct ptrs netif_napi_del(napi); // redundant, covered below (...) free_netdev(netdev); (...) } I believe this is what you were referring to originally and I said that after a short drivers audit there is a bunch going via flow shown above...plus my patch was trying to introduce that :) Although in such case __netif_napi_del() will exit early as NAPI_STATE_LISTED bit was cleared, if driver holds multiple napi instances we will be going unnecessarily via synchronize_net() calls. > > My only real ask is to no route this via net and drop the Fixes tag. > Whether you prefer to keep the patch as is or drop ice_napi_del() -- > up to you. I'll go through -next and remove ice_napi_del(), given the above explanation what I meant previously. > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-06-21 11:43 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-06-20 8:24 [PATCH iwl-net] ice: add missing napi deletion Maciej Fijalkowski 2023-06-20 9:58 ` [Intel-wired-lan] " Przemek Kitszel 2023-06-20 16:53 ` Jakub Kicinski 2023-06-20 17:22 ` Maciej Fijalkowski 2023-06-20 17:49 ` Jakub Kicinski 2023-06-21 11:43 ` Maciej Fijalkowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).