From: Andrew Morton <akpm@zip.com.au>
To: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [BK PATCH 2.5] Introduce 64-bit versions of PAGE_{CACHE_,}{MASK,ALIGN}
Date: Sun, 28 Jul 2002 17:10:48 -0700 [thread overview]
Message-ID: <3D448808.CF8D18BA@zip.com.au> (raw)
In-Reply-To: Pine.LNX.4.44.0207281622350.8208-100000@home.transmeta.com
Linus Torvalds wrote:
>
> ...
> Dream on. It's good, and it's not getting removed. The "struct page" is
> size-critical, and also correctness-critical (see above on gcc issues).
>
Plan B is to remove page->index.
- Replace ->mapping with a pointer to the page's radix tree
slot. Use address masking to go from page.radix_tree_slot
to the radix tree node.
- Store the base index in the radix tree node, use math to
derive page->index. Gives 64-bit index without increasing
the size of struct page. 4 bytes saved.
- Implement radix_tree_gang_lookup() as previously described. Use
this in truncate_inode_pages, invalidate_inode_pages[2], readahead
and writeback.
- The only thing we now need page.list for is tracking dirty pages.
Implement a 64-bit dirtiness bitmap in radix_tree_node, propagate
that up the radix tree so we can efficiently traverse dirty pages
in a mapping. This also allows writeback to always write in ascending
index order. Remove page->list. 8 bytes saved.
- Few pages use ->private for much. Hash for it. 4(ish) bytes
saved.
- Remove ->virtual, do page_address() via a hash. 4(ish) bytes saved.
- Remove the rmap chain (I just broke ptep_to_address() anyway). 4 bytes
saved. struct page is now 20 bytes.
There look. In five minutes I shrunk 24 bytes from the page
structure. Who said programming was hard?
-
next prev parent reply other threads:[~2002-07-28 23:58 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-27 13:41 [BK PATCH 2.5] Introduce 64-bit versions of PAGE_{CACHE_,}{MASK,ALIGN} Anton Altaparmakov
2002-07-27 17:23 ` Andrew Morton
2002-07-28 17:53 ` Eric W. Biederman
2002-07-28 18:54 ` Anton Altaparmakov
2002-07-28 20:12 ` Eric W. Biederman
2002-07-28 23:26 ` Linus Torvalds
2002-07-29 0:10 ` Andrew Morton [this message]
2002-07-29 0:43 ` William Lee Irwin III
2002-07-29 0:56 ` Andrea Arcangeli
2002-07-29 1:04 ` William Lee Irwin III
2002-07-29 1:09 ` Rik van Riel
2002-07-29 2:14 ` Andrew Morton
2002-07-29 2:11 ` William Lee Irwin III
2002-07-29 2:18 ` Rik van Riel
2002-07-29 0:49 ` Andrea Arcangeli
2002-07-29 2:05 ` Andrew Morton
2002-07-29 2:09 ` William Lee Irwin III
2002-07-29 20:52 ` Andrea Arcangeli
2002-07-29 21:01 ` Andrew Morton
2002-07-29 21:31 ` Andrea Arcangeli
2002-07-29 21:46 ` Andrew Morton
2002-07-29 22:18 ` Andrea Arcangeli
2002-07-29 0:56 ` William Lee Irwin III
2002-07-29 1:36 ` Andrew Morton
2002-07-29 1:37 ` William Lee Irwin III
2002-07-29 9:27 ` Russell King
2002-07-29 18:32 ` Andrew Morton
[not found] <5.1.0.14.2.20020728193528.04336a80@pop.cus.cam.ac.uk.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.44.0207281622350.8208-100000@home.transmeta.com.suse.lists.linux.kernel>
[not found] ` <3D448808.CF8D18BA@zip.com.au.suse.lists.linux.kernel>
[not found] ` <20020729004942.GL1201@dualathlon.random.suse.lists.linux.kernel>
[not found] ` <3D44A2DF.F751B564@zip.com.au.suse.lists.linux.kernel>
[not found] ` <20020729205211.GB1201@dualathlon.random.suse.lists.linux.kernel>
2002-07-30 13:44 ` Andi Kleen
2002-07-30 14:06 ` Rik van Riel
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=3D448808.CF8D18BA@zip.com.au \
--to=akpm@zip.com.au \
--cc=linux-kernel@vger.kernel.org \
/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.