All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Subject: [02/14] vcompound: pageflags: Add PageVcompound()
Date: Thu, 20 Mar 2008 23:17:05 -0700	[thread overview]
Message-ID: <20080321061724.515504935@sgi.com> (raw)
In-Reply-To: 20080321061703.921169367@sgi.com

[-- Attachment #1: 0004-vcompound-Pageflags-Add-PageVcompound.patch --]
[-- Type: text/plain, Size: 1555 bytes --]

Add a another page flag that can be used to figure out if a compound
page is virtually mapped. The mark is necessary since we have to know
when freeing pages if we have to destroy a virtual mapping.

No additional flag is needed. We use PG_swapcache together with PG_compound
(similar to PageHead() and PageTail()) to signal that a compound
page is virtually mapped. PG_swapcache is not used at this point since
compound pages cannot be put onto the LRU (yet).

Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
 include/linux/page-flags.h |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Index: linux-2.6.25-rc5-mm1/include/linux/page-flags.h
===================================================================
--- linux-2.6.25-rc5-mm1.orig/include/linux/page-flags.h	2008-03-20 17:40:16.141487362 -0700
+++ linux-2.6.25-rc5-mm1/include/linux/page-flags.h	2008-03-20 17:41:58.768233703 -0700
@@ -196,6 +196,24 @@ static inline int PageHighMem(struct pag
 }
 #endif
 
+/*
+ * PG_swapcache is used in combination with PG_compound to indicate
+ * that a compound page was allocated via vmalloc.
+ */
+#define PG_vcompound_mask ((1L << PG_compound) | (1L << PG_swapcache))
+#define PageVcompound(page)	((page->flags & PG_vcompound_mask) \
+					== PG_vcompound_mask)
+
+static inline void __SetPageVcompound(struct page *page)
+{
+	page->flags |= PG_vcompound_mask;
+}
+
+static inline void __ClearPageVcompound(struct page *page)
+{
+	page->flags &= ~PG_vcompound_mask;
+}
+
 #ifdef CONFIG_SWAP
 PAGEFLAG(SwapCache, swapcache)
 #else

-- 

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Lameter <clameter@sgi.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Subject: [02/14] vcompound: pageflags: Add PageVcompound()
Date: Thu, 20 Mar 2008 23:17:05 -0700	[thread overview]
Message-ID: <20080321061724.515504935@sgi.com> (raw)
In-Reply-To: 20080321061703.921169367@sgi.com

[-- Attachment #1: 0004-vcompound-Pageflags-Add-PageVcompound.patch --]
[-- Type: text/plain, Size: 1781 bytes --]

Add a another page flag that can be used to figure out if a compound
page is virtually mapped. The mark is necessary since we have to know
when freeing pages if we have to destroy a virtual mapping.

No additional flag is needed. We use PG_swapcache together with PG_compound
(similar to PageHead() and PageTail()) to signal that a compound
page is virtually mapped. PG_swapcache is not used at this point since
compound pages cannot be put onto the LRU (yet).

Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
 include/linux/page-flags.h |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Index: linux-2.6.25-rc5-mm1/include/linux/page-flags.h
===================================================================
--- linux-2.6.25-rc5-mm1.orig/include/linux/page-flags.h	2008-03-20 17:40:16.141487362 -0700
+++ linux-2.6.25-rc5-mm1/include/linux/page-flags.h	2008-03-20 17:41:58.768233703 -0700
@@ -196,6 +196,24 @@ static inline int PageHighMem(struct pag
 }
 #endif
 
+/*
+ * PG_swapcache is used in combination with PG_compound to indicate
+ * that a compound page was allocated via vmalloc.
+ */
+#define PG_vcompound_mask ((1L << PG_compound) | (1L << PG_swapcache))
+#define PageVcompound(page)	((page->flags & PG_vcompound_mask) \
+					== PG_vcompound_mask)
+
+static inline void __SetPageVcompound(struct page *page)
+{
+	page->flags |= PG_vcompound_mask;
+}
+
+static inline void __ClearPageVcompound(struct page *page)
+{
+	page->flags &= ~PG_vcompound_mask;
+}
+
 #ifdef CONFIG_SWAP
 PAGEFLAG(SwapCache, swapcache)
 #else

-- 

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2008-03-21  6:19 UTC|newest]

Thread overview: 212+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-21  6:17 [00/14] Virtual Compound Page Support V3 Christoph Lameter
2008-03-21  6:17 ` Christoph Lameter
2008-03-21  6:17 ` [01/14] vcompound: Return page array on vunmap Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` Christoph Lameter [this message]
2008-03-21  6:17   ` [02/14] vcompound: pageflags: Add PageVcompound() Christoph Lameter
2008-03-21  6:17 ` [03/14] vmallocinfo: Support display of vcompound for a virtual compound page Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  7:55   ` Eric Dumazet
2008-03-21  7:55     ` Eric Dumazet
2008-03-21 17:32     ` Christoph Lameter
2008-03-21 17:32       ` Christoph Lameter
2008-03-21  6:17 ` [04/14] vcompound: Core piece Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-22 12:10   ` KOSAKI Motohiro
2008-03-22 12:10     ` KOSAKI Motohiro
2008-03-24 18:28     ` Christoph Lameter
2008-03-24 18:28       ` Christoph Lameter
2008-03-21  6:17 ` [05/14] vcompound: Debugging aid Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` [06/14] vcompound: Virtual fallback for sparsemem Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` [07/14] vcompound: bit waitqueue support Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` [08/14] vcompound: Fallback for zone wait table Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` [09/14] vcompound: crypto: Fallback for temporary order 2 allocation Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` [10/14] vcompound: slub: Use for buffer to correlate allocation addresses Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  6:17 ` [11/14] vcompound: Fallbacks for order 1 stack allocations on IA64 and x86 Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  7:25   ` David Miller
2008-03-21  7:25     ` David Miller, Christoph Lameter
2008-03-21  8:39     ` Ingo Molnar
2008-03-21  8:39       ` Ingo Molnar
2008-03-21 17:33       ` Christoph Lameter
2008-03-21 17:33         ` Christoph Lameter
2008-03-21 19:02         ` Ingo Molnar
2008-03-21 19:02           ` Ingo Molnar
2008-03-21 19:04           ` Christoph Lameter
2008-03-21 19:04             ` Christoph Lameter
2008-03-21 17:40     ` Christoph Lameter
2008-03-21 17:40       ` Christoph Lameter
2008-03-21 21:57       ` David Miller
2008-03-21 21:57         ` David Miller, Christoph Lameter
2008-03-24 18:27         ` [11/14] vcompound: Fallbacks for order 1 stack allocations on Christoph Lameter
2008-03-24 18:27           ` [11/14] vcompound: Fallbacks for order 1 stack allocations on IA64 and x86 Christoph Lameter
2008-03-24 18:27           ` Christoph Lameter
2008-03-24 20:37           ` larger default page sizes David Miller
2008-03-24 20:37             ` David Miller, Christoph Lameter
2008-03-24 20:37             ` David Miller
2008-03-24 21:05             ` Christoph Lameter
2008-03-24 21:05               ` Christoph Lameter
2008-03-24 21:05               ` Christoph Lameter
2008-03-24 21:43               ` David Miller
2008-03-24 21:43                 ` David Miller, Christoph Lameter
2008-03-24 21:43                 ` David Miller
2008-03-25 17:48                 ` Christoph Lameter
2008-03-25 17:48                   ` Christoph Lameter
2008-03-25 17:48                   ` Christoph Lameter
2008-03-25 23:22                   ` David Miller
2008-03-25 23:22                     ` David Miller, Christoph Lameter
2008-03-25 23:22                     ` David Miller
2008-03-25 23:41                     ` Peter Chubb
2008-03-25 23:41                       ` Peter Chubb
2008-03-25 23:41                       ` Peter Chubb
2008-03-25 23:49                       ` David Miller
2008-03-25 23:49                         ` David Miller, Peter Chubb
2008-03-25 23:49                         ` David Miller
2008-03-26  0:25                         ` Peter Chubb
2008-03-26  0:25                           ` Peter Chubb
2008-03-26  0:25                           ` Peter Chubb
2008-03-26  0:31                           ` David Miller
2008-03-26  0:31                             ` David Miller, Peter Chubb
2008-03-26  0:31                             ` David Miller
2008-03-26  0:34                       ` David Mosberger-Tang
2008-03-26  0:34                         ` David Mosberger-Tang
2008-03-26  0:34                         ` David Mosberger-Tang
2008-03-26  0:39                         ` David Miller
2008-03-26  0:39                           ` David Miller, David Mosberger-Tang
2008-03-26  0:39                           ` David Miller
2008-03-26  0:57                         ` Peter Chubb
2008-03-26  0:57                           ` Peter Chubb
2008-03-26  0:57                           ` Peter Chubb
2008-03-26  4:16                           ` John Marvin
2008-03-26  4:16                             ` John Marvin
2008-03-26  4:16                             ` John Marvin
2008-03-26  4:36                             ` David Miller
2008-03-26  4:36                               ` David Miller, John Marvin
2008-03-26  4:36                               ` David Miller
2008-03-24 21:25             ` Luck, Tony
2008-03-24 21:25               ` Luck, Tony
2008-03-24 21:25               ` Luck, Tony
2008-03-24 21:46               ` David Miller
2008-03-24 21:46                 ` David Miller, Luck, Tony
2008-03-24 21:46                 ` David Miller
2008-03-25  3:29             ` Paul Mackerras
2008-03-25  3:29               ` Paul Mackerras
2008-03-25  3:29               ` Paul Mackerras
2008-03-25  4:15               ` David Miller
2008-03-25  4:15                 ` David Miller, Paul Mackerras
2008-03-25  4:15                 ` David Miller
2008-03-25 11:50                 ` Paul Mackerras
2008-03-25 11:50                   ` Paul Mackerras
2008-03-25 11:50                   ` Paul Mackerras
2008-03-25 23:32                   ` David Miller
2008-03-25 23:32                     ` David Miller, Paul Mackerras
2008-03-25 23:32                     ` David Miller
2008-03-25 23:49                     ` Luck, Tony
2008-03-25 23:49                       ` Luck, Tony
2008-03-25 23:49                       ` Luck, Tony
2008-03-26  0:16                       ` David Miller
2008-03-26  0:16                         ` David Miller, Luck, Tony
2008-03-26  0:16                         ` David Miller
2008-03-26 15:54                       ` Nish Aravamudan
2008-03-26 15:54                         ` Nish Aravamudan
2008-03-26 15:54                         ` Nish Aravamudan
2008-03-26 17:05                         ` Luck, Tony
2008-03-26 17:05                           ` Luck, Tony
2008-03-26 17:05                           ` Luck, Tony
2008-03-26 18:54                           ` Mel Gorman
2008-03-26 18:54                             ` Mel Gorman
2008-03-25 12:05               ` Andi Kleen
2008-03-25 12:05                 ` Andi Kleen
2008-03-25 12:05                 ` Andi Kleen
2008-03-25 21:27                 ` Paul Mackerras
2008-03-25 21:27                   ` Paul Mackerras
2008-03-25 21:27                   ` Paul Mackerras
2008-03-26  5:24                 ` Paul Mackerras
2008-03-26  5:24                   ` Paul Mackerras
2008-03-26  5:24                   ` Paul Mackerras
2008-03-26 15:59                   ` Linus Torvalds
2008-03-26 15:59                     ` Linus Torvalds
2008-03-26 15:59                     ` Linus Torvalds
2008-03-27  1:08                     ` Paul Mackerras
2008-03-27  1:08                       ` Paul Mackerras
2008-03-27  1:08                       ` Paul Mackerras
2008-03-26 17:56                   ` Christoph Lameter
2008-03-26 17:56                     ` Christoph Lameter
2008-03-26 17:56                     ` Christoph Lameter
2008-03-26 23:21                     ` David Miller
2008-03-26 23:21                       ` David Miller, Christoph Lameter
2008-03-26 23:21                       ` David Miller
2008-03-27  3:00                     ` Paul Mackerras
2008-03-27  3:00                       ` Paul Mackerras
2008-03-27  3:00                       ` Paul Mackerras
2008-03-25 18:27               ` Dave Hansen
2008-03-25 18:27                 ` Dave Hansen
2008-03-25 18:27                 ` Dave Hansen
2008-03-24 21:13           ` [11/14] vcompound: Fallbacks for order 1 stack allocations on IA64 and x86 Luck, Tony
2008-03-24 21:13             ` Luck, Tony
2008-03-24 21:13             ` Luck, Tony
2008-03-25 17:42             ` [11/14] vcompound: Fallbacks for order 1 stack allocations on Christoph Lameter
2008-03-25 17:42               ` [11/14] vcompound: Fallbacks for order 1 stack allocations on IA64 and x86 Christoph Lameter
2008-03-25 17:42               ` Christoph Lameter
2008-03-25 19:09               ` Luck, Tony
2008-03-25 19:09                 ` Luck, Tony
2008-03-25 19:09                 ` Luck, Tony
2008-03-25 19:25                 ` [11/14] vcompound: Fallbacks for order 1 stack allocations on Christoph Lameter
2008-03-25 19:25                   ` [11/14] vcompound: Fallbacks for order 1 stack allocations on IA64 and x86 Christoph Lameter
2008-03-25 19:25                   ` Christoph Lameter
2008-03-21 22:30   ` Andi Kleen
2008-03-21 22:30     ` Andi Kleen
2008-03-24 19:53     ` Christoph Lameter
2008-03-24 19:53       ` Christoph Lameter
2008-03-25  7:51       ` Andi Kleen
2008-03-25  7:51         ` Andi Kleen
2008-03-25 17:55         ` Christoph Lameter
2008-03-25 17:55           ` Christoph Lameter
2008-03-25 18:07           ` Andi Kleen
2008-03-25 18:07             ` Andi Kleen
2008-03-21  6:17 ` [12/14] vcompound: Avoid vmalloc in e1000 driver Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21 17:27   ` Kok, Auke
2008-03-21 17:27     ` Kok, Auke
2008-03-21  6:17 ` [13/14] vcompound: Use vcompound for swap_map Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21 21:25   ` Andi Kleen
2008-03-21 21:25     ` Andi Kleen
2008-03-21 21:33     ` Christoph Lameter
2008-03-21 21:33       ` Christoph Lameter
2008-03-24 19:54     ` Christoph Lameter
2008-03-24 19:54       ` Christoph Lameter
2008-03-25  7:52       ` Andi Kleen
2008-03-25  7:52         ` Andi Kleen
2008-03-25 17:45         ` Christoph Lameter
2008-03-25 17:45           ` Christoph Lameter
2008-03-25 17:55           ` Andi Kleen
2008-03-25 17:55             ` Andi Kleen
2008-03-25 17:51             ` Christoph Lameter
2008-03-25 17:51               ` Christoph Lameter
2008-03-21  6:17 ` [14/14] vcompound: Avoid vmalloc for ehash_locks Christoph Lameter
2008-03-21  6:17   ` Christoph Lameter
2008-03-21  7:02   ` Eric Dumazet
2008-03-21  7:02     ` Eric Dumazet
2008-03-21  7:03     ` Christoph Lameter
2008-03-21  7:03       ` Christoph Lameter
2008-03-21  7:31       ` David Miller
2008-03-21  7:31         ` David Miller, Christoph Lameter
2008-03-21  7:42         ` Eric Dumazet
2008-03-21  7:42           ` Eric Dumazet
2008-03-21  7:31     ` David Miller
2008-03-21  7:31       ` David Miller, Eric Dumazet
2008-03-21 17:31       ` Christoph Lameter
2008-03-21 17:31         ` Christoph Lameter
2008-03-22 18:40 ` [00/14] Virtual Compound Page Support V3 Arjan van de Ven
2008-03-22 18:40   ` Arjan van de Ven
2008-03-24 18:31   ` Christoph Lameter
2008-03-24 18:31     ` Christoph Lameter
2008-03-24 19:29     ` Christoph Lameter
2008-03-24 19:29       ` Christoph Lameter

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=20080321061724.515504935@sgi.com \
    --to=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 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.