linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Freeing page flags
@ 2022-05-12 20:54 Matthew Wilcox
  2022-05-13  2:41 ` Josef Bacik
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Matthew Wilcox @ 2022-05-12 20:54 UTC (permalink / raw)
  To: linux-fsdevel, linux-mm

The LWN writeup [1] on merging the MGLRU reminded me that I need to send
out a plan for removing page flags that we can do without.

1. PG_error.  It's basically useless.  If the page was read successfully,
PG_uptodate is set.  If not, PG_uptodate is clear.  The page cache
doesn't use PG_error.  Some filesystems do, and we need to transition
them away from using it.

2. PG_private.  This tells us whether we have anything stored at
page->private.  We can just check if page->private is NULL or not.
No need to have this extra bit.  Again, there may be some filesystems
that are a bit wonky here, but I'm sure they're fixable.

3. PG_mappedtodisk.  This is really only used by the buffer cache.
Once the filesystems that use bufferheads have been converted, this can
go away.

4. I think I can also consolidate PG_slab and PG_reserved into a "single
bit" (not really, but change the encoding so that effectively they only
take a single bit).

That gives us 4 bits back, which should relieve the pressure on page flag
bits for a while.  I have Thoughts on PG_private_2 and PG_owner_priv_1,
as well as a suspicion that not all combinations of referenced, lru,
active, workingset, reclaim and unevictable are possible, and there
might be scope for a better encoding.  But I don't know that we need to
do that work; gaining back 4 bits is already a Big Deal.

I'm slowly doing the PG_private transition as part of the folio work.
For example, eagle eyed reviewers may have spotted that there is no
folio_has_buffers().  Converted code calls folio_buffers() and checks
if it's NULL.  Help from filesystem maintainers on removing the uses of
PG_error gratefully appreciated.

[1] https://lwn.net/Articles/894859/

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-06-10 17:39 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-12 20:54 Freeing page flags Matthew Wilcox
2022-05-13  2:41 ` Josef Bacik
2022-05-13  3:39   ` Matthew Wilcox
2022-05-13  9:40     ` Luís Henriques
2022-05-13 12:53       ` Matthew Wilcox
2022-05-13 13:18         ` Luís Henriques
2022-05-13 13:21         ` Jeff Layton
2022-05-13 13:38           ` Matthew Wilcox
2022-05-13 13:57             ` Jeff Layton
2022-05-17  0:34         ` Xiubo Li
2022-05-13 13:17     ` Josef Bacik
2022-05-13  3:46 ` Yu Zhao
2022-05-14  6:10 ` Eric Biggers
2022-05-23  6:38 ` Mike Rapoport
2022-06-10 17:39   ` David Hildenbrand
2022-05-30 16:54 ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).