Messages in this thread Patch in this message | | | From | Geethasowjanya Akula <> | Subject | RE: [EXT] Re: [net PATCH] octeontx2-pf: Use GFP_ATOMIC in atomic context | Date | Tue, 10 Jan 2023 08:55:50 +0000 |
| |
-----Original Message----- From: Eric Dumazet <edumazet@google.com> Sent: Tuesday, January 10, 2023 2:05 PM To: Geethasowjanya Akula <gakula@marvell.com> Cc: Leon Romanovsky <leon@kernel.org>; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; kuba@kernel.org; pabeni@redhat.com; davem@davemloft.net; Subbaraya Sundeep Bhatta <sbhatta@marvell.com>; Hariprasad Kelam <hkelam@marvell.com>; Sunil Kovvuri Goutham <sgoutham@marvell.com> Subject: [EXT] Re: [net PATCH] octeontx2-pf: Use GFP_ATOMIC in atomic context
External Email
---------------------------------------------------------------------- On Tue, Jan 10, 2023 at 8:54 AM Geethasowjanya Akula <gakula@marvell.com> wrote: >> >> >> >> -----Original Message----- >> From: Leon Romanovsky <leon@kernel.org> >> Sent: Sunday, January 8, 2023 6:39 PM >> To: Geethasowjanya Akula <gakula@marvell.com> >> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; >> kuba@kernel.org; pabeni@redhat.com; davem@davemloft.net; >> edumazet@google.com; Subbaraya Sundeep Bhatta <sbhatta@marvell.com>; >> Hariprasad Kelam <hkelam@marvell.com>; Sunil Kovvuri Goutham >> <sgoutham@marvell.com> >> Subject: [EXT] Re: [net PATCH] octeontx2-pf: Use GFP_ATOMIC in atomic >> context >> >> External Email >> >> ---------------------------------------------------------------------- >> On Sat, Jan 07, 2023 at 10:11:39AM +0530, Geetha sowjanya wrote: >> >> Use GFP_ATOMIC flag instead of GFP_KERNEL while allocating memory >> >> in atomic context. >> >> >Awesome, but the changed functions don't run in atomic context. >> >> drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >> 1368 /* Flush accumulated messages */ >> 1369 err = otx2_sync_mbox_msg(&pfvf->mbox); >> 1370 if (err) >> 1371 goto fail; >> 1372 >> 1373 get_cpu(); >> ^^^^^^^^^ >> The get_cpu() disables preemption.
>Forcing GFP_ATOMIC in init functions is not desirable. > >Please move around the get_cpu() so that we keep GFP_KERNEL whenever possible. Ok will submit v2 with suggested changes. > >diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >index 88f8772a61cd527c2ab138fb5a996470a7dfd456..2e628e12cd1ff92756f054639abd777ea185680f >100644 >--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c >@@ -1370,7 +1370,6 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf) > if (err) > goto fail; > >- get_cpu(); > /* Allocate pointers and free them to aura/pool */ > for (qidx = 0; qidx < hw->tot_tx_queues; qidx++) { > pool_id = otx2_get_pool_idx(pfvf, AURA_NIX_SQ, qidx); @@ -1388,13 +1387,17 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf) > err = otx2_alloc_rbuf(pfvf, pool, &bufptr); > if (err) > goto err_mem; >+ /* __cn10k_aura_freeptr() needs to be called >+ * with preemption disabled. >+ */ >+ get_cpu(); > pfvf->hw_ops->aura_freeptr(pfvf, pool_id, bufptr); >+ put_cpu(); > sq->sqb_ptrs[sq->sqb_count++] = (u64)bufptr; > } > } > > err_mem: >- put_cpu(); > return err ? -ENOMEM : 0; > > fail:
| |