All of lore.kernel.org
 help / color / mirror / Atom feed
From: shaggy@linux.vnet.ibm.com
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, Paul Mackerras <paulus@au1.ibm.com>,
	Linuxppc-dev@ozlabs.org
Subject: [patch 3/6] powerpc: Define flags for Strong Access Ordering
Date: Wed, 18 Jun 2008 17:32:57 -0500	[thread overview]
Message-ID: <20080618223329.166670421@linux.vnet.ibm.com> (raw)
In-Reply-To: 20080618223254.966080905@linux.vnet.ibm.com

This patch defines:

- PROT_SAO, which is passed into mmap() and mprotect() in the prot field
- VM_SAO in vma->vm_flags, and
- _PAGE_SAO, the combination of WIMG bits in the pte that enables strong
access ordering for the page.

NOTE: There doesn't seem to be a precedent for architecture-dependent vm_flags.
It may be better to define VM_SAO somewhere in include/asm-powerpc/.  Since
vm_flags is a long, defining it in the high-order word would help prevent a
collision with any newly added values in architecture-independent code.

Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
---

 include/asm-powerpc/mman.h          |    2 ++
 include/asm-powerpc/pgtable-ppc64.h |    3 +++
 include/linux/mm.h                  |    1 +
 3 files changed, 6 insertions(+)

Index: linux-2.6.26-rc5/include/asm-powerpc/mman.h
===================================================================
--- linux-2.6.26-rc5.orig/include/asm-powerpc/mman.h
+++ linux-2.6.26-rc5/include/asm-powerpc/mman.h
@@ -10,6 +10,8 @@
  * 2 of the License, or (at your option) any later version.
  */
 
+#define PROT_SAO	0x10		/* Strong Access Ordering */
+
 #define MAP_RENAME      MAP_ANONYMOUS   /* In SunOS terminology */
 #define MAP_NORESERVE   0x40            /* don't reserve swap pages */
 #define MAP_LOCKED	0x80
Index: linux-2.6.26-rc5/include/asm-powerpc/pgtable-ppc64.h
===================================================================
--- linux-2.6.26-rc5.orig/include/asm-powerpc/pgtable-ppc64.h
+++ linux-2.6.26-rc5/include/asm-powerpc/pgtable-ppc64.h
@@ -94,6 +94,9 @@
 #define _PAGE_HASHPTE	0x0400 /* software: pte has an associated HPTE */
 #define _PAGE_BUSY	0x0800 /* software: PTE & hash are busy */
 
+/* Strong Access Ordering */
+#define _PAGE_SAO	(_PAGE_WRITETHRU | _PAGE_NO_CACHE | _PAGE_COHERENT)
+
 #define _PAGE_BASE	(_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_COHERENT)
 
 #define _PAGE_WRENABLE	(_PAGE_RW | _PAGE_DIRTY)
Index: linux-2.6.26-rc5/include/linux/mm.h
===================================================================
--- linux-2.6.26-rc5.orig/include/linux/mm.h
+++ linux-2.6.26-rc5/include/linux/mm.h
@@ -108,6 +108,7 @@ extern unsigned int kobjsize(const void 
 
 #define VM_CAN_NONLINEAR 0x08000000	/* Has ->fault & does nonlinear pages */
 #define VM_MIXEDMAP	0x10000000	/* Can contain "struct page" and pure PFN pages */
+#define VM_SAO		0x20000000	/* Strong Access Ordering (powerpc) */
 
 #ifndef VM_STACK_DEFAULT_FLAGS		/* arch can override this */
 #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS

-- 

WARNING: multiple messages have this Message-ID (diff)
From: shaggy@linux.vnet.ibm.com
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Paul Mackerras <paulus@au1.ibm.com>,
	linux-mm@kvack.org, Linuxppc-dev@ozlabs.org
Subject: [patch 3/6] powerpc: Define flags for Strong Access Ordering
Date: Wed, 18 Jun 2008 17:32:57 -0500	[thread overview]
Message-ID: <20080618223329.166670421@linux.vnet.ibm.com> (raw)
In-Reply-To: 20080618223254.966080905@linux.vnet.ibm.com

[-- Attachment #1: SAO-defines.patch --]
[-- Type: text/plain, Size: 2761 bytes --]

This patch defines:

- PROT_SAO, which is passed into mmap() and mprotect() in the prot field
- VM_SAO in vma->vm_flags, and
- _PAGE_SAO, the combination of WIMG bits in the pte that enables strong
access ordering for the page.

NOTE: There doesn't seem to be a precedent for architecture-dependent vm_flags.
It may be better to define VM_SAO somewhere in include/asm-powerpc/.  Since
vm_flags is a long, defining it in the high-order word would help prevent a
collision with any newly added values in architecture-independent code.

Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
---

 include/asm-powerpc/mman.h          |    2 ++
 include/asm-powerpc/pgtable-ppc64.h |    3 +++
 include/linux/mm.h                  |    1 +
 3 files changed, 6 insertions(+)

Index: linux-2.6.26-rc5/include/asm-powerpc/mman.h
===================================================================
--- linux-2.6.26-rc5.orig/include/asm-powerpc/mman.h
+++ linux-2.6.26-rc5/include/asm-powerpc/mman.h
@@ -10,6 +10,8 @@
  * 2 of the License, or (at your option) any later version.
  */
 
+#define PROT_SAO	0x10		/* Strong Access Ordering */
+
 #define MAP_RENAME      MAP_ANONYMOUS   /* In SunOS terminology */
 #define MAP_NORESERVE   0x40            /* don't reserve swap pages */
 #define MAP_LOCKED	0x80
Index: linux-2.6.26-rc5/include/asm-powerpc/pgtable-ppc64.h
===================================================================
--- linux-2.6.26-rc5.orig/include/asm-powerpc/pgtable-ppc64.h
+++ linux-2.6.26-rc5/include/asm-powerpc/pgtable-ppc64.h
@@ -94,6 +94,9 @@
 #define _PAGE_HASHPTE	0x0400 /* software: pte has an associated HPTE */
 #define _PAGE_BUSY	0x0800 /* software: PTE & hash are busy */
 
+/* Strong Access Ordering */
+#define _PAGE_SAO	(_PAGE_WRITETHRU | _PAGE_NO_CACHE | _PAGE_COHERENT)
+
 #define _PAGE_BASE	(_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_COHERENT)
 
 #define _PAGE_WRENABLE	(_PAGE_RW | _PAGE_DIRTY)
Index: linux-2.6.26-rc5/include/linux/mm.h
===================================================================
--- linux-2.6.26-rc5.orig/include/linux/mm.h
+++ linux-2.6.26-rc5/include/linux/mm.h
@@ -108,6 +108,7 @@ extern unsigned int kobjsize(const void 
 
 #define VM_CAN_NONLINEAR 0x08000000	/* Has ->fault & does nonlinear pages */
 #define VM_MIXEDMAP	0x10000000	/* Can contain "struct page" and pure PFN pages */
+#define VM_SAO		0x20000000	/* Strong Access Ordering (powerpc) */
 
 #ifndef VM_STACK_DEFAULT_FLAGS		/* arch can override this */
 #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS

-- 

--
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-06-18 22:32 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-18 22:32 [patch 0/6] Strong Access Ordering page attributes for POWER7 shaggy
2008-06-18 22:32 ` shaggy
2008-06-18 22:32 ` [patch 1/6] mm: Allow architectures to define additional protection bits shaggy
2008-06-18 22:32   ` shaggy
2008-07-01  8:53   ` Andrew Morton
2008-07-01  8:53     ` Andrew Morton
2008-07-01 13:54     ` Dave Kleikamp
2008-07-01 13:54       ` Dave Kleikamp
2008-07-07  5:52       ` Benjamin Herrenschmidt
2008-07-07  5:52         ` Benjamin Herrenschmidt
2008-07-07 21:11         ` Hugh Dickins
2008-07-07 21:11           ` Hugh Dickins
2008-07-07 22:24           ` Benjamin Herrenschmidt
2008-07-07 22:24             ` Benjamin Herrenschmidt
2008-07-08  6:18             ` Benjamin Herrenschmidt
2008-07-08  6:18               ` Benjamin Herrenschmidt
2008-07-08 13:00               ` Hugh Dickins
2008-07-08 13:00                 ` Hugh Dickins
2008-07-08 13:35               ` Dave Kleikamp
2008-07-08 13:35                 ` Dave Kleikamp
2008-06-18 22:32 ` [patch 2/6] powerpc: hash_huge_page() should get the WIMG bits from the lpte shaggy
2008-06-18 22:32   ` shaggy
2008-06-18 22:32 ` shaggy [this message]
2008-06-18 22:32   ` [patch 3/6] powerpc: Define flags for Strong Access Ordering shaggy
2008-06-18 22:32 ` [patch 4/6] powerpc: Add SAO Feature bit to the cputable shaggy
2008-06-18 22:32   ` shaggy
2008-06-18 22:32 ` [patch 5/6] powerpc: Add Strong Access Ordering shaggy
2008-06-18 22:32   ` shaggy
2008-06-18 22:33 ` [patch 6/6] powerpc: Dont clear _PAGE_COHERENT when _PAGE_SAO is set shaggy
2008-06-18 22:33   ` shaggy
2008-07-03 23:39 ` [patch 0/6] Strong Access Ordering page attributes for POWER7 Benjamin Herrenschmidt
2008-07-03 23:39   ` Benjamin Herrenschmidt
2008-07-07 14:05   ` Dave Kleikamp
2008-07-07 14:05     ` Dave Kleikamp
2008-07-07 21:23     ` Joel Schopp
2008-07-07 21:23       ` Joel Schopp
2008-07-07 22:27       ` Benjamin Herrenschmidt
2008-07-07 22:27         ` Benjamin Herrenschmidt

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=20080618223329.166670421@linux.vnet.ibm.com \
    --to=shaggy@linux.vnet.ibm.com \
    --cc=Linuxppc-dev@ozlabs.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=paulus@au1.ibm.com \
    /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.