From: Matthew Wilcox <willy@infradead.org>
To: jeff.xie@linux.dev
Cc: Jeff Xie <xiehuan09@gmail.com>,
akpm@linux-foundation.org, iamjoonsoo.kim@lge.com,
vbabka@suse.cz, cl@linux.com, penberg@kernel.org,
rientjes@google.com, roman.gushchin@linux.dev,
42.hyeyoo@gmail.com, linux-mm@kvack.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
chensong_2000@189.cn
Subject: Re: [RFC][PATCH 1/4] mm, page_owner: add folio allocate post callback for struct page_owner to make the owner clearer
Date: Thu, 9 Nov 2023 16:38:41 +0000 [thread overview]
Message-ID: <ZU0LEYfu01W6sQLR@casper.infradead.org> (raw)
In-Reply-To: <58d4f340549dd69a5d605c1526ceceb035b3cc98@linux.dev>
On Thu, Nov 09, 2023 at 04:04:39PM +0000, jeff.xie@linux.dev wrote:
> November 9, 2023 at 11:36 PM, "Matthew Wilcox" <willy@infradead.org> wrote:
> > But we want that anyway (or at least I do). You're right that vmalloc
> > pages are not marked as being vmalloc pages and don't contain the
> > information about which vmalloc area they belong to. I've talked about
> > ways we can add that information to folios in the past, but I have a lot
> > of other projects I'm working on. Are you interested in doing that?
> >
>
> Certainly, I'm willing to give it a try. If a folio can include vmalloc information
> or more information, this is great. I may need to understand the background of why
> you proposed this method in the past.
I can't find the proposal now, but it's basically this:
Turn PG_slab into a PG_kernel. If PG_kernel is set, then other flags
change their meaning. Flags that should be reusable: writeback,
referenced, uptodate, lru, active, workingset, private, reclaim
One of those flags gets reused to be the new slab. So, eg
folio_test_slab() becomes:
return (folio->flags & (PG_kernel | PG_slab)) == (PG_kernel | PG_slab);
Now we have somewhere that we can use for PG_vmalloc (also PG_reserved
can become a PG_kernel sub-flag, freeing up a page flag).
We'd need to change some helpers. eg folio_mapping() currently does:
if (unlikely(folio_test_slab(folio)))
return NULL;
and that should be:
if (unlikely(folio_test_kernel(folio)))
return NULL;
With that in place, we can reuse the folio->mapping space to point to
the struct vm_struct that allocated it.
This isn't an easy project and will require a lot of testing. It has
some upsides, like freeing up a page flag.
next prev parent reply other threads:[~2023-11-09 16:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-09 3:25 [RFC][PATCH 0/4] mm, page_owner: make the owner in page owner clearer Jeff Xie
2023-11-09 3:25 ` [RFC][PATCH 1/4] mm, page_owner: add folio allocate post callback for struct page_owner to make the " Jeff Xie
2023-11-09 13:59 ` Matthew Wilcox
2023-11-09 15:25 ` Jeff Xie
2023-11-09 15:36 ` Matthew Wilcox
2023-11-09 16:04 ` jeff.xie
2023-11-09 16:38 ` Matthew Wilcox [this message]
2023-11-09 3:25 ` [RFC][PATCH 2/4] mm, slub: implement slub allocate post callback for page_owner Jeff Xie
2023-11-09 14:05 ` Matthew Wilcox
2023-11-09 15:34 ` jeff.xie
2023-11-09 3:25 ` [RFC][PATCH 3/4] filemap: implement filemap " Jeff Xie
2023-11-09 14:09 ` Matthew Wilcox
2023-11-09 15:43 ` jeff.xie
2023-11-09 15:46 ` Matthew Wilcox
2023-11-09 22:16 ` kernel test robot
2023-11-09 3:25 ` [RFC][PATCH 4/4] mm/rmap: implement anonmap " Jeff Xie
2023-11-09 14:10 ` Matthew Wilcox
2023-11-09 15:47 ` jeff.xie
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=ZU0LEYfu01W6sQLR@casper.infradead.org \
--to=willy@infradead.org \
--cc=42.hyeyoo@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=chensong_2000@189.cn \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=jeff.xie@linux.dev \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=vbabka@suse.cz \
--cc=xiehuan09@gmail.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.