lkml.org 
[lkml]   [2023]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRE: [EXT] Re: [net PATCH] octeontx2-pf: Use GFP_ATOMIC in atomic context
    Date


    -----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:
    \
     
     \ /
      Last update: 2023-03-26 23:34    [W:5.722 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site