From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Rich Felker <dalias@libc.org>,
linux-ia64@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>,
linux-sh@vger.kernel.org,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-mm@kvack.org, Paul Mackerras <paulus@samba.org>,
linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu, Jonas Bonn <jonas@southpole.se>,
linux-arch@vger.kernel.org, Brian Cain <bcain@codeaurora.org>,
Marc Zyngier <maz@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Ley Foon Tan <ley.foon.tan@intel.com>,
Mike Rapoport <rppt@linux.ibm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
uclinux-h8-devel@lists.sourceforge.jp,
Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
kvm-ppc@vger.kernel.org,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
openrisc@lists.librecores.org, Stafford Horne <shorne@gmail.com>,
Guan Xuetao <gxt@pku.edu.cn>,
linux-arm-kernel@lists.infradead.org,
Christophe Leroy <christophe.leroy@c-s.fr>,
Tony Luck <tony.luck@intel.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-kernel@vger.kernel.org,
Michael Ellerman <mpe@ellerman.id.au>,
nios2-dev@lists.rocketboards.org, linuxppc-dev@lists.ozlabs.org,
Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 15:34:48 +0000 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Rich Felker <dalias@libc.org>,
linux-ia64@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>,
linux-sh@vger.kernel.org,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-mm@kvack.org, Paul Mackerras <paulus@samba.org>,
linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu, Jonas Bonn <jonas@southpole.se>,
linux-arch@vger.kernel.org, Brian Cain <bcain@codeaurora.org>,
Marc Zyngier <maz@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Ley Foon Tan <ley.foon.tan@intel.com>,
Mike Rapoport <rppt@linux.ibm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
uclinux-h8-devel@lists.sourceforge.jp,
Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
kvm-ppc@vger.kernel.org,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
openrisc@lists.librecores.org, Stafford Horne <shorne@gmail.com>,
Guan Xuetao <gxt@pku.edu.cn>,
linux-arm-kernel@lists.infradead.org,
Christophe Leroy <christophe.leroy@c-s.fr>,
Tony Luck <tony.luck@intel.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-kernel@vger.kernel.org,
Michael Ellerman <mpe@ellerman.id.au>,
nios2-dev@lists.rocketboards.org, linuxppc-dev@lists.ozlabs.org,
Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 18:34:48 +0300 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Rich Felker <dalias@libc.org>,
linux-ia64@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>,
linux-sh@vger.kernel.org,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-mm@kvack.org, Paul Mackerras <paulus@samba.org>,
linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu, Jonas Bonn <jonas@southpole.se>,
linux-arch@vger.kernel.org, Brian Cain <bcain@codeaurora.org>,
Marc Zyngier <maz@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Ley Foon Tan <ley.foon.tan@intel.com>,
Mike Rapoport <rppt@linux.ibm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
uclinux-h8-devel@lists.sourceforge.jp,
Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
kvm-ppc@vger.kernel.org,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
openrisc@lists.librecores.org, Stafford Horne <shorne@gmail.com>,
Guan Xuetao <gxt@p>
Subject: [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 18:34:48 +0300 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 18:34:48 +0300 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Rich Felker <dalias@libc.org>,
linux-ia64@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>,
linux-sh@vger.kernel.org, linux-mm@kvack.org,
Paul Mackerras <paulus@samba.org>,
linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu, Jonas Bonn <jonas@southpole.se>,
linux-arch@vger.kernel.org, Brian Cain <bcain@codeaurora.org>,
Marc Zyngier <maz@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Ley Foon Tan <ley.foon.tan@intel.com>,
Mike Rapoport <rppt@linux.ibm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Julien Thierry <julien.thierry.kdev@gmail.com>,
uclinux-h8-devel@lists.sourceforge.jp,
Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
kvm-ppc@vger.kernel.org,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
openrisc@lists.librecores.org, Stafford Horne <shorne@gmail.com>,
Guan Xuetao <gxt@pku.edu.cn>,
linux-arm-kernel@lists.infradead.org,
Tony Luck <tony.luck@intel.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-kernel@vger.kernel.org, James Morse <james.morse@arm.com>,
nios2-dev@lists.rocketboards.org, linuxppc-dev@lists.ozlabs.org,
Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 18:34:48 +0300 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Rich Felker <dalias@libc.org>,
linux-ia64@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>,
linux-sh@vger.kernel.org,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-mm@kvack.org, Paul Mackerras <paulus@samba.org>,
linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
kvmarm@lists.cs.columbia.edu, Jonas Bonn <jonas@southpole.se>,
linux-arch@vger.kernel.org, Brian Cain <bcain@codeaurora.org>,
Marc Zyngier <maz@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Ley Foon Tan <ley.foon.tan@intel.com>,
Mike Rapoport <rppt@linux.ibm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Julien Thierry <julien.thierry.kdev@gmail.com>,
uclinux-h8-devel@lists.sourceforge.jp,
Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
kvm-ppc@vger.kernel.org,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
openrisc@lists.librecores.org, Stafford Horne <shorne@gmail.com>,
Guan Xuetao <gxt@pku.edu.cn>,
linux-arm-kernel@lists.infradead.org,
Christophe Leroy <christophe.leroy@c-s.fr>,
Tony Luck <tony.luck@intel.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-kernel@vger.kernel.org, James Morse <james.morse@arm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
nios2-dev@lists.rocketboards.org, linuxppc-dev@lists.ozlabs.org,
Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 18:34:48 +0300 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Brian Cain <bcain@codeaurora.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@c-s.fr>,
Fenghua Yu <fenghua.yu@intel.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Guan Xuetao <gxt@pku.edu.cn>, James Morse <james.morse@arm.com>,
Jonas Bonn <jonas@southpole.se>,
Julien Thierry <julien.thierry.kdev@gmail.com>,
Ley Foon Tan <ley.foon.tan@intel.com>,
Marc Zyngier <maz@kernel.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Paul Mackerras <paulus@samba.org>, Rich Felker <dalias@libc.org>,
Russell King <linux@armlinux.org.uk>,
Stafford Horne <shorne@gmail.com>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Tony Luck <tony.luck@intel.com>, Will Deacon <will@kernel.org>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
kvmarm@lists.cs.columbia.edu, kvm-ppc@vger.kernel.org,
linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org,
nios2-dev@lists.rocketboards.org, openrisc@lists.librecores.org,
uclinux-h8-devel@lists.sourceforge.jp,
Mike Rapoport <rppt@kernel.org>,
Mike Rapoport <rppt@linux.ibm.com>
Subject: [PATCH v4 07/14] openrisc: add support for folded p4d page tables
Date: Tue, 14 Apr 2020 18:34:48 +0300 [thread overview]
Message-ID: <20200414153455.21744-8-rppt@kernel.org> (raw)
In-Reply-To: <20200414153455.21744-1-rppt@kernel.org>
From: Mike Rapoport <rppt@linux.ibm.com>
Implement primitives necessary for the 4th level folding, add walks of p4d
level where appropriate and remove usage of __ARCH_USE_5LEVEL_HACK.
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
arch/openrisc/include/asm/pgtable.h | 1 -
arch/openrisc/mm/fault.c | 10 ++++++++--
arch/openrisc/mm/init.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h
index 7f3fb9ceb083..219979e57790 100644
--- a/arch/openrisc/include/asm/pgtable.h
+++ b/arch/openrisc/include/asm/pgtable.h
@@ -21,7 +21,6 @@
#ifndef __ASM_OPENRISC_PGTABLE_H
#define __ASM_OPENRISC_PGTABLE_H
-#define __ARCH_USE_5LEVEL_HACK
#include <asm-generic/pgtable-nopmd.h>
#ifndef __ASSEMBLY__
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index 8af1cc78c4fb..6e0a11ac4c00 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -295,6 +295,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
int offset = pgd_index(address);
pgd_t *pgd, *pgd_k;
+ p4d_t *p4d, *p4d_k;
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
pte_t *pte_k;
@@ -321,8 +322,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
* it exists.
*/
- pud = pud_offset(pgd, address);
- pud_k = pud_offset(pgd_k, address);
+ p4d = p4d_offset(pgd, address);
+ p4d_k = p4d_offset(pgd_k, address);
+ if (!p4d_present(*p4d_k))
+ goto no_context;
+
+ pud = pud_offset(p4d, address);
+ pud_k = pud_offset(p4d_k, address);
if (!pud_present(*pud_k))
goto no_context;
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 1f87b524db78..2536aeae0975 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -71,6 +71,7 @@ static void __init map_ram(void)
unsigned long v, p, e;
pgprot_t prot;
pgd_t *pge;
+ p4d_t *p4e;
pud_t *pue;
pmd_t *pme;
pte_t *pte;
@@ -90,7 +91,8 @@ static void __init map_ram(void)
while (p < e) {
int j;
- pue = pud_offset(pge, v);
+ p4e = p4d_offset(pge, v);
+ pue = pud_offset(p4e, v);
pme = pmd_offset(pue, v);
if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
--
2.25.1
next prev parent reply other threads:[~2020-04-14 15:34 UTC|newest]
Thread overview: 175+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-14 15:34 [PATCH v4 00/14] mm: remove __ARCH_HAS_5LEVEL_HACK Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 01/14] h8300: remove usage of __ARCH_USE_5LEVEL_HACK Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 02/14] arm: add support for folded p4d page tables Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-05-07 12:16 ` Marek Szyprowski
2020-05-07 12:16 ` Marek Szyprowski
2020-05-07 12:16 ` Marek Szyprowski
2020-05-07 12:16 ` Marek Szyprowski
2020-05-07 12:16 ` [OpenRISC] " Marek Szyprowski
2020-05-07 12:16 ` Marek Szyprowski
2020-05-07 12:16 ` Marek Szyprowski
2020-05-07 16:11 ` Mike Rapoport
2020-05-07 16:11 ` Mike Rapoport
2020-05-07 16:11 ` Mike Rapoport
2020-05-07 16:11 ` Mike Rapoport
2020-05-07 16:11 ` [OpenRISC] " Mike Rapoport
2020-05-07 16:11 ` Mike Rapoport
2020-05-07 16:11 ` Mike Rapoport
2020-05-08 6:53 ` Marek Szyprowski
2020-05-08 6:53 ` Marek Szyprowski
2020-05-08 6:53 ` Marek Szyprowski
2020-05-08 6:53 ` Marek Szyprowski
2020-05-08 6:53 ` [OpenRISC] " Marek Szyprowski
2020-05-08 6:53 ` Marek Szyprowski
2020-05-08 6:53 ` Marek Szyprowski
2020-05-08 17:42 ` Mike Rapoport
2020-05-08 17:42 ` Mike Rapoport
2020-05-08 17:42 ` Mike Rapoport
2020-05-08 17:42 ` Mike Rapoport
2020-05-08 17:42 ` [OpenRISC] " Mike Rapoport
2020-05-08 17:42 ` Mike Rapoport
2020-05-08 17:42 ` Mike Rapoport
2020-05-11 6:36 ` Marek Szyprowski
2020-05-11 6:36 ` Marek Szyprowski
2020-05-11 6:36 ` Marek Szyprowski
2020-05-11 6:36 ` Marek Szyprowski
2020-05-11 6:36 ` [OpenRISC] " Marek Szyprowski
2020-05-11 6:36 ` Marek Szyprowski
2020-05-11 6:36 ` Marek Szyprowski
2020-05-11 14:15 ` Mike Rapoport
2020-05-11 14:15 ` Mike Rapoport
2020-05-11 14:15 ` Mike Rapoport
2020-05-11 14:15 ` Mike Rapoport
2020-05-11 14:15 ` [OpenRISC] " Mike Rapoport
2020-05-11 14:15 ` Mike Rapoport
2020-05-11 14:15 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 03/14] arm64: " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-05-15 18:40 ` Andrew Morton
2020-05-15 18:40 ` Andrew Morton
2020-05-15 18:40 ` Andrew Morton
2020-05-15 18:40 ` Andrew Morton
2020-05-15 18:40 ` [OpenRISC] " Andrew Morton
2020-05-15 18:40 ` Andrew Morton
2020-05-15 18:40 ` Andrew Morton
2020-05-16 17:20 ` Mike Rapoport
2020-05-16 17:20 ` Mike Rapoport
2020-05-16 17:20 ` Mike Rapoport
2020-05-16 17:20 ` [OpenRISC] " Mike Rapoport
2020-05-16 17:20 ` Mike Rapoport
2020-05-16 17:20 ` Mike Rapoport
2020-05-16 17:20 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 04/14] hexagon: remove __ARCH_USE_5LEVEL_HACK Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 05/14] ia64: add support for folded p4d page tables Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 06/14] nios2: " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport [this message]
2020-04-14 15:34 ` [PATCH v4 07/14] openrisc: " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 08/14] powerpc: " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-06-03 19:05 ` Andrew Morton
2020-06-03 19:05 ` Andrew Morton
2020-06-03 19:05 ` Andrew Morton
2020-06-03 19:05 ` Andrew Morton
2020-06-03 19:05 ` [OpenRISC] " Andrew Morton
2020-06-03 19:05 ` Andrew Morton
2020-06-03 19:05 ` Andrew Morton
2020-06-04 9:50 ` Qian Cai
2020-06-04 9:50 ` Qian Cai
2020-06-04 9:50 ` Qian Cai
2020-06-04 9:50 ` Qian Cai
2020-06-04 9:50 ` [OpenRISC] " Qian Cai
2020-06-04 9:50 ` Qian Cai
2020-06-04 9:50 ` Qian Cai
2020-04-14 15:34 ` [PATCH v4 09/14] sh: fault: Modernize printing of kernel messages Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 10/14] sh: drop __pXd_offset() macros that duplicate pXd_index() ones Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 11/14] sh: add support for folded p4d page tables Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 12/14] unicore32: remove __ARCH_USE_5LEVEL_HACK Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 13/14] asm-generic: remove pgtable-nop4d-hack.h Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [PATCH v4 14/14] mm: remove __ARCH_HAS_5LEVEL_HACK and include/asm-generic/5level-fixup.h Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` [OpenRISC] " Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
2020-04-14 15:34 ` Mike Rapoport
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=20200414153455.21744-8-rppt@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=bcain@codeaurora.org \
--cc=benh@kernel.crashing.org \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@c-s.fr \
--cc=dalias@libc.org \
--cc=fenghua.yu@intel.com \
--cc=geert+renesas@glider.be \
--cc=gxt@pku.edu.cn \
--cc=jonas@southpole.se \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=ley.foon.tan@intel.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maz@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=nios2-dev@lists.rocketboards.org \
--cc=openrisc@lists.librecores.org \
--cc=paulus@samba.org \
--cc=rppt@linux.ibm.com \
--cc=shorne@gmail.com \
--cc=stefan.kristiansson@saunalahti.fi \
--cc=tony.luck@intel.com \
--cc=uclinux-h8-devel@lists.sourceforge.jp \
--cc=will@kernel.org \
--cc=ysato@users.sourceforge.jp \
/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.