From: Matthew Wilcox <willy@infradead.org>
To: Boris Burkov <boris@bur.io>
Cc: akpm@linux-foundation.org, linux-btrfs@vger.kernel.org,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
kernel-team@fb.com, shakeel.butt@linux.dev, wqu@suse.com,
mhocko@kernel.org, muchun.song@linux.dev,
roman.gushchin@linux.dev, hannes@cmpxchg.org
Subject: Re: [PATCH v3 1/4] mm/filemap: add AS_UNCHARGED
Date: Tue, 19 Aug 2025 03:46:42 +0100 [thread overview]
Message-ID: <aKPlkhXY9CON4x9v@casper.infradead.org> (raw)
In-Reply-To: <43fed53d45910cd4fa7a71d2e92913e53eb28774.1755562487.git.boris@bur.io>
On Mon, Aug 18, 2025 at 05:36:53PM -0700, Boris Burkov wrote:
> +++ b/mm/filemap.c
> @@ -960,15 +960,19 @@ int filemap_add_folio(struct address_space *mapping, struct folio *folio,
> {
> void *shadow = NULL;
> int ret;
> + bool charge_mem_cgroup = !test_bit(AS_UNCHARGED, &mapping->flags);
>
> - ret = mem_cgroup_charge(folio, NULL, gfp);
> - if (ret)
> - return ret;
> + if (charge_mem_cgroup) {
> + ret = mem_cgroup_charge(folio, NULL, gfp);
> + if (ret)
> + return ret;
> + }
>
> __folio_set_locked(folio);
> ret = __filemap_add_folio(mapping, folio, index, gfp, &shadow);
> if (unlikely(ret)) {
> - mem_cgroup_uncharge(folio);
> + if (charge_mem_cgroup)
> + mem_cgroup_uncharge(folio);
> __folio_clear_locked(folio);
This is unnecessarily complex; mem_cgroup_uncharge() is a no-op if
the folio is not charged. Sure, it's a wasted function call, but
this is a rare error path, so minimising size is more important than
minimising time.
So you can drop the 'bool' as well:
+ if (!test_bit(AS_UNCHARGED, &mapping->flags)) {
next prev parent reply other threads:[~2025-08-19 2:46 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-19 0:36 [PATCH v3 0/4] introduce uncharged file mapped folios Boris Burkov
2025-08-19 0:36 ` [PATCH v3 1/4] mm/filemap: add AS_UNCHARGED Boris Burkov
2025-08-19 2:46 ` Matthew Wilcox [this message]
2025-08-19 3:57 ` Boris Burkov
2025-08-20 22:06 ` Klara Modin
2025-08-20 22:22 ` Shakeel Butt
2025-08-20 22:52 ` Boris Burkov
2025-08-20 23:15 ` Klara Modin
2025-08-20 23:53 ` Shakeel Butt
2025-08-21 19:37 ` Shakeel Butt
2025-08-19 0:36 ` [PATCH v3 2/4] mm: add vmstat for cgroup uncharged pages Boris Burkov
2025-08-19 2:50 ` Matthew Wilcox
2025-08-19 4:05 ` Boris Burkov
2025-08-19 15:53 ` Shakeel Butt
2025-08-19 23:46 ` Matthew Wilcox
2025-08-20 1:25 ` Shakeel Butt
2025-08-20 13:19 ` Matthew Wilcox
2025-08-20 16:21 ` Shakeel Butt
2025-08-19 0:36 ` [PATCH v3 3/4] btrfs: set AS_UNCHARGED on the btree_inode Boris Burkov
2025-08-19 0:36 ` [PATCH v3 4/4] memcg: remove warning from folio_lruvec Boris Burkov
2025-08-19 2:41 ` Matthew Wilcox
2025-08-19 5:20 ` Andrew Morton
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=aKPlkhXY9CON4x9v@casper.infradead.org \
--to=willy@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=boris@bur.io \
--cc=hannes@cmpxchg.org \
--cc=kernel-team@fb.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=wqu@suse.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.