From: Ryan Roberts <ryan.roberts@arm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Anshuman Khandual <anshuman.khandual@arm.com>,
Ard Biesheuvel <ardb@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
David Hildenbrand <david@redhat.com>,
Greg Marsden <greg.marsden@oracle.com>,
Ivan Ivanov <ivan.ivanov@suse.com>,
Kalesh Singh <kaleshsingh@google.com>,
Marc Zyngier <maz@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Matthias Brugger <mbrugger@suse.com>,
Miroslav Benes <mbenes@suse.cz>,
Oliver Upton <oliver.upton@linux.dev>,
Will Deacon <will@kernel.org>
Cc: Ryan Roberts <ryan.roberts@arm.com>,
kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [RFC PATCH v1 56/57] arm64: Determine THREAD_SIZE at boot-time
Date: Mon, 14 Oct 2024 11:59:03 +0100 [thread overview]
Message-ID: <20241014105912.3207374-56-ryan.roberts@arm.com> (raw)
In-Reply-To: <20241014105912.3207374-1-ryan.roberts@arm.com>
Since THREAD_SIZE depends on PAGE_SIZE when stacks are vmapped, we must
defer the decision on THREAD_SIZE until we have selected PAGE_SIZE at
boot.
The one wrinkle is entry.S's requirement to have THREAD_SHIFT as an
immediate in order to check that the stack has not overflowed without
clobbering any registers, early in the exception handler. Solve this by
patching alternatives. During early boot, all 3 options are NOPs until
the alternative is patched in. So we forgo overflow checking until
boot-cpu patching is complete.
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
---
***NOTE***
Any confused maintainers may want to read the cover note here for context:
https://lore.kernel.org/all/20241014105514.3206191-1-ryan.roberts@arm.com/
arch/arm64/include/asm/assembler.h | 5 +++
arch/arm64/include/asm/efi.h | 2 +-
arch/arm64/include/asm/memory.h | 51 +++++++++++++++++++++++++-----
arch/arm64/kernel/efi.c | 2 +-
arch/arm64/kernel/entry.S | 10 +++++-
arch/arm64/kernel/head.S | 3 +-
arch/arm64/kernel/vmlinux.lds.S | 4 +--
arch/arm64/kvm/hyp/nvhe/hyp.lds.S | 2 +-
8 files changed, 64 insertions(+), 15 deletions(-)
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 0cfa7c3efd214..745328e7768b7 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -928,4 +928,9 @@ alternative_cb_end
get_tg0 \val
value_for_page_size \val, \val, (~(SZ_4K-1)), (~(SZ_16K-1)), (~(SZ_64K-1))
.endm
+
+ .macro get_task_size, val
+ get_tg0 \val
+ value_for_page_size \val, \val, (1 << THREAD_SHIFT_4K), (1 << THREAD_SHIFT_16K), (1 << THREAD_SHIFT_64K)
+ .endm
#endif /* __ASM_ASSEMBLER_H */
diff --git a/arch/arm64/include/asm/efi.h b/arch/arm64/include/asm/efi.h
index bcd5622aa0968..913f599c14e40 100644
--- a/arch/arm64/include/asm/efi.h
+++ b/arch/arm64/include/asm/efi.h
@@ -68,7 +68,7 @@ void arch_efi_call_virt_teardown(void);
* kernel need greater alignment than we require the segments to be padded to.
*/
#define EFI_KIMG_ALIGN \
- (SEGMENT_ALIGN > THREAD_ALIGN ? SEGMENT_ALIGN : THREAD_ALIGN)
+ (SEGMENT_ALIGN > THREAD_ALIGN_MAX ? SEGMENT_ALIGN : THREAD_ALIGN_MAX)
/*
* On arm64, we have to ensure that the initrd ends up in the linear region,
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 5393a859183f7..e28f5700ef022 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -110,23 +110,56 @@
#define PAGE_END (_PAGE_END(VA_BITS_MIN))
#endif /* CONFIG_KASAN */
-#define MIN_THREAD_SHIFT (14 + KASAN_THREAD_SHIFT)
+#define IDEAL_THREAD_SHIFT (14 + KASAN_THREAD_SHIFT)
/*
* VMAP'd stacks are allocated at page granularity, so we must ensure that such
* stacks are a multiple of page size.
*/
-#if defined(CONFIG_VMAP_STACK) && (MIN_THREAD_SHIFT < PAGE_SHIFT)
-#define THREAD_SHIFT PAGE_SHIFT
+
+#if defined(CONFIG_VMAP_STACK)
+#define THREAD_SHIFT \
+ (IDEAL_THREAD_SHIFT < PAGE_SHIFT ? PAGE_SHIFT : IDEAL_THREAD_SHIFT)
+#if (IDEAL_THREAD_SHIFT < PAGE_SHIFT_MIN)
+#define THREAD_SHIFT_MIN PAGE_SHIFT_MIN
#else
-#define THREAD_SHIFT MIN_THREAD_SHIFT
+#define THREAD_SHIFT_MIN IDEAL_THREAD_SHIFT
#endif
-
-#if THREAD_SHIFT >= PAGE_SHIFT
-#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT)
+#if (IDEAL_THREAD_SHIFT < PAGE_SHIFT_MAX)
+#define THREAD_SHIFT_MAX PAGE_SHIFT_MAX
+#else
+#define THREAD_SHIFT_MAX IDEAL_THREAD_SHIFT
+#endif
+#if (IDEAL_THREAD_SHIFT < ARM64_PAGE_SHIFT_4K)
+#define THREAD_SHIFT_4K ARM64_PAGE_SHIFT_4K
+#else
+#define THREAD_SHIFT_4K IDEAL_THREAD_SHIFT
+#endif
+#if (IDEAL_THREAD_SHIFT < ARM64_PAGE_SHIFT_16K)
+#define THREAD_SHIFT_16K ARM64_PAGE_SHIFT_16K
+#else
+#define THREAD_SHIFT_16K IDEAL_THREAD_SHIFT
+#endif
+#if (IDEAL_THREAD_SHIFT < ARM64_PAGE_SHIFT_64K)
+#define THREAD_SHIFT_64K ARM64_PAGE_SHIFT_64K
+#else
+#define THREAD_SHIFT_64K IDEAL_THREAD_SHIFT
#endif
+#else
+#define THREAD_SHIFT IDEAL_THREAD_SHIFT
+#define THREAD_SHIFT_MIN IDEAL_THREAD_SHIFT
+#define THREAD_SHIFT_MAX IDEAL_THREAD_SHIFT
+#define THREAD_SHIFT_4K IDEAL_THREAD_SHIFT
+#define THREAD_SHIFT_16K IDEAL_THREAD_SHIFT
+#define THREAD_SHIFT_64K IDEAL_THREAD_SHIFT
+#endif
+
+#define THREAD_SIZE_ORDER \
+ (PAGE_SHIFT < THREAD_SHIFT ? THREAD_SHIFT - PAGE_SHIFT : 0)
#define THREAD_SIZE (UL(1) << THREAD_SHIFT)
+#define THREAD_SIZE_MIN (UL(1) << THREAD_SHIFT_MIN)
+#define THREAD_SIZE_MAX (UL(1) << THREAD_SHIFT_MAX)
/*
* By aligning VMAP'd stacks to 2 * THREAD_SIZE, we can detect overflow by
@@ -135,11 +168,13 @@
*/
#ifdef CONFIG_VMAP_STACK
#define THREAD_ALIGN (2 * THREAD_SIZE)
+#define THREAD_ALIGN_MAX (2 * THREAD_SIZE_MAX)
#else
#define THREAD_ALIGN THREAD_SIZE
+#define THREAD_ALIGN_MAX THREAD_SIZE_MAX
#endif
-#define IRQ_STACK_SIZE THREAD_SIZE
+#define IRQ_STACK_SIZE THREAD_SIZE_MIN
#define OVERFLOW_STACK_SIZE SZ_4K
diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c
index 712718aed5dd9..ebc44b7e83199 100644
--- a/arch/arm64/kernel/efi.c
+++ b/arch/arm64/kernel/efi.c
@@ -197,7 +197,7 @@ bool efi_runtime_fixup_exception(struct pt_regs *regs, const char *msg)
}
/* EFI requires 8 KiB of stack space for runtime services */
-static_assert(THREAD_SIZE >= SZ_8K);
+static_assert(THREAD_SIZE_MIN >= SZ_8K);
static int __init arm64_efi_rt_init(void)
{
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
index ba47dc8672c04..1ab65e406b62e 100644
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -62,7 +62,15 @@
*/
add sp, sp, x0 // sp' = sp + x0
sub x0, sp, x0 // x0' = sp' - x0 = (sp + x0) - x0 = sp
- tbnz x0, #THREAD_SHIFT, 0f
+alternative_if ARM64_USE_PAGE_SIZE_4K
+ tbnz x0, #THREAD_SHIFT_4K, 0f
+alternative_else_nop_endif
+alternative_if ARM64_USE_PAGE_SIZE_16K
+ tbnz x0, #THREAD_SHIFT_16K, 0f
+alternative_else_nop_endif
+alternative_if ARM64_USE_PAGE_SIZE_64K
+ tbnz x0, #THREAD_SHIFT_64K, 0f
+alternative_else_nop_endif
sub x0, sp, x0 // x0'' = sp' - x0' = (sp + x0) - sp = x0
sub sp, sp, x0 // sp'' = sp' - x0 = (sp + x0) - x0 = sp
b el\el\ht\()_\regsize\()_\label
diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
index 761b7f5633e15..2530ee5cee548 100644
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -198,7 +198,8 @@ SYM_CODE_END(preserve_boot_args)
msr sp_el0, \tsk
ldr \tmp1, [\tsk, #TSK_STACK]
- add sp, \tmp1, #THREAD_SIZE
+ get_task_size \tmp2
+ add sp, \tmp1, \tmp2
sub sp, sp, #PT_REGS_SIZE
stp xzr, xzr, [sp, #S_STACKFRAME]
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 09fcc234c0f77..937900a458a89 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -60,11 +60,11 @@
#define RO_EXCEPTION_TABLE_ALIGN 4
#define RUNTIME_DISCARD_EXIT
+#include <asm/memory.h>
#include <asm-generic/vmlinux.lds.h>
#include <asm/cache.h>
#include <asm/kernel-pgtable.h>
#include <asm/kexec.h>
-#include <asm/memory.h>
#include <asm/page.h>
#include "image.h"
@@ -292,7 +292,7 @@ SECTIONS
_data = .;
_sdata = .;
- RW_DATA(L1_CACHE_BYTES, PAGE_SIZE_MAX, THREAD_ALIGN)
+ RW_DATA(L1_CACHE_BYTES, PAGE_SIZE_MAX, THREAD_ALIGN_MAX)
/*
* Data written with the MMU off but read with the MMU on requires
diff --git a/arch/arm64/kvm/hyp/nvhe/hyp.lds.S b/arch/arm64/kvm/hyp/nvhe/hyp.lds.S
index 74c7c21626270..fe1fbfa8f8f05 100644
--- a/arch/arm64/kvm/hyp/nvhe/hyp.lds.S
+++ b/arch/arm64/kvm/hyp/nvhe/hyp.lds.S
@@ -7,9 +7,9 @@
*/
#include <asm/hyp_image.h>
+#include <asm/memory.h>
#include <asm-generic/vmlinux.lds.h>
#include <asm/cache.h>
-#include <asm/memory.h>
SECTIONS {
HYP_SECTION(.idmap.text)
--
2.43.0
next prev parent reply other threads:[~2024-10-14 11:02 UTC|newest]
Thread overview: 196+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-14 10:55 [RFC PATCH v1 00/57] Boot-time page size selection for arm64 Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 01/57] mm: Add macros ahead of supporting boot-time page size selection Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 02/57] vmlinux: Align to PAGE_SIZE_MAX Ryan Roberts
2024-10-14 16:50 ` Christoph Lameter (Ampere)
2024-10-15 10:53 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 03/57] mm/memcontrol: Fix seq_buf size to save memory when PAGE_SIZE is large Ryan Roberts
2024-10-14 13:00 ` Johannes Weiner
2024-10-14 19:59 ` Shakeel Butt
2024-10-15 10:55 ` Ryan Roberts
2024-10-17 12:21 ` Michal Hocko
2024-10-17 16:09 ` Roman Gushchin
2024-10-14 10:58 ` [RFC PATCH v1 04/57] mm/page_alloc: Make page_frag_cache boot-time page size compatible Ryan Roberts
2024-11-14 8:23 ` Vlastimil Babka
2024-11-14 9:36 ` Ryan Roberts
2024-11-14 9:43 ` Vlastimil Babka
2024-10-14 10:58 ` [RFC PATCH v1 05/57] mm: Avoid split pmd ptl if pmd level is run-time folded Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 06/57] mm: Remove PAGE_SIZE compile-time constant assumption Ryan Roberts
2024-10-16 14:37 ` Ryan Roberts
2024-11-01 20:16 ` [RFC PATCH] mm/slab: Avoid build bug for calls to kmalloc with a large constant Dave Kleikamp
2024-11-06 11:44 ` Ryan Roberts
2024-11-06 15:20 ` Dave Kleikamp
2024-11-14 10:09 ` Vlastimil Babka
2024-11-26 12:18 ` Ryan Roberts
2024-11-26 12:36 ` Vlastimil Babka
2024-11-26 14:26 ` Ryan Roberts
2024-11-26 14:53 ` Ryan Roberts
2024-11-26 15:09 ` Vlastimil Babka
2024-11-26 15:27 ` Vlastimil Babka
2024-11-26 15:33 ` Ryan Roberts
2024-11-14 10:17 ` [RFC PATCH v1 06/57] mm: Remove PAGE_SIZE compile-time constant assumption Vlastimil Babka
2024-11-26 10:08 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 07/57] fs: Introduce MAX_BUF_PER_PAGE_SIZE_MAX for array sizing Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 08/57] fs: Remove PAGE_SIZE compile-time constant assumption Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 09/57] fs/nfs: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 10/57] fs/ext4: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 11/57] fork: Permit boot-time THREAD_SIZE determination Ryan Roberts
2024-11-14 10:42 ` Vlastimil Babka
2024-10-14 10:58 ` [RFC PATCH v1 12/57] cgroup: Remove PAGE_SIZE compile-time constant assumption Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 13/57] bpf: " Ryan Roberts
2024-10-16 14:38 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 14/57] pm/hibernate: " Ryan Roberts
2024-10-16 14:39 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 15/57] stackdepot: " Ryan Roberts
2024-11-14 11:15 ` Vlastimil Babka
2024-11-26 10:15 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 16/57] perf: " Ryan Roberts
2024-10-16 14:40 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 17/57] kvm: " Ryan Roberts
2024-10-14 21:37 ` Sean Christopherson
2024-10-15 10:57 ` Ryan Roberts
2024-10-16 14:41 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 18/57] trace: " Ryan Roberts
2024-10-14 16:46 ` Steven Rostedt
2024-10-15 11:09 ` Ryan Roberts
2024-10-18 15:24 ` Steven Rostedt
2024-10-14 10:58 ` [RFC PATCH v1 19/57] crash: " Ryan Roberts
2024-10-15 3:47 ` Baoquan He
2024-10-15 11:13 ` Ryan Roberts
2024-10-18 3:00 ` Baoquan He
2024-10-14 10:58 ` [RFC PATCH v1 20/57] crypto: " Ryan Roberts
2024-10-26 6:54 ` Herbert Xu
2024-10-14 10:58 ` [RFC PATCH v1 21/57] sunrpc: " Ryan Roberts
2024-10-16 14:42 ` Ryan Roberts
2024-10-16 14:47 ` Chuck Lever
2024-10-16 14:54 ` Jeff Layton
2024-10-16 15:09 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 22/57] sound: " Ryan Roberts
2024-10-14 11:38 ` Mark Brown
2024-10-14 12:24 ` Ryan Roberts
2024-10-14 12:41 ` Takashi Iwai
2024-10-14 12:52 ` Ryan Roberts
2024-10-14 16:01 ` Mark Brown
2024-10-15 11:35 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 23/57] net: " Ryan Roberts
2024-10-16 14:43 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 24/57] net: fec: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 25/57] net: marvell: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 26/57] net: hns3: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 27/57] net: e1000: " Ryan Roberts
2024-10-16 14:43 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 28/57] net: igbvf: " Ryan Roberts
2024-10-16 14:44 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 29/57] net: igb: " Ryan Roberts
2024-10-16 14:45 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 30/57] drivers/base: " Ryan Roberts
2024-10-16 14:45 ` Ryan Roberts
2024-10-16 15:04 ` Greg Kroah-Hartman
2024-10-16 15:12 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 31/57] edac: " Ryan Roberts
2024-10-16 14:46 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 32/57] optee: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 33/57] random: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 34/57] sata_sil24: " Ryan Roberts
2024-10-17 9:09 ` Niklas Cassel
2024-10-17 12:42 ` Ryan Roberts
2024-10-17 12:51 ` Niklas Cassel
2024-10-21 9:24 ` Ryan Roberts
2024-10-21 11:04 ` Niklas Cassel
2024-10-21 11:26 ` Ryan Roberts
2024-10-21 11:43 ` Niklas Cassel
2024-10-14 10:58 ` [RFC PATCH v1 35/57] virtio: " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 36/57] xen: " Ryan Roberts
2024-10-16 14:46 ` Ryan Roberts
2024-10-23 1:23 ` Stefano Stabellini
2024-10-24 10:32 ` Ryan Roberts
2024-10-25 1:18 ` Stefano Stabellini
2024-10-14 10:58 ` [RFC PATCH v1 37/57] arm64: Fix macros to work in C code in addition to the linker script Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 38/57] arm64: Track early pgtable allocation limit Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 39/57] arm64: Introduce macros required for boot-time page selection Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 40/57] arm64: Refactor early pgtable size calculation macros Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 41/57] arm64: Pass desired page size on command line Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 42/57] arm64: Divorce early init from PAGE_SIZE Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 43/57] arm64: Clean up simple cases of CONFIG_ARM64_*K_PAGES Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 44/57] arm64: Align sections to PAGE_SIZE_MAX Ryan Roberts
2024-10-19 14:16 ` Thomas Weißschuh
2024-10-21 11:20 ` Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 45/57] arm64: Rework trampoline rodata mapping Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 46/57] arm64: Generalize fixmap for boot-time page size Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 47/57] arm64: Statically allocate and align for worst-case " Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 48/57] arm64: Convert switch to if for non-const comparison values Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 49/57] arm64: Convert BUILD_BUG_ON to VM_BUG_ON Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 50/57] arm64: Remove PAGE_SZ asm-offset Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 51/57] arm64: Introduce cpu features for page sizes Ryan Roberts
2024-10-14 10:58 ` [RFC PATCH v1 52/57] arm64: Remove PAGE_SIZE from assembly code Ryan Roberts
2024-10-14 10:59 ` [RFC PATCH v1 53/57] arm64: Runtime-fold pmd level Ryan Roberts
2024-10-14 10:59 ` [RFC PATCH v1 54/57] arm64: Support runtime folding in idmap_kpti_install_ng_mappings Ryan Roberts
2024-10-14 10:59 ` [RFC PATCH v1 55/57] arm64: TRAMP_VALIAS is no longer compile-time constant Ryan Roberts
2024-10-14 11:21 ` Ard Biesheuvel
2024-10-14 11:28 ` Ryan Roberts
2024-10-14 10:59 ` Ryan Roberts [this message]
2024-10-14 10:59 ` [RFC PATCH v1 57/57] arm64: Enable boot-time page size selection Ryan Roberts
2024-10-15 17:42 ` Zi Yan
2024-10-16 8:14 ` Ryan Roberts
2024-10-16 14:21 ` Zi Yan
2024-10-16 14:31 ` Ryan Roberts
2024-10-16 14:35 ` Zi Yan
2024-10-15 17:52 ` Michael Kelley
2024-10-16 8:17 ` Ryan Roberts
2024-10-14 13:54 ` [RFC PATCH v1 01/57] mm: Add macros ahead of supporting " Pingfan Liu
2024-10-14 14:07 ` Ryan Roberts
2024-10-15 3:04 ` Pingfan Liu
2024-10-15 11:16 ` Ryan Roberts
2024-10-16 14:36 ` Ryan Roberts
2024-10-30 8:45 ` Ryan Roberts
2024-10-14 17:32 ` [RFC PATCH v1 00/57] Boot-time page size selection for arm64 Florian Fainelli
2024-10-15 11:48 ` Ryan Roberts
2024-10-15 18:38 ` Michael Kelley
2024-10-16 8:23 ` Ryan Roberts
2024-10-16 15:16 ` David Hildenbrand
2024-10-16 16:08 ` Ryan Roberts
2024-10-17 12:27 ` Petr Tesarik
2024-10-17 12:32 ` Ryan Roberts
2024-10-18 12:56 ` Petr Tesarik
2024-10-18 14:41 ` Petr Tesarik
2024-10-21 11:47 ` Ryan Roberts
2024-10-23 21:00 ` Thomas Tai
2024-10-24 10:48 ` Ryan Roberts
2024-10-24 11:45 ` Petr Tesarik
2024-10-24 12:10 ` Ryan Roberts
2024-10-30 22:11 ` Sumit Gupta
2024-11-11 12:14 ` Petr Tesarik
2024-11-11 12:25 ` Ryan Roberts
2024-11-12 9:45 ` Petr Tesarik
2024-11-12 10:19 ` Ryan Roberts
2024-11-12 10:50 ` Petr Tesarik
2024-11-13 12:40 ` Petr Tesarik
2024-11-13 12:56 ` Ryan Roberts
2024-11-13 14:22 ` Petr Tesarik
2024-12-05 17:20 ` Petr Tesarik
2024-12-05 18:52 ` Michael Kelley
2024-12-06 7:50 ` Petr Tesarik
2024-12-06 10:26 ` Ryan Roberts
2024-12-06 13:05 ` Michael Kelley
2024-10-17 22:05 ` Dave Kleikamp
2024-10-21 11:49 ` Ryan Roberts
2024-10-18 18:15 ` Joseph Salisbury
2024-10-18 18:27 ` David Hildenbrand
2024-10-18 19:19 ` [External] : " Joseph Salisbury
2024-10-18 19:27 ` David Hildenbrand
2024-10-18 20:06 ` Joseph Salisbury
2024-10-21 9:55 ` Ryan Roberts
2024-10-19 15:47 ` Neal Gompa
2024-10-21 11:02 ` Ryan Roberts
2024-10-21 11:32 ` Eric Curtin
2024-10-21 11:51 ` Ryan Roberts
2024-10-21 13:49 ` Neal Gompa
2024-10-21 15:01 ` Ryan Roberts
2024-10-22 9:33 ` Neal Gompa
2024-10-22 15:03 ` Nick Chan
2024-10-22 15:12 ` Ryan Roberts
2024-10-22 17:30 ` Neal Gompa
2024-10-24 10:34 ` Ryan Roberts
2024-10-31 21:07 ` Catalin Marinas
2024-11-06 11:37 ` Ryan Roberts
2024-11-07 12:35 ` Catalin Marinas
2024-11-07 12:47 ` Ryan Roberts
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=20241014105912.3207374-56-ryan.roberts@arm.com \
--to=ryan.roberts@arm.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=ardb@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=david@redhat.com \
--cc=greg.marsden@oracle.com \
--cc=ivan.ivanov@suse.com \
--cc=kaleshsingh@google.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=mbenes@suse.cz \
--cc=mbrugger@suse.com \
--cc=oliver.upton@linux.dev \
--cc=will@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: 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