linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM/dma-mapping: use kvzalloc for fallback memory allocation need
@ 2022-12-20  5:25 Deepak R Varma
  2023-01-20 11:30 ` Deepak R Varma
  0 siblings, 1 reply; 2+ messages in thread
From: Deepak R Varma @ 2022-12-20  5:25 UTC (permalink / raw)
  To: Russell King, linux-arm-kernel, linux-kernel
  Cc: Saurabh Singh Sengar, Praveen Kumar, drv

When the memory sizes are not known upfront, it is preferred to use the
kvzalloc helper function instead of direct conditional evaluation of
size and kzalloc/vzalloc fallback design. The kvzalloc helper function
in this case is more efficient as it avoids indefinite kzalloc retries
when a small memory size is needed but is unavailable.
This LWN article has further details on the advantages of using
kvzalloc in case of fallback memory allocation needs:
 	https://lwn.net/Articles/711653/

This patch proposal is based on following Coccinelle warning using the
kvmalloc.cocci semantic patch.

arch/arm/mm/dma-mapping.c:858:28-29: WARNING opportunity for kvmalloc

Signed-off-by: Deepak R Varma <drv@mailo.com>
---
Note: The patch proposal is compile tested only.

 arch/arm/mm/dma-mapping.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index c135f6e37a00..2b79af377a81 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -855,10 +855,7 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size,
 	int i = 0;
 	int order_idx = 0;

-	if (array_size <= PAGE_SIZE)
-		pages = kzalloc(array_size, GFP_KERNEL);
-	else
-		pages = vzalloc(array_size);
+	pages = kvzalloc(array_size, GFP_KERNEL);
 	if (!pages)
 		return NULL;

--
2.34.1




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ARM/dma-mapping: use kvzalloc for fallback memory allocation need
  2022-12-20  5:25 [PATCH] ARM/dma-mapping: use kvzalloc for fallback memory allocation need Deepak R Varma
@ 2023-01-20 11:30 ` Deepak R Varma
  0 siblings, 0 replies; 2+ messages in thread
From: Deepak R Varma @ 2023-01-20 11:30 UTC (permalink / raw)
  To: Russell King, linux-arm-kernel, linux-kernel
  Cc: Saurabh Singh Sengar, Praveen Kumar

On Tue, Dec 20, 2022 at 10:55:11AM +0530, Deepak R Varma wrote:
> When the memory sizes are not known upfront, it is preferred to use the
> kvzalloc helper function instead of direct conditional evaluation of
> size and kzalloc/vzalloc fallback design. The kvzalloc helper function
> in this case is more efficient as it avoids indefinite kzalloc retries
> when a small memory size is needed but is unavailable.
> This LWN article has further details on the advantages of using
> kvzalloc in case of fallback memory allocation needs:
>  	https://lwn.net/Articles/711653/
> 
> This patch proposal is based on following Coccinelle warning using the
> kvmalloc.cocci semantic patch.
> 
> arch/arm/mm/dma-mapping.c:858:28-29: WARNING opportunity for kvmalloc
> 
> Signed-off-by: Deepak R Varma <drv@mailo.com>

Hello,
May I please request a review and feedback on this patch proposal?

Thank you,
./drv

> ---
> Note: The patch proposal is compile tested only.
> 
>  arch/arm/mm/dma-mapping.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
> index c135f6e37a00..2b79af377a81 100644
> --- a/arch/arm/mm/dma-mapping.c
> +++ b/arch/arm/mm/dma-mapping.c
> @@ -855,10 +855,7 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size,
>  	int i = 0;
>  	int order_idx = 0;
> 
> -	if (array_size <= PAGE_SIZE)
> -		pages = kzalloc(array_size, GFP_KERNEL);
> -	else
> -		pages = vzalloc(array_size);
> +	pages = kvzalloc(array_size, GFP_KERNEL);
>  	if (!pages)
>  		return NULL;
> 
> --
> 2.34.1
> 



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-01-20 11:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-20  5:25 [PATCH] ARM/dma-mapping: use kvzalloc for fallback memory allocation need Deepak R Varma
2023-01-20 11:30 ` Deepak R Varma

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).