linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm/cma: print total and used count in cma_alloc()
@ 2024-09-26 12:00 Xiang Gao
  2024-09-26 20:25 ` Andrew Morton
  2024-09-27 12:30 ` David Hildenbrand
  0 siblings, 2 replies; 6+ messages in thread
From: Xiang Gao @ 2024-09-26 12:00 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, gaoxiang17

From: gaoxiang17 <gaoxiang17@xiaomi.com>

before:
[   24.407814] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
[   24.413397] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
[   24.415886] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)

after:
[   24.097989] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 64, request count 1, align 0)
[   24.104260] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 65, request count 1, align 0)
[   24.107504] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 66, request count 1, align 0)

Signed-off-by: gaoxiang17 <gaoxiang17@xiaomi.com>
---
 mm/cma.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/mm/cma.c b/mm/cma.c
index 2d9fae939283..fc35a86aa82f 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -403,6 +403,17 @@ static void cma_debug_show_areas(struct cma *cma)
 	spin_unlock_irq(&cma->lock);
 }
 
+static unsigned long cma_get_used(struct cma *cma)
+{
+	unsigned long used;
+
+	spin_lock_irq(&cma->lock);
+	used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma));
+	spin_unlock_irq(&cma->lock);
+
+	return used << cma->order_per_bit;
+}
+
 static struct page *__cma_alloc(struct cma *cma, unsigned long count,
 				unsigned int align, gfp_t gfp)
 {
@@ -420,8 +431,8 @@ static struct page *__cma_alloc(struct cma *cma, unsigned long count,
 	if (!cma || !cma->count || !cma->bitmap)
 		return page;
 
-	pr_debug("%s(cma %p, name: %s, count %lu, align %d)\n", __func__,
-		(void *)cma, cma->name, count, align);
+	pr_debug("%s(cma %p, name: %s, total count %lu, used count: %lu, request count %lu, align %d)\n", __func__,
+		(void *)cma, cma->name, cma->count, cma_get_used(cma), count, align);
 
 	if (!count)
 		return page;
-- 
2.34.1



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

* Re: [PATCH] mm/cma: print total and used count in cma_alloc()
  2024-09-26 12:00 [PATCH] mm/cma: print total and used count in cma_alloc() Xiang Gao
@ 2024-09-26 20:25 ` Andrew Morton
  2024-09-27 12:30 ` David Hildenbrand
  1 sibling, 0 replies; 6+ messages in thread
From: Andrew Morton @ 2024-09-26 20:25 UTC (permalink / raw)
  To: Xiang Gao; +Cc: linux-mm, linux-kernel, gaoxiang17

On Thu, 26 Sep 2024 20:00:49 +0800 Xiang Gao <gxxa03070307@gmail.com> wrote:

> before:
> [   24.407814] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> [   24.413397] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> [   24.415886] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> 
> after:
> [   24.097989] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 64, request count 1, align 0)
> [   24.104260] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 65, request count 1, align 0)
> [   24.107504] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 66, request count 1, align 0)

OK, thanks.  We should explain why we're making this change!  The
previous version of the patch had "To better understand cma area during
debugging", but that isn't very specific.

Please tell us the use case - why is this information helpful?  How is
it used?



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

* Re: [PATCH] mm/cma: print total and used count in cma_alloc()
  2024-09-26 12:00 [PATCH] mm/cma: print total and used count in cma_alloc() Xiang Gao
  2024-09-26 20:25 ` Andrew Morton
@ 2024-09-27 12:30 ` David Hildenbrand
  2024-09-28  1:04   ` 答复: [External Mail]Re: " 高翔
  1 sibling, 1 reply; 6+ messages in thread
From: David Hildenbrand @ 2024-09-27 12:30 UTC (permalink / raw)
  To: Xiang Gao, akpm; +Cc: linux-mm, linux-kernel, gaoxiang17

On 26.09.24 14:00, Xiang Gao wrote:
> From: gaoxiang17 <gaoxiang17@xiaomi.com>
> 
> before:
> [   24.407814] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> [   24.413397] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> [   24.415886] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> 
> after:
> [   24.097989] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 64, request count 1, align 0)
> [   24.104260] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 65, request count 1, align 0)
> [   24.107504] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 66, request count 1, align 0)
> 
> Signed-off-by: gaoxiang17 <gaoxiang17@xiaomi.com>
> ---
>   mm/cma.c | 15 +++++++++++++--
>   1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/cma.c b/mm/cma.c
> index 2d9fae939283..fc35a86aa82f 100644
> --- a/mm/cma.c
> +++ b/mm/cma.c
> @@ -403,6 +403,17 @@ static void cma_debug_show_areas(struct cma *cma)
>   	spin_unlock_irq(&cma->lock);
>   }
>   
> +static unsigned long cma_get_used(struct cma *cma)

I would call it "cma_get_used_pages()"

> +{
> +	unsigned long used;
> +
> +	spin_lock_irq(&cma->lock);
> +	used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma));
> +	spin_unlock_irq(&cma->lock);
> +
> +	return used << cma->order_per_bit;
> +}
> +
>   static struct page *__cma_alloc(struct cma *cma, unsigned long count,
>   				unsigned int align, gfp_t gfp)
>   {
> @@ -420,8 +431,8 @@ static struct page *__cma_alloc(struct cma *cma, unsigned long count,
>   	if (!cma || !cma->count || !cma->bitmap)
>   		return page;
>   
> -	pr_debug("%s(cma %p, name: %s, count %lu, align %d)\n", __func__,
> -		(void *)cma, cma->name, count, align);
> +	pr_debug("%s(cma %p, name: %s, total count %lu, used count: %lu, request count %lu, align %d)\n", __func__,

I would suggest dropping the "count", or using "pages" instead. Also, 
inconsistent usage of ":".

Either:

pr_debug("%s(cma %p, name: %s, total: %lu, used: %lu, requested: %lu, ..."

or

pr_debug("%s(cma %p, name: %s, total pages: %lu, used pages: %lu, 
requested pages: %lu, ..."

> +		(void *)cma, cma->name, cma->count, cma_get_used(cma), count, align);
>   
>   	if (!count)
>   		return page;


-- 
Cheers,

David / dhildenb



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

* 答复: [External Mail]Re: [PATCH] mm/cma: print total and used count in cma_alloc()
  2024-09-27 12:30 ` David Hildenbrand
@ 2024-09-28  1:04   ` 高翔
  2024-09-28  8:30     ` David Hildenbrand
  0 siblings, 1 reply; 6+ messages in thread
From: 高翔 @ 2024-09-28  1:04 UTC (permalink / raw)
  To: David Hildenbrand, Xiang Gao, akpm; +Cc: linux-mm, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 3072 bytes --]

I see.  I think adding "pages" is better.

Do I need to send a new email with a new patch?



________________________________
发件人: David Hildenbrand <david@redhat.com>
发送时间: 2024年9月27日 20:30:18
收件人: Xiang Gao; akpm@linux-foundation.org
抄送: linux-mm@kvack.org; linux-kernel@vger.kernel.org; 高翔
主题: [External Mail]Re: [PATCH] mm/cma: print total and used count in cma_alloc()

[外部邮件] 此邮件来源于小米公司外部,请谨慎处理。若对邮件安全性存疑,请将邮件转发给misec@xiaomi.com进行反馈

On 26.09.24 14:00, Xiang Gao wrote:
> From: gaoxiang17 <gaoxiang17@xiaomi.com>
>
> before:
> [   24.407814] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> [   24.413397] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
> [   24.415886] cma: cma_alloc(cma (____ptrval____), name: reserved, count 1, align 0)
>
> after:
> [   24.097989] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 64, request count 1, align 0)
> [   24.104260] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 65, request count 1, align 0)
> [   24.107504] cma: cma_alloc(cma (____ptrval____), name: reserved, total count 16384, used count: 66, request count 1, align 0)
>
> Signed-off-by: gaoxiang17 <gaoxiang17@xiaomi.com>
> ---
>   mm/cma.c | 15 +++++++++++++--
>   1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/mm/cma.c b/mm/cma.c
> index 2d9fae939283..fc35a86aa82f 100644
> --- a/mm/cma.c
> +++ b/mm/cma.c
> @@ -403,6 +403,17 @@ static void cma_debug_show_areas(struct cma *cma)
>       spin_unlock_irq(&cma->lock);
>   }
>
> +static unsigned long cma_get_used(struct cma *cma)

I would call it "cma_get_used_pages()"

> +{
> +     unsigned long used;
> +
> +     spin_lock_irq(&cma->lock);
> +     used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma));
> +     spin_unlock_irq(&cma->lock);
> +
> +     return used << cma->order_per_bit;
> +}
> +
>   static struct page *__cma_alloc(struct cma *cma, unsigned long count,
>                               unsigned int align, gfp_t gfp)
>   {
> @@ -420,8 +431,8 @@ static struct page *__cma_alloc(struct cma *cma, unsigned long count,
>       if (!cma || !cma->count || !cma->bitmap)
>               return page;
>
> -     pr_debug("%s(cma %p, name: %s, count %lu, align %d)\n", __func__,
> -             (void *)cma, cma->name, count, align);
> +     pr_debug("%s(cma %p, name: %s, total count %lu, used count: %lu, request count %lu, align %d)\n", __func__,

I would suggest dropping the "count", or using "pages" instead. Also,
inconsistent usage of ":".

Either:

pr_debug("%s(cma %p, name: %s, total: %lu, used: %lu, requested: %lu, ..."

or

pr_debug("%s(cma %p, name: %s, total pages: %lu, used pages: %lu,
requested pages: %lu, ..."

> +             (void *)cma, cma->name, cma->count, cma_get_used(cma), count, align);
>
>       if (!count)
>               return page;


--
Cheers,

David / dhildenb


[-- Attachment #2: Type: text/html, Size: 6136 bytes --]

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

* Re: 答复: [External Mail]Re: [PATCH] mm/cma: print total and used count in cma_alloc()
  2024-09-28  1:04   ` 答复: [External Mail]Re: " 高翔
@ 2024-09-28  8:30     ` David Hildenbrand
  2024-09-29  2:52       ` 答复: " 高翔
  0 siblings, 1 reply; 6+ messages in thread
From: David Hildenbrand @ 2024-09-28  8:30 UTC (permalink / raw)
  To: 高翔, Xiang Gao, akpm; +Cc: linux-mm, linux-kernel

On 28.09.24 03:04, 高翔 wrote:
> I see. I think adding "pages" is better.
 > > Do I need to send a new email with a new patch?

Yes. Also, please avoid top-posting.

For the new version, use versioning like "[PATCH v2]", which can be 
achieved using "git format-patch -1 -v2" for V2


-- 
Cheers,

David / dhildenb



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

* 答复: 答复: [External Mail]Re: [PATCH] mm/cma: print total and used count in cma_alloc()
  2024-09-28  8:30     ` David Hildenbrand
@ 2024-09-29  2:52       ` 高翔
  0 siblings, 0 replies; 6+ messages in thread
From: 高翔 @ 2024-09-29  2:52 UTC (permalink / raw)
  To: David Hildenbrand, Xiang Gao, akpm; +Cc: linux-mm, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 773 bytes --]

Ok, thanks.

________________________________
发件人: David Hildenbrand <david@redhat.com>
发送时间: 2024年9月28日 16:30:37
收件人: 高翔; Xiang Gao; akpm@linux-foundation.org
抄送: linux-mm@kvack.org; linux-kernel@vger.kernel.org
主题: Re: 答复: [External Mail]Re: [PATCH] mm/cma: print total and used count in cma_alloc()

[外部邮件] 此邮件来源于小米公司外部,请谨慎处理。若对邮件安全性存疑,请将邮件转发给misec@xiaomi.com进行反馈

On 28.09.24 03:04, 高翔 wrote:
> I see. I think adding "pages" is better.
 > > Do I need to send a new email with a new patch?

Yes. Also, please avoid top-posting.

For the new version, use versioning like "[PATCH v2]", which can be
achieved using "git format-patch -1 -v2" for V2


--
Cheers,

David / dhildenb


[-- Attachment #2: Type: text/html, Size: 1822 bytes --]

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

end of thread, other threads:[~2024-09-29  2:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-26 12:00 [PATCH] mm/cma: print total and used count in cma_alloc() Xiang Gao
2024-09-26 20:25 ` Andrew Morton
2024-09-27 12:30 ` David Hildenbrand
2024-09-28  1:04   ` 答复: [External Mail]Re: " 高翔
2024-09-28  8:30     ` David Hildenbrand
2024-09-29  2:52       ` 答复: " 高翔

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox