From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> To: Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org>, x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Arnd Bergmann <arnd@arndb.de>, "H. Peter Anvin" <hpa@zytor.com> Cc: Andi Kleen <ak@linux.intel.com>, Dave Hansen <dave.hansen@intel.com>, Andy Lutomirski <luto@amacapital.net>, Michal Hocko <mhocko@suse.com>, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Subject: [PATCH 20/26] x86/espfix: support 5-level paging Date: Mon, 13 Mar 2017 08:50:14 +0300 [thread overview] Message-ID: <20170313055020.69655-21-kirill.shutemov@linux.intel.com> (raw) In-Reply-To: <20170313055020.69655-1-kirill.shutemov@linux.intel.com> We don't need extra virtual address space for ESPFIX, so it stays within one PUD page table for both 4- and 5-level paging. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> --- arch/x86/kernel/espfix_64.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c index 04f89caef9c4..8e598a1ad986 100644 --- a/arch/x86/kernel/espfix_64.c +++ b/arch/x86/kernel/espfix_64.c @@ -50,11 +50,11 @@ #define ESPFIX_STACKS_PER_PAGE (PAGE_SIZE/ESPFIX_STACK_SIZE) /* There is address space for how many espfix pages? */ -#define ESPFIX_PAGE_SPACE (1UL << (PGDIR_SHIFT-PAGE_SHIFT-16)) +#define ESPFIX_PAGE_SPACE (1UL << (P4D_SHIFT-PAGE_SHIFT-16)) #define ESPFIX_MAX_CPUS (ESPFIX_STACKS_PER_PAGE * ESPFIX_PAGE_SPACE) #if CONFIG_NR_CPUS > ESPFIX_MAX_CPUS -# error "Need more than one PGD for the ESPFIX hack" +# error "Need more virtual address space for the ESPFIX hack" #endif #define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO) @@ -121,11 +121,13 @@ static void init_espfix_random(void) void __init init_espfix_bsp(void) { - pgd_t *pgd_p; + pgd_t *pgd; + p4d_t *p4d; /* Install the espfix pud into the kernel page directory */ - pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)]; - pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page); + pgd = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)]; + p4d = p4d_alloc(&init_mm, pgd, ESPFIX_BASE_ADDR); + p4d_populate(&init_mm, p4d, espfix_pud_page); /* Randomize the locations */ init_espfix_random(); -- 2.11.0
WARNING: multiple messages have this Message-ID (diff)
From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> To: Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org>, x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Arnd Bergmann <arnd@arndb.de>, "H. Peter Anvin" <hpa@zytor.com> Cc: Andi Kleen <ak@linux.intel.com>, Dave Hansen <dave.hansen@intel.com>, Andy Lutomirski <luto@amacapital.net>, Michal Hocko <mhocko@suse.com>, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Subject: [PATCH 20/26] x86/espfix: support 5-level paging Date: Mon, 13 Mar 2017 08:50:14 +0300 [thread overview] Message-ID: <20170313055020.69655-21-kirill.shutemov@linux.intel.com> (raw) In-Reply-To: <20170313055020.69655-1-kirill.shutemov@linux.intel.com> We don't need extra virtual address space for ESPFIX, so it stays within one PUD page table for both 4- and 5-level paging. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> --- arch/x86/kernel/espfix_64.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c index 04f89caef9c4..8e598a1ad986 100644 --- a/arch/x86/kernel/espfix_64.c +++ b/arch/x86/kernel/espfix_64.c @@ -50,11 +50,11 @@ #define ESPFIX_STACKS_PER_PAGE (PAGE_SIZE/ESPFIX_STACK_SIZE) /* There is address space for how many espfix pages? */ -#define ESPFIX_PAGE_SPACE (1UL << (PGDIR_SHIFT-PAGE_SHIFT-16)) +#define ESPFIX_PAGE_SPACE (1UL << (P4D_SHIFT-PAGE_SHIFT-16)) #define ESPFIX_MAX_CPUS (ESPFIX_STACKS_PER_PAGE * ESPFIX_PAGE_SPACE) #if CONFIG_NR_CPUS > ESPFIX_MAX_CPUS -# error "Need more than one PGD for the ESPFIX hack" +# error "Need more virtual address space for the ESPFIX hack" #endif #define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO) @@ -121,11 +121,13 @@ static void init_espfix_random(void) void __init init_espfix_bsp(void) { - pgd_t *pgd_p; + pgd_t *pgd; + p4d_t *p4d; /* Install the espfix pud into the kernel page directory */ - pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)]; - pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page); + pgd = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)]; + p4d = p4d_alloc(&init_mm, pgd, ESPFIX_BASE_ADDR); + p4d_populate(&init_mm, p4d, espfix_pud_page); /* Randomize the locations */ init_espfix_random(); -- 2.11.0 -- 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:[~2017-03-13 5:54 UTC|newest] Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-13 5:49 [PATCH 00/26] x86: 5-level paging enabling for v4.12 Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:49 ` [PATCH 01/26] x86: basic changes into headers for 5-level paging Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:49 ` [PATCH 02/26] x86: trivial portion of 5-level paging conversion Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:49 ` [PATCH 03/26] x86/gup: add 5-level paging support Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:49 ` [PATCH 04/26] x86/ident_map: " Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:49 ` [PATCH 05/26] x86/mm: add support of p4d_t in vmalloc_fault() Kirill A. Shutemov 2017-03-13 5:49 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 06/26] x86/power: support p4d_t in hibernate code Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 07/26] x86/kexec: support p4d_t Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 08/26] x86/efi: handle p4d in EFI pagetables Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 09/26] x86/mm/pat: handle additional page table Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 10/26] x86/kasan: prepare clear_pgds() to switch to <asm-generic/pgtable-nop4d.h> Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 11/26] x86/xen: convert __xen_pgd_walk() and xen_cleanmfnmap() to support p4d Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 12/26] x86: convert the rest of the code to support p4d_t Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 13/26] x86: detect 5-level paging support Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 14/26] x86/asm: remove __VIRTUAL_MASK_SHIFT==47 assert Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 15/26] x86/mm: define virtual memory map for 5-level paging Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 16/26] x86/paravirt: make paravirt code support " Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 17/26] x86/mm: basic defines/helpers for CONFIG_X86_5LEVEL Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 18/26] x86/dump_pagetables: support 5-level paging Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 19/26] x86/kasan: extend to " Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 7:25 ` Dmitry Vyukov 2017-03-13 7:25 ` Dmitry Vyukov 2017-03-13 5:50 ` Kirill A. Shutemov [this message] 2017-03-13 5:50 ` [PATCH 20/26] x86/espfix: " Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 21/26] x86/mm: add support of additional page table level during early boot Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 7:18 ` Ingo Molnar 2017-03-13 7:18 ` Ingo Molnar 2017-04-05 11:36 ` Kirill A. Shutemov 2017-04-05 11:36 ` Kirill A. Shutemov 2017-04-05 15:32 ` Kirill A. Shutemov 2017-04-05 15:32 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 22/26] x86/mm: add sync_global_pgds() for configuration with 5-level paging Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 7:22 ` Ingo Molnar 2017-03-13 7:22 ` Ingo Molnar 2017-03-13 5:50 ` [PATCH 23/26] x86/mm: make kernel_physical_mapping_init() support " Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 24/26] x86/mm: add support for 5-level paging for KASLR Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 25/26] x86: enable 5-level paging support Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-13 5:50 ` [PATCH 26/26] x86/mm: allow to have userspace mappings above 47-bits Kirill A. Shutemov 2017-03-13 5:50 ` Kirill A. Shutemov 2017-03-17 17:53 ` Aneesh Kumar K.V 2017-03-17 17:53 ` Aneesh Kumar K.V 2017-03-17 17:53 ` Aneesh Kumar K.V 2017-03-17 17:53 ` Aneesh Kumar K.V 2017-03-17 17:57 ` Kirill A. Shutemov 2017-03-17 17:57 ` Kirill A. Shutemov 2017-03-19 8:24 ` Aneesh Kumar K.V 2017-03-19 8:24 ` Aneesh Kumar K.V 2017-03-19 8:26 ` Kirill A. Shutemov 2017-03-20 18:08 ` hpa 2017-03-20 18:08 ` hpa 2017-03-20 18:38 ` Matthew Wilcox 2017-03-20 18:38 ` Matthew Wilcox 2017-03-24 8:59 ` Kirill A. Shutemov 2017-03-24 8:59 ` Kirill A. Shutemov 2017-03-19 8:55 ` Aneesh Kumar K.V 2017-03-19 8:55 ` Aneesh Kumar K.V 2017-03-24 9:03 ` Kirill A. Shutemov 2017-03-24 9:03 ` Kirill A. Shutemov 2017-03-20 9:15 ` Michael Ellerman 2017-03-20 9:15 ` Michael Ellerman 2017-03-20 5:10 ` Aneesh Kumar K.V 2017-03-20 5:10 ` Aneesh Kumar K.V 2017-03-20 5:10 ` Aneesh Kumar K.V 2017-03-20 5:10 ` Aneesh Kumar K.V 2017-03-24 9:04 ` Kirill A. Shutemov 2017-03-24 9:04 ` Kirill A. Shutemov 2017-03-24 9:14 ` Aneesh Kumar K.V 2017-03-24 9:14 ` Aneesh Kumar K.V 2017-03-24 9:30 ` Kirill A. Shutemov 2017-03-24 9:30 ` Kirill A. Shutemov 2017-03-13 7:49 ` [PATCH 00/26] x86: 5-level paging enabling for v4.12 Ingo Molnar 2017-03-13 7:49 ` Ingo Molnar
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=20170313055020.69655-21-kirill.shutemov@linux.intel.com \ --to=kirill.shutemov@linux.intel.com \ --cc=ak@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=dave.hansen@intel.com \ --cc=hpa@zytor.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=luto@amacapital.net \ --cc=mhocko@suse.com \ --cc=mingo@redhat.com \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=x86@kernel.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: linkBe 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.