From: Andrew Morton <akpm@zip.com.au>
To: Dave McCracken <dmccr@us.ibm.com>
Cc: Linux Memory Management <linux-mm@kvack.org>
Subject: Re: [PATCH] Optimize out pte_chain take two
Date: Tue, 09 Jul 2002 17:21:11 -0700 [thread overview]
Message-ID: <3D2B7DF7.9528F0@zip.com.au> (raw)
In-Reply-To: <59590000.1026241454@baldur.austin.ibm.com>
Dave McCracken wrote:
>
> Here's a version of my pte_chain removal patch that does not use anonymous
> unions, so it'll compile with gcc 2.95. Once again, it's based on Rik's
> rmap-2.5.25-akpmtested.
Seems sane and simple, thanks.
This bit is icky:
+ union {
+ struct pte_chain * _pte_chain; /* Reverse pte mapping pointer.
* protected by PG_chainlock */
+ pte_t * _pte_direct;
+ } _pte_union;
...
+
+#define pte__chain _pte_union._pte_chain
+#define pte_direct _pte_union._pte_direct
You could instead make it just a void * and have:
static inline struct pte_chain *page_pte_chain(struct page *page)
{
#ifdef DEBUG_RMAP
BUG_ON(PageDirect(page));
#endif
return page->rmap_thingy;
}
static inline pte_t *page_pte_direct(struct page *page)
{
#ifdef DEBUG_RMAP
BUG_ON(!PageDirect(page));
#endif
return page->rmap_thingy;
}
static inline void
set_page_pte_chain(struct page *page, struct pte_chain *pte_chain)
{
#ifdef DEBUG_RMAP
BUG_ON(PageDirect(page));
#endif
page->rmap_thingy = pte_chain;
}
static inline void
set_page_pte_direct(struct page *page, pte_t *ptep)
{
#ifdef DEBUG_RMAP
BUG_ON(!PageDirect(page));
#endif
page->rmap_thingy = ptep;
}
I think it's neater. But then, I'm a convicted C++ weenie.
-
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
next prev parent reply other threads:[~2002-07-10 0:21 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-09 19:04 Dave McCracken
2002-07-10 0:21 ` Andrew Morton [this message]
2002-07-10 14:33 ` [PATCH] Optimize out pte_chain take three Dave McCracken
2002-07-10 15:18 ` Rik van Riel
2002-07-10 17:32 ` William Lee Irwin III
2002-07-10 20:01 ` Andrew Morton
2002-07-10 20:14 ` Rik van Riel
2002-07-10 20:28 ` Andrew Morton
2002-07-10 20:38 ` Rik van Riel
2002-07-13 13:42 ` Daniel Phillips
2002-07-10 20:33 ` Martin J. Bligh
2002-07-10 22:22 ` William Lee Irwin III
2002-07-11 0:39 ` Andrew Morton
2002-07-11 0:47 ` Rik van Riel
2002-07-11 1:27 ` Andrew Morton
2002-07-13 14:10 ` Daniel Phillips
2002-07-11 1:51 ` William Lee Irwin III
2002-07-11 2:28 ` William Lee Irwin III
2002-07-11 19:54 ` Andrew Morton
2002-07-11 20:05 ` Rik van Riel
2002-07-11 20:42 ` Andrew Morton
2002-07-11 20:54 ` Rik van Riel
2002-07-11 21:16 ` Andrew Morton
2002-07-11 21:41 ` Rik van Riel
2002-07-11 22:38 ` Andrew Morton
2002-07-11 23:18 ` Rik van Riel
2002-07-12 18:27 ` Paul Larson
2002-07-12 19:06 ` Andrew Morton
2002-07-12 19:28 ` Andrew Morton
2002-07-13 15:08 ` Daniel Phillips
2002-07-11 22:54 ` William Lee Irwin III
2002-07-13 14:52 ` Daniel Phillips
2002-07-13 14:08 ` Daniel Phillips
2002-07-13 14:20 ` Daniel Phillips
2002-07-13 14:45 ` Daniel Phillips
2002-07-13 13:22 ` Daniel Phillips
2002-07-13 13:30 ` William Lee Irwin III
2002-07-13 13:55 ` Daniel Phillips
2002-07-13 13:41 ` Daniel Phillips
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=3D2B7DF7.9528F0@zip.com.au \
--to=akpm@zip.com.au \
--cc=dmccr@us.ibm.com \
--cc=linux-mm@kvack.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