From: Navid <navid.emamdoost@gmail.com>
To: willy@infradead.org
Cc: bpf@vger.kernel.org, linux-block@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-ide@vger.kernel.org,
linux-mm@kvack.org, linux-nvme@lists.infradead.org,
linux-scsi@vger.kernel.org, lsf-pc@lists.linux-foundation.org,
navid.emamdoost@gmail.com, yuzhao@google.com
Subject: Re: [LSF/MM/BPF TOPIC] Reclaiming & documenting page flags
Date: Fri, 17 May 2024 21:32:31 +0000 [thread overview]
Message-ID: <20240517213231.2934591-1-navid.emamdoost@gmail.com> (raw)
In-Reply-To: <Zbcn-P4QKgBhyxdO@casper.infradead.org>
On Mon, 2024-01-29 at 04:32 +0000, Matthew Wilcox wrote:
> Our documentation of the current page flags is ... not great. I think
> I can improve it for the page cache side of things; I understand the
> meanings of locked, writeback, uptodate, dirty, head, waiters, slab,
> mlocked, mappedtodisk, error, hwpoison, readahead, anon_exclusive,
> has_hwpoisoned, hugetlb and large_remappable.
>
> Where I'm a lot more shaky is the meaning of the more "real MM" flags,
> like active, referenced, lru, workingset, reserved, reclaim, swapbacked,
> unevictable, young, idle, swapcache, isolated, and reported.
>
> Perhaps we could have an MM session where we try to explain slowly and
> carefully to each other what all these flags actually mean, talk about
> what combinations of them make sense, how we might eliminate some of
> them to make more space in the flags word, and what all this looks like
> in a memdesc world.
>
> And maybe we can get some documentation written about it! Not trying
> to nerd snipe Jon into attending this session, but if he did ...
>
> [thanks to Amir for reminding me that I meant to propose this topic]
>
On the "Reclaiming" part of this thread, we might consider this:
Optimizing Page Flags: Reclaiming Bits in page->flags via folio->lru
Limited bit space in the Linux kernel's page->flags field, especially on 32-bit
architectures, is a source of challenge [1]. This proposal aims to free up bits
by relocating flags like PG_active and PG_unevictable to the lower bits of
folio->lru as they are always unset. It helps with encoding zone, numa node,
and sparsemem section [2].
Proposed Process:
Candidate Evaluation: Assess flags for relocation suitability based on usage,
dependencies, and functional impact.
Impact Assessment: Evaluate the impact on kernel code to ensure correct behavior
and compatibility.
Relocation Implementation: Modify code to read/write flags from folio->lru and
adjust related macros/functions.
Thoroughly test changes.
[1] https://lwn.net/Articles/335768/
[2] https://blogs.oracle.com/linux/post/struct-page-the-linux-physical-page-frame-data-structure
prev parent reply other threads:[~2024-05-17 21:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-29 4:32 Matthew Wilcox
2024-02-02 16:28 ` Matthew Wilcox
2024-02-04 10:39 ` Mike Rapoport
2024-02-04 21:34 ` Matthew Wilcox
2024-02-07 15:51 ` Mike Rapoport
2024-02-19 20:13 ` Matthew Wilcox
2024-02-19 22:45 ` NeilBrown
2024-02-19 23:29 ` Matthew Wilcox
2024-02-20 0:21 ` NeilBrown
2024-02-20 7:16 ` Hannes Reinecke
2024-02-17 11:57 ` Muhammad Usama Anjum
2024-05-17 21:32 ` Navid [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=20240517213231.2934591-1-navid.emamdoost@gmail.com \
--to=navid.emamdoost@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lsf-pc@lists.linux-foundation.org \
--cc=willy@infradead.org \
--cc=yuzhao@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox