linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: 高翔 <gaoxiang17@xiaomi.com>
To: David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Xiang Gao <gxxa03070307@gmail.com>,
	"lorenzo.stoakes@oracle.com" <lorenzo.stoakes@oracle.com>,
	"Liam.Howlett@oracle.com" <Liam.Howlett@oracle.com>,
	"vbabka@suse.cz" <vbabka@suse.cz>,
	"rppt@kernel.org" <rppt@kernel.org>,
	"surenb@google.com" <surenb@google.com>,
	"mhocko@suse.com" <mhocko@suse.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: 答复: [External Mail]Re: [PATCH] mm/cma: print total and used pages in cma_alloc()
Date: Mon, 18 Aug 2025 05:30:30 +0000	[thread overview]
Message-ID: <d21f884907fe4dce81e5c16e2970a3b4@xiaomi.com> (raw)
In-Reply-To: <167acb82-1368-4c8e-89bd-8dbe4877d5bb@redhat.com>

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

From this perspective, it seems better to add it to the trace. Then shall I make a patch to add to the trace?


________________________________
发件人: David Hildenbrand <david@redhat.com>
发送时间: 2025年8月16日 15:49:52
收件人: Andrew Morton
抄送: Xiang Gao; lorenzo.stoakes@oracle.com; Liam.Howlett@oracle.com; vbabka@suse.cz; rppt@kernel.org; surenb@google.com; mhocko@suse.com; linux-mm@kvack.org; linux-kernel@vger.kernel.org; 高翔
主题: [External Mail]Re: [PATCH] mm/cma: print total and used pages in cma_alloc()

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

On 16.08.25 09:34, Andrew Morton wrote:
> On Sat, 16 Aug 2025 08:56:47 +0200 David Hildenbrand <david@redhat.com> wrote:
>
>> On 16.08.25 08:45, Andrew Morton wrote:
>>> On Sat, 16 Aug 2025 08:27:39 +0200 David Hildenbrand <david@redhat.com> wrote:
>>>
>>>>> @@ -858,8 +869,8 @@ static struct page *__cma_alloc(struct cma *cma, unsigned long count,
>>>>>           if (!cma || !cma->count)
>>>>>                   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 pages: %lu, used pages: %lu, request pages: %lu, align %d)\n",
>>>>> +         __func__, (void *)cma, cma->name, cma->count, cma_get_used_pages(cma), count, align);
>>>>
>>>>            ^ one space missing for proper indentation.
>>>>
>>>> But doing another spinlock cycle just for debugging purposes? That does
>>>> not feel right, sorry.
>>>
>>> If we're calling pr_debug() frequently enough for this to matter, we
>>> have other problems!
>>
>> We call it for each and every actual CMA allocation? I really don't see
>> why we want to just randomly make CMA allocation latency worse.
>
> pr_debug() is 12 million times more expensive than a spin_lock()!
>
>> Is the existing pr_debug() a problem? Maybe. But who actually has debug
>> messages enabled in any sane setup?
>
> Nobody, clearly.  If anyone enabled pr_debug() in here, they'd
> immediately have to remove those statements to get any work done.  Kill
> it.

I just learned that pr_debug() on a !CONFIG_DEBUG kernel translates to
no_printk(), which is just a mostly-empty macro that doesn't really use
any of the parameters.

I would assume the cma_get_used_pages() would get completely optimized
out in that case.

So, I don't care, but ... moving to tracing seems much more reasonable.

--
Cheers

David / dhildenb


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

  reply	other threads:[~2025-08-18  5:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-16  4:28 Xiang Gao
2025-08-16  6:27 ` David Hildenbrand
2025-08-16  6:42   ` Giorgi Tchankvetadze
2025-08-16  6:57     ` David Hildenbrand
2025-08-16  6:45   ` Andrew Morton
2025-08-16  6:56     ` David Hildenbrand
2025-08-16  7:34       ` Andrew Morton
2025-08-16  7:49         ` David Hildenbrand
2025-08-18  5:30           ` 高翔 [this message]
2025-08-16 16:30 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d21f884907fe4dce81e5c16e2970a3b4@xiaomi.com \
    --to=gaoxiang17@xiaomi.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=gxxa03070307@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=mhocko@suse.com \
    --cc=rppt@kernel.org \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox