Re: [PATCH net] octeontx2-af: Fix QMEM struct memory allocation

From: Pavan Chebbi
Date: Tue Jan 03 2023 - 04:01:21 EST


On Tue, Jan 3, 2023 at 9:39 AM Geetha sowjanya <gakula@xxxxxxxxxxx> wrote:
>
> Currently NIX, NPA queue context memory is being allocated using
> GFP_KERNEL flag which inturns allocates from memory reserved for
> CMA_DMA. Sizing CMA_DMA memory is getting difficult due to this
> dependency, the more number of interfaces enabled the more the
> CMA_DMA memory requirement.
>
> To address this issue, GFP_KERNEL flag is replaced with GFP_ATOMIC,
> with this memory will be allocated from unreserved memory.
>
> Fixes: 7a37245ef23f ("octeontx2-af: NPA block admin queue init")
> Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxxx>
> Signed-off-by: Geetha sowjanya <gakula@xxxxxxxxxxx>
> ---
> drivers/net/ethernet/marvell/octeontx2/af/common.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/marvell/octeontx2/af/common.h b/drivers/net/ethernet/marvell/octeontx2/af/common.h
> index 8931864ee110..4b4be9ca4d2f 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/af/common.h
> +++ b/drivers/net/ethernet/marvell/octeontx2/af/common.h
> @@ -61,7 +61,7 @@ static inline int qmem_alloc(struct device *dev, struct qmem **q,
> qmem->entry_sz = entry_sz;
> qmem->alloc_sz = (qsize * entry_sz) + OTX2_ALIGN;
> qmem->base = dma_alloc_attrs(dev, qmem->alloc_sz, &qmem->iova,
> - GFP_KERNEL, DMA_ATTR_FORCE_CONTIGUOUS);
> + GFP_ATOMIC, DMA_ATTR_FORCE_CONTIGUOUS);

I am not understanding the problem this change is solving. Can you
describe the issue in some detail?
What do you mean when you say GFP_ATOMIC allocates the memory from
unreserved memory?

> if (!qmem->base)
> return -ENOMEM;
>
> --
> 2.25.1
>

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature