All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harry Yoo <harry.yoo@oracle.com>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Christoph Lameter <cl@gentwo.org>,
	David Rientjes <rientjes@google.com>,
	Roman Gushchin <roman.gushchin@linux.dev>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Alexei Starovoitov <ast@kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	bpf@vger.kernel.org, kasan-dev@googlegroups.com
Subject: Re: [PATCH 3/5] slab: handle pfmemalloc slabs properly with sheaves
Date: Mon, 10 Nov 2025 18:53:47 +0900	[thread overview]
Message-ID: <aRG2K8YCqCZa2Yfx@hyeyoo> (raw)
In-Reply-To: <20251105-sheaves-cleanups-v1-3-b8218e1ac7ef@suse.cz>

On Wed, Nov 05, 2025 at 10:05:31AM +0100, Vlastimil Babka wrote:
> When a pfmemalloc allocation actually dips into reserves, the slab is
> marked accordingly and non-pfmemalloc allocations should not be allowed
> to allocate from it. The sheaves percpu caching currently doesn't follow
> this rule, so implement it before we expand sheaves usage to all caches.
> 
> Make sure objects from pfmemalloc slabs don't end up in percpu sheaves.
> When freeing, skip sheaves when freeing an object from pfmemalloc slab.
> When refilling sheaves, use __GFP_NOMEMALLOC to override any pfmemalloc
> context - the allocation will fallback to regular slab allocations when
> sheaves are depleted and can't be refilled because of the override.
> 
> For kfree_rcu(), detect pfmemalloc slabs after processing the rcu_sheaf
> after the grace period in __rcu_free_sheaf_prepare() and simply flush
> it if any object is from pfmemalloc slabs.
>
> For prefilled sheaves, try to refill them first with __GFP_NOMEMALLOC
> and if it fails, retry without __GFP_NOMEMALLOC but then mark the sheaf
> pfmemalloc, which makes it flushed back to slabs when returned.
> 
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> ---

Reviewed-by: Harry Yoo <harry.yoo@oracle.com>

-- 
Cheers,
Harry / Hyeonggon

  reply	other threads:[~2025-11-10  9:54 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-05  9:05 [PATCH 0/5] slab: preparatory cleanups before adding sheaves to all caches Vlastimil Babka
2025-11-05  9:05 ` [PATCH 1/5] slab: make __slab_free() more clear Vlastimil Babka
2025-11-06  8:26   ` Harry Yoo
2025-11-06  8:43     ` Vlastimil Babka
2025-11-07  1:48       ` Harry Yoo
2025-11-05  9:05 ` [PATCH 2/5] slab: move kfence_alloc() out of internal bulk alloc Vlastimil Babka
2025-11-06  2:39   ` Alexei Starovoitov
2025-11-06  7:23     ` Vlastimil Babka
2025-11-10  8:06   ` Harry Yoo
2025-11-05  9:05 ` [PATCH 3/5] slab: handle pfmemalloc slabs properly with sheaves Vlastimil Babka
2025-11-10  9:53   ` Harry Yoo [this message]
2025-11-05  9:05 ` [PATCH 4/5] slub: remove CONFIG_SLUB_TINY specific code paths Vlastimil Babka
2025-11-13  1:52   ` Harry Yoo
2025-11-05  9:05 ` [PATCH 5/5] slab: prevent recursive kmalloc() in alloc_empty_sheaf() Vlastimil Babka
2025-11-13  4:55   ` Harry Yoo

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=aRG2K8YCqCZa2Yfx@hyeyoo \
    --to=harry.yoo@oracle.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=cl@gentwo.org \
    --cc=kasan-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.com \
    --cc=roman.gushchin@linux.dev \
    --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 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.