All of lore.kernel.org
 help / color / mirror / Atom feed
From: Breno Leitao <leitao@debian.org>
To: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	 David Hildenbrand <david@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	 Zi Yan <ziy@nvidia.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	 Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	 Barry Song <baohua@kernel.org>,
	Lance Yang <lance.yang@linux.dev>,
	 Vlastimil Babka <vbabka@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	 Michal Hocko <mhocko@suse.com>,
	Brendan Jackman <jackmanb@google.com>,
	 Johannes Weiner <hannes@cmpxchg.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	 usamaarif642@gmail.com, kas@kernel.org, kernel-team@meta.com,
	 "Lorenzo Stoakes (Oracle)" <ljs@kernel.org>
Subject: Re: [PATCH v2 0/3] mm: thp: reduce unnecessary start_stop_khugepaged() calls
Date: Fri, 6 Mar 2026 02:26:38 -0800	[thread overview]
Message-ID: <aaqrrfWjC5IKWKsw@gmail.com> (raw)
In-Reply-To: <3d3ee8ee-2aa1-4351-9965-c9ed5b858c96@linux.alibaba.com>

On Fri, Mar 06, 2026 at 02:14:31PM +0800, Baolin Wang wrote:
> 
> 
> On 3/5/26 10:04 PM, Breno Leitao wrote:
> > Writing to /sys/kernel/mm/transparent_hugepage/enabled causes
> > start_stop_khugepaged() called independent of any change.
> > start_stop_khugepaged() SPAMs the printk ring buffer overflow with the
> > exact same message, even when nothing changes.
> > 
> > For instance, if you have a custom vm.min_free_kbytes, just touching
> > /sys/kernel/mm/transparent_hugepage/enabled causes a printk message.
> > Example:
> > 
> >        # sysctl -w vm.min_free_kbytes=112382
> >        # for i in $(seq 100); do echo never > /sys/kernel/mm/transparent_hugepage/enabled ; done
> > 
> > and you have 100 WARN messages like the following, which is pretty dull:
> > 
> >        khugepaged: min_free_kbytes is not updated to 112381 because user defined value 112382 is preferred
> > 
> > A similar message shows up when setting thp to "always":
> > 
> >        # for i in $(seq 100); do
> >        #       echo 1024 > /proc/sys/vm/min_free_kbytes
> >        #       echo always > /sys/kernel/mm/transparent_hugepage/enabled
> >        # done
> > 
> > And then, we have 100 messages like:
> > 
> >        khugepaged: raising min_free_kbytes from 1024 to 67584 to help transparent hugepage allocations
> > 
> > This is more common when you have a configuration management system that
> > writes the THP configuration without an extra read, assuming that
> > nothing will happen if there is no change in the configuration, but it
> > prints these annoying messages.
> > 
> > For instance, at Meta's fleet, ~10K servers were producing 3.5M of
> > these messages per day.
> > 
> > Fix this by making the sysfs _store helpers a no-op if there is no state
> > change.
> > 
> > This version is heavily based on Lorezo's suggestion on V1.
> 
> Thanks for doing this. And you should also consider the shmem parts:
> shmem_enabled_store() and thpsize_shmem_enabled_store(), both of which will
> also call start_stop_khugepaged().
> 
> That means you can also generate lots of messages with the following script.
> 
> # for i in $(seq 100); do
> #       echo 1024 > /proc/sys/vm/min_free_kbytes
> #       echo always > /sys/kernel/mm/transparent_hugepage/shmem_enabled
> # done

Thanks for the input, I will include it in the fixes also.


--breno


      reply	other threads:[~2026-03-06 10:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-05 14:04 [PATCH v2 0/3] mm: thp: reduce unnecessary start_stop_khugepaged() calls Breno Leitao
2026-03-05 14:04 ` [PATCH v2 1/3] mm: khugepaged: export set_recommended_min_free_kbytes() Breno Leitao
2026-03-06 11:20   ` Lorenzo Stoakes (Oracle)
2026-03-06 11:33     ` Lorenzo Stoakes (Oracle)
2026-03-05 14:04 ` [PATCH v2 2/3] mm: huge_memory: refactor anon_enabled_store() with change_anon_orders() Breno Leitao
2026-03-06  6:07   ` Baolin Wang
2026-03-06 10:30     ` Breno Leitao
2026-03-06 11:22       ` Lorenzo Stoakes (Oracle)
2026-03-07  2:23         ` Baolin Wang
2026-03-06 11:32   ` Lorenzo Stoakes (Oracle)
2026-03-06 16:43     ` Breno Leitao
2026-03-05 14:04 ` [PATCH v2 3/3] mm: huge_memory: refactor enabled_store() with change_enabled() Breno Leitao
2026-03-06 11:39   ` Lorenzo Stoakes (Oracle)
2026-03-06 15:56     ` Breno Leitao
2026-03-06  6:14 ` [PATCH v2 0/3] mm: thp: reduce unnecessary start_stop_khugepaged() calls Baolin Wang
2026-03-06 10:26   ` Breno Leitao [this message]

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=aaqrrfWjC5IKWKsw@gmail.com \
    --to=leitao@debian.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=hannes@cmpxchg.org \
    --cc=jackmanb@google.com \
    --cc=kas@kernel.org \
    --cc=kernel-team@meta.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=mhocko@suse.com \
    --cc=npache@redhat.com \
    --cc=ryan.roberts@arm.com \
    --cc=surenb@google.com \
    --cc=usamaarif642@gmail.com \
    --cc=vbabka@kernel.org \
    --cc=ziy@nvidia.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.