From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
To: akpm@linux-foundation.org
Cc: peterz@infradead.org, mingo@kernel.org, davej@redhat.com,
sasha.levin@oracle.com, hughd@google.com, linux-mm@kvack.org,
linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
"David S. Miller" <davem@davemloft.net>
Subject: [PATCH 33/38] sparc: drop pte_file()-related helpers
Date: Wed, 24 Dec 2014 14:22:41 +0200 [thread overview]
Message-ID: <1419423766-114457-34-git-send-email-kirill.shutemov@linux.intel.com> (raw)
In-Reply-To: <1419423766-114457-1-git-send-email-kirill.shutemov@linux.intel.com>
We've replaced remap_file_pages(2) implementation with emulation.
Nobody creates non-linear mapping anymore.
This patch also increase number of bits availble for swap offset.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: "David S. Miller" <davem@davemloft.net>
---
arch/sparc/include/asm/pgtable_32.h | 24 ----------------------
arch/sparc/include/asm/pgtable_64.h | 40 -------------------------------------
arch/sparc/include/asm/pgtsrmmu.h | 14 +++++--------
3 files changed, 5 insertions(+), 73 deletions(-)
diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
index b9b91ae19fe1..b2f7dc46a7d1 100644
--- a/arch/sparc/include/asm/pgtable_32.h
+++ b/arch/sparc/include/asm/pgtable_32.h
@@ -221,14 +221,6 @@ static inline int pte_young(pte_t pte)
return pte_val(pte) & SRMMU_REF;
}
-/*
- * The following only work if pte_present() is not true.
- */
-static inline int pte_file(pte_t pte)
-{
- return pte_val(pte) & SRMMU_FILE;
-}
-
static inline int pte_special(pte_t pte)
{
return 0;
@@ -375,22 +367,6 @@ static inline swp_entry_t __swp_entry(unsigned long type, unsigned long offset)
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
-/* file-offset-in-pte helpers */
-static inline unsigned long pte_to_pgoff(pte_t pte)
-{
- return pte_val(pte) >> SRMMU_PTE_FILE_SHIFT;
-}
-
-static inline pte_t pgoff_to_pte(unsigned long pgoff)
-{
- return __pte((pgoff << SRMMU_PTE_FILE_SHIFT) | SRMMU_FILE);
-}
-
-/*
- * This is made a constant because mm/fremap.c required a constant.
- */
-#define PTE_FILE_MAX_BITS 24
-
static inline unsigned long
__get_phys (unsigned long addr)
{
diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
index e890921d5a7a..ecd207f7eef3 100644
--- a/arch/sparc/include/asm/pgtable_64.h
+++ b/arch/sparc/include/asm/pgtable_64.h
@@ -137,7 +137,6 @@ bool kern_addr_valid(unsigned long addr);
#define _PAGE_SOFT_4U _AC(0x0000000000001F80,UL) /* Software bits: */
#define _PAGE_EXEC_4U _AC(0x0000000000001000,UL) /* Executable SW bit */
#define _PAGE_MODIFIED_4U _AC(0x0000000000000800,UL) /* Modified (dirty) */
-#define _PAGE_FILE_4U _AC(0x0000000000000800,UL) /* Pagecache page */
#define _PAGE_ACCESSED_4U _AC(0x0000000000000400,UL) /* Accessed (ref'd) */
#define _PAGE_READ_4U _AC(0x0000000000000200,UL) /* Readable SW Bit */
#define _PAGE_WRITE_4U _AC(0x0000000000000100,UL) /* Writable SW Bit */
@@ -167,7 +166,6 @@ bool kern_addr_valid(unsigned long addr);
#define _PAGE_EXEC_4V _AC(0x0000000000000080,UL) /* Executable Page */
#define _PAGE_W_4V _AC(0x0000000000000040,UL) /* Writable */
#define _PAGE_SOFT_4V _AC(0x0000000000000030,UL) /* Software bits */
-#define _PAGE_FILE_4V _AC(0x0000000000000020,UL) /* Pagecache page */
#define _PAGE_PRESENT_4V _AC(0x0000000000000010,UL) /* Present */
#define _PAGE_RESV_4V _AC(0x0000000000000008,UL) /* Reserved */
#define _PAGE_SZ16GB_4V _AC(0x0000000000000007,UL) /* 16GB Page */
@@ -332,22 +330,6 @@ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
}
#endif
-static inline pte_t pgoff_to_pte(unsigned long off)
-{
- off <<= PAGE_SHIFT;
-
- __asm__ __volatile__(
- "\n661: or %0, %2, %0\n"
- " .section .sun4v_1insn_patch, \"ax\"\n"
- " .word 661b\n"
- " or %0, %3, %0\n"
- " .previous\n"
- : "=r" (off)
- : "0" (off), "i" (_PAGE_FILE_4U), "i" (_PAGE_FILE_4V));
-
- return __pte(off);
-}
-
static inline pgprot_t pgprot_noncached(pgprot_t prot)
{
unsigned long val = pgprot_val(prot);
@@ -609,22 +591,6 @@ static inline unsigned long pte_exec(pte_t pte)
return (pte_val(pte) & mask);
}
-static inline unsigned long pte_file(pte_t pte)
-{
- unsigned long val = pte_val(pte);
-
- __asm__ __volatile__(
- "\n661: and %0, %2, %0\n"
- " .section .sun4v_1insn_patch, \"ax\"\n"
- " .word 661b\n"
- " and %0, %3, %0\n"
- " .previous\n"
- : "=r" (val)
- : "0" (val), "i" (_PAGE_FILE_4U), "i" (_PAGE_FILE_4V));
-
- return val;
-}
-
static inline unsigned long pte_present(pte_t pte)
{
unsigned long val = pte_val(pte);
@@ -980,12 +946,6 @@ pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp);
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
-/* File offset in PTE support. */
-unsigned long pte_file(pte_t);
-#define pte_to_pgoff(pte) (pte_val(pte) >> PAGE_SHIFT)
-pte_t pgoff_to_pte(unsigned long);
-#define PTE_FILE_MAX_BITS (64UL - PAGE_SHIFT - 1UL)
-
int page_in_phys_avail(unsigned long paddr);
/*
diff --git a/arch/sparc/include/asm/pgtsrmmu.h b/arch/sparc/include/asm/pgtsrmmu.h
index 79da17866fa8..ae51a111a8c7 100644
--- a/arch/sparc/include/asm/pgtsrmmu.h
+++ b/arch/sparc/include/asm/pgtsrmmu.h
@@ -80,10 +80,6 @@
#define SRMMU_PRIV 0x1c
#define SRMMU_PRIV_RDONLY 0x18
-#define SRMMU_FILE 0x40 /* Implemented in software */
-
-#define SRMMU_PTE_FILE_SHIFT 8 /* == 32-PTE_FILE_MAX_BITS */
-
#define SRMMU_CHG_MASK (0xffffff00 | SRMMU_REF | SRMMU_DIRTY)
/* SRMMU swap entry encoding
@@ -94,13 +90,13 @@
* oooooooooooooooooootttttRRRRRRRR
* fedcba9876543210fedcba9876543210
*
- * The bottom 8 bits are reserved for protection and status bits, especially
- * FILE and PRESENT.
+ * The bottom 7 bits are reserved for protection and status bits, especially
+ * PRESENT.
*/
#define SRMMU_SWP_TYPE_MASK 0x1f
-#define SRMMU_SWP_TYPE_SHIFT SRMMU_PTE_FILE_SHIFT
-#define SRMMU_SWP_OFF_MASK 0x7ffff
-#define SRMMU_SWP_OFF_SHIFT (SRMMU_PTE_FILE_SHIFT + 5)
+#define SRMMU_SWP_TYPE_SHIFT 7
+#define SRMMU_SWP_OFF_MASK 0xfffff
+#define SRMMU_SWP_OFF_SHIFT (SRMMU_SWP_TYPE_SHIFT + 5)
/* Some day I will implement true fine grained access bits for
* user pages because the SRMMU gives us the capabilities to
--
2.1.3
--
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>
next prev parent reply other threads:[~2014-12-24 12:29 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-24 12:22 [PATCH 00/38] mm: remove non-linear mess Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 01/38] mm: drop support of non-linear mapping from unmap/zap codepath Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 02/38] mm: drop support of non-linear mapping from fault codepath Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 03/38] mm: drop vm_ops->remap_pages and generic_file_remap_pages() stub Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 04/38] proc: drop handling non-linear mappings Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 05/38] rmap: drop support of " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 06/38] mm: replace vma->sharead.linear with vma->shared Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 07/38] mm: remove rest usage of VM_NONLINEAR and pte_file() Kirill A. Shutemov
2014-12-24 14:02 ` [PATCHv2 " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 08/38] asm-generic: drop unused pte_file* helpers Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 09/38] alpha: drop _PAGE_FILE and pte_file()-related helpers Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 10/38] arc: " Kirill A. Shutemov
2014-12-24 12:29 ` Vineet Gupta
2014-12-24 12:22 ` [PATCH 11/38] arm64: drop PTE_FILE " Kirill A. Shutemov
2014-12-24 17:23 ` Catalin Marinas
2014-12-24 12:22 ` [PATCH 12/38] arm: drop L_PTE_FILE " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 13/38] avr32: drop _PAGE_FILE " Kirill A. Shutemov
2014-12-24 14:15 ` Hans-Christian Egtvedt
2014-12-24 12:22 ` [PATCH 14/38] blackfin: drop pte_file() Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 15/38] c6x: " Kirill A. Shutemov
2014-12-24 14:08 ` Mark Salter
2014-12-24 12:22 ` [PATCH 16/38] cris: drop _PAGE_FILE and pte_file()-related helpers Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 17/38] frv: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 18/38] hexagon: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 19/38] ia64: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 20/38] m32r: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 21/38] m68k: " Kirill A. Shutemov
2014-12-29 12:16 ` [PATCHv2 " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 22/38] metag: " Kirill A. Shutemov
2015-01-02 16:03 ` James Hogan
2014-12-24 12:22 ` [PATCH 23/38] microblaze: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 24/38] mips: " Kirill A. Shutemov
2014-12-25 10:08 ` Geert Uytterhoeven
2014-12-25 10:18 ` Kirill A. Shutemov
2014-12-29 12:17 ` [PATCHv2 " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 25/38] mn10300: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 26/38] nios2: " Kirill A. Shutemov
2014-12-25 12:30 ` Tobias Klauser
2014-12-26 5:52 ` Ley Foon Tan
2014-12-24 12:22 ` [PATCH 27/38] openrisc: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 28/38] parisc: " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 29/38] powerpc: " Kirill A. Shutemov
2015-01-05 5:03 ` Michael Ellerman
2014-12-24 12:22 ` [PATCH 30/38] s390: drop " Kirill A. Shutemov
2014-12-29 10:07 ` Martin Schwidefsky
2014-12-29 10:37 ` Kirill A. Shutemov
2014-12-30 10:55 ` Martin Schwidefsky
2014-12-24 12:22 ` [PATCH 31/38] score: drop _PAGE_FILE and " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 32/38] sh: " Kirill A. Shutemov
2014-12-24 14:05 ` [PATCH] " Kirill A. Shutemov
2014-12-24 12:22 ` Kirill A. Shutemov [this message]
2014-12-25 23:34 ` [PATCH 33/38] sparc: drop " David Miller
2014-12-24 12:22 ` [PATCH 34/38] tile: " Kirill A. Shutemov
2014-12-25 2:57 ` Chris Metcalf
2014-12-24 12:22 ` [PATCH 35/38] um: drop _PAGE_FILE and " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 36/38] unicore32: drop " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 37/38] x86: drop _PAGE_FILE and " Kirill A. Shutemov
2014-12-24 12:22 ` [PATCH 38/38] xtensa: " Kirill A. Shutemov
2014-12-25 10:25 ` Max Filippov
2014-12-26 21:10 ` [PATCH 00/38] mm: remove non-linear mess Felipe Balbi
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=1419423766-114457-34-git-send-email-kirill.shutemov@linux.intel.com \
--to=kirill.shutemov@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=davej@redhat.com \
--cc=davem@davemloft.net \
--cc=hughd@google.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=sasha.levin@oracle.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox