From: Andrew Morton <akpm@osdl.org>
To: Hugh Dickins <hugh@veritas.com>
Cc: linux-kernel@vger.kernel.org, torvalds@osdl.org
Subject: Re: [PATCH 01/15] mm: poison struct page for ptlock
Date: Tue, 15 Nov 2005 12:05:09 -0800 [thread overview]
Message-ID: <20051115120509.0de0cd85.akpm@osdl.org> (raw)
In-Reply-To: <Pine.LNX.4.61.0511151947010.7872@goblin.wat.veritas.com>
Hugh Dickins <hugh@veritas.com> wrote:
>
> On Tue, 15 Nov 2005, Andrew Morton wrote:
> >
> > It occurs to me that we can do the above if (__GNUC__ > 2), or whatever.
> >
> > That way, the only people who have a 4-byte-larger pageframe are those who
> > use CONFIG_PREEMPT, NR_CPUS>=4 and gcc-2.x.y. An acceptably small
> > community, I suspect.
>
> I can't really think of this at the moment (though the PageReserved
> fixups going smoother this evening). Acceptably small community, yes.
> But wouldn't it plunge us into the very mess of wrappers we were trying
> to avoid with anony structunions, to handle the __GNUC__ differences?
Nope, all the changes would be constrained to the definition of struct
page, and struct page is special.
struct page {
...
#if __GNUC__ > 2
union {
spinlock_t ptl;
struct {
unsigned long private;
struct address_space *mapping;
}
}
#else
union {
unsigned long private;
spinlock_t ptl;
} u;
struct address_space *mapping;
#endif
and
#if __GNUC__ > 2
#define page_private(page) ((page)->private)
#define set_page_private(page, v) ((page)->private = (v))
#else
#define page_private(page) ((page)->u.private)
#define set_page_private(page, v) ((page)->u.private = (v))
#endif
Of course, adding "u." and "u.s." all over the place would be a sane
solution, but we can do that later - I'm sure we'll be changing struct page
again.
View the above as "a space optimisation made possible by gcc-3.x".
next prev parent reply other threads:[~2005-11-15 20:05 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-10 1:42 [PATCH 00/15] mm: struct page lock and counts Hugh Dickins
2005-11-10 1:43 ` [PATCH 01/15] mm: poison struct page for ptlock Hugh Dickins
2005-11-10 2:10 ` Andrew Morton
2005-11-10 2:22 ` Hugh Dickins
2005-11-10 2:56 ` Andrew Morton
2005-11-10 2:58 ` Andrew Morton
2005-11-10 11:28 ` Ingo Molnar
2005-11-10 12:06 ` Ingo Molnar
2005-11-10 12:26 ` Andrew Morton
2005-11-10 21:37 ` Christoph Lameter
2005-11-10 21:52 ` Christoph Hellwig
2005-11-11 10:46 ` Ingo Molnar
2005-11-12 23:48 ` Adrian Bunk
2005-11-10 12:35 ` Hugh Dickins
2005-11-10 12:51 ` Andrew Morton
2005-11-10 13:29 ` Hugh Dickins
2005-11-10 15:00 ` Ingo Molnar
2005-11-10 15:38 ` Hugh Dickins
2005-11-10 19:49 ` Andrew Morton
2005-11-10 19:56 ` Linus Torvalds
2005-11-11 0:10 ` Russell King
2005-11-12 6:27 ` Benjamin Herrenschmidt
2005-11-11 15:02 ` Hugh Dickins
2005-11-15 18:49 ` Andrew Morton
2005-11-15 19:51 ` Hugh Dickins
2005-11-15 20:05 ` Andrew Morton [this message]
2005-11-10 1:44 ` [PATCH 02/15] mm: revert page_private Hugh Dickins
2005-11-10 1:46 ` [PATCH 03/15] mm reiser4: " Hugh Dickins
2005-11-10 1:47 ` [PATCH 04/15] mm: update split ptlock Kconfig Hugh Dickins
2005-11-10 1:48 ` [PATCH 05/15] mm: unbloat get_futex_key Hugh Dickins
2005-11-10 1:50 ` [PATCH 06/15] mm: remove ppc highpte Hugh Dickins
2005-11-10 1:52 ` Benjamin Herrenschmidt
2005-11-10 1:55 ` Paul Mackerras
2005-11-10 2:46 ` Hugh Dickins
2005-11-10 1:51 ` [PATCH 07/15] mm: powerpc ptlock comments Hugh Dickins
2005-11-10 1:53 ` [PATCH 08/15] mm: powerpc init_mm without ptlock Hugh Dickins
2005-11-10 1:56 ` [PATCH 09/15] mm: fill arch atomic64 gaps Hugh Dickins
2005-11-10 13:38 ` Andi Kleen
2005-11-10 15:19 ` Hugh Dickins
2005-11-10 1:57 ` [PATCH 10/15] mm: atomic64 page counts Hugh Dickins
2005-11-10 2:16 ` Andrew Morton
2005-11-10 2:33 ` Hugh Dickins
2005-11-10 3:01 ` Andrew Morton
2005-11-10 21:43 ` Christoph Lameter
2005-11-10 21:53 ` Andrew Morton
2005-11-11 15:25 ` Hugh Dickins
2005-11-11 18:03 ` Christoph Lameter
2005-11-10 2:00 ` [PATCH 11/15] mm: long " Hugh Dickins
2005-11-10 2:01 ` [PATCH 12/15] mm reiser4: " Hugh Dickins
2005-11-10 2:03 ` [PATCH 13/15] mm: get_user_pages check count Hugh Dickins
2005-11-10 2:08 ` [PATCH 14/15] mm: inc_page_table_pages check max Hugh Dickins
2005-11-10 2:09 ` [PATCH 15/15] mm: remove install_page limit Hugh Dickins
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=20051115120509.0de0cd85.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome