Message ID | 20240730-runtime-constants-refactor-v1-1-90c2c884c3f8@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | runtime constants: move list of constants to vmlinux.lds.h | expand |
On Tue, Jul 30, 2024, at 22:15, Jann Horn wrote: > Refactor the list of constant variables into a macro. > This should make it easier to add more constants in the future. > > Signed-off-by: Jann Horn <jannh@google.com> > --- > I'm not sure whose tree this has to go through - I guess Arnd's? This is for 6.12, right? I can take it through the asm-generic tree if that helps, but someone else should review it first. If you have any other patches that would depend on this patch, you can also take it through the other tree and add Acked-by: Arnd Bergmann <arnd@arndb.de> for cross-architecture bits. Arnd
On Tue, Jul 30, 2024 at 11:29 PM Arnd Bergmann <arnd@arndb.de> wrote: > On Tue, Jul 30, 2024, at 22:15, Jann Horn wrote: > > Refactor the list of constant variables into a macro. > > This should make it easier to add more constants in the future. > > > > Signed-off-by: Jann Horn <jannh@google.com> > > --- > > I'm not sure whose tree this has to go through - I guess Arnd's? > > This is for 6.12, right? Yeah. > I can take it through the asm-generic > tree if that helps, but someone else should review it first. > > If you have any other patches that would depend on this patch, > you can also take it through the other tree and add > > Acked-by: Arnd Bergmann <arnd@arndb.de> > > for cross-architecture bits. Thanks! I was thinking of maybe trying to write a patch based on it that'd have to go through the MM tree (for using this in kfence), though I'm not sure whether I'll actually do that yet. So your suggestion makes sense, maybe hold off on putting this in a tree for now... > > Arnd
On Tue, Jul 30, 2024 at 10:15:16PM +0200, Jann Horn wrote: > Refactor the list of constant variables into a macro. > This should make it easier to add more constants in the future. > > Signed-off-by: Jann Horn <jannh@google.com> > --- > I'm not sure whose tree this has to go through - I guess Arnd's? > --- > arch/arm64/kernel/vmlinux.lds.S | 3 +-- > arch/s390/kernel/vmlinux.lds.S | 3 +-- > arch/x86/kernel/vmlinux.lds.S | 3 +-- > include/asm-generic/vmlinux.lds.h | 4 ++++ > 4 files changed, 7 insertions(+), 6 deletions(-) ... > diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S > index 975c654cf5a5..3e8ebf1d64c5 100644 > --- a/arch/s390/kernel/vmlinux.lds.S > +++ b/arch/s390/kernel/vmlinux.lds.S > @@ -187,14 +187,13 @@ SECTIONS > _eamode31 = .; > > /* early.c uses stsi, which requires page aligned data. */ > . = ALIGN(PAGE_SIZE); > INIT_DATA_SECTION(0x100) > > - RUNTIME_CONST(shift, d_hash_shift) > - RUNTIME_CONST(ptr, dentry_hashtable) > + RUNTIME_CONST_VARIABLES > > PERCPU_SECTION(0x100) > > . = ALIGN(PAGE_SIZE); > __init_end = .; /* freed after init ends here */ > ... For s390: Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
On Tue, Jul 30 2024 at 22:15, Jann Horn wrote: > Refactor the list of constant variables into a macro. > This should make it easier to add more constants in the future. > > Signed-off-by: Jann Horn <jannh@google.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
On Tue, 30 Jul 2024 at 13:15, Jann Horn <jannh@google.com> wrote: > > Refactor the list of constant variables into a macro. > This should make it easier to add more constants in the future. LGTM too. Linus
On Wed, Jul 31, 2024 at 12:00 AM Jann Horn <jannh@google.com> wrote: > On Tue, Jul 30, 2024 at 11:29 PM Arnd Bergmann <arnd@arndb.de> wrote: > > On Tue, Jul 30, 2024, at 22:15, Jann Horn wrote: > > > Refactor the list of constant variables into a macro. > > > This should make it easier to add more constants in the future. > > > > > > Signed-off-by: Jann Horn <jannh@google.com> > > > --- > > > I'm not sure whose tree this has to go through - I guess Arnd's? > > > > This is for 6.12, right? > > Yeah. > > > I can take it through the asm-generic > > tree if that helps, but someone else should review it first. > > > > If you have any other patches that would depend on this patch, > > you can also take it through the other tree and add > > > > Acked-by: Arnd Bergmann <arnd@arndb.de> > > > > for cross-architecture bits. > > Thanks! > > I was thinking of maybe trying to write a patch based on it that'd > have to go through the MM tree (for using this in kfence), though I'm > not sure whether I'll actually do that yet. So your suggestion makes > sense, maybe hold off on putting this in a tree for now... I don't think I'll get around to doing anything on top of this patch for the next few months at least, please take it through your tree.
On Tue, Jul 30, 2024 at 10:15:16PM +0200, Jann Horn wrote: > Refactor the list of constant variables into a macro. > This should make it easier to add more constants in the future. > > Signed-off-by: Jann Horn <jannh@google.com> > --- > I'm not sure whose tree this has to go through - I guess Arnd's? > --- > arch/arm64/kernel/vmlinux.lds.S | 3 +-- > arch/s390/kernel/vmlinux.lds.S | 3 +-- > arch/x86/kernel/vmlinux.lds.S | 3 +-- > include/asm-generic/vmlinux.lds.h | 4 ++++ > 4 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S > index 55a8e310ea12..58d89d997d05 100644 > --- a/arch/arm64/kernel/vmlinux.lds.S > +++ b/arch/arm64/kernel/vmlinux.lds.S > @@ -261,14 +261,13 @@ SECTIONS > *(.init.altinstructions .init.bss) /* from the EFI stub */ > } > .exit.data : { > EXIT_DATA > } > > - RUNTIME_CONST(shift, d_hash_shift) > - RUNTIME_CONST(ptr, dentry_hashtable) > + RUNTIME_CONST_VARIABLES > > PERCPU_SECTION(L1_CACHE_BYTES) > HYPERVISOR_PERCPU_SECTION > > HYPERVISOR_RELOC_SECTION Acked-by: Will Deacon <will@kernel.org> I'm assuming Arnd will pick this up. Will
On Fri, Aug 16, 2024, at 12:41, Will Deacon wrote: > On Tue, Jul 30, 2024 at 10:15:16PM +0200, Jann Horn wrote: >> Refactor the list of constant variables into a macro. >> This should make it easier to add more constants in the future. >> >> Signed-off-by: Jann Horn <jannh@google.com> >> --- >> I'm not sure whose tree this has to go through - I guess Arnd's? > > Acked-by: Will Deacon <will@kernel.org> > > I'm assuming Arnd will pick this up. I'm back from vacation now and applied it to the asm-generic tree for 6.12. Arnd
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S index 55a8e310ea12..58d89d997d05 100644 --- a/arch/arm64/kernel/vmlinux.lds.S +++ b/arch/arm64/kernel/vmlinux.lds.S @@ -261,14 +261,13 @@ SECTIONS *(.init.altinstructions .init.bss) /* from the EFI stub */ } .exit.data : { EXIT_DATA } - RUNTIME_CONST(shift, d_hash_shift) - RUNTIME_CONST(ptr, dentry_hashtable) + RUNTIME_CONST_VARIABLES PERCPU_SECTION(L1_CACHE_BYTES) HYPERVISOR_PERCPU_SECTION HYPERVISOR_RELOC_SECTION diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 975c654cf5a5..3e8ebf1d64c5 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S @@ -187,14 +187,13 @@ SECTIONS _eamode31 = .; /* early.c uses stsi, which requires page aligned data. */ . = ALIGN(PAGE_SIZE); INIT_DATA_SECTION(0x100) - RUNTIME_CONST(shift, d_hash_shift) - RUNTIME_CONST(ptr, dentry_hashtable) + RUNTIME_CONST_VARIABLES PERCPU_SECTION(0x100) . = ALIGN(PAGE_SIZE); __init_end = .; /* freed after init ends here */ diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index 6e73403e874f..6726be89b7a6 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -354,14 +354,13 @@ SECTIONS } #if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP) PERCPU_SECTION(INTERNODE_CACHE_BYTES) #endif - RUNTIME_CONST(shift, d_hash_shift) - RUNTIME_CONST(ptr, dentry_hashtable) + RUNTIME_CONST_VARIABLES . = ALIGN(PAGE_SIZE); /* freed after init ends here */ .init.end : AT(ADDR(.init.end) - LOAD_OFFSET) { __init_end = .; diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index ad6afc5c4918..54986eac2f73 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -916,12 +916,16 @@ #define RUNTIME_CONST(t,x) \ . = ALIGN(8); \ RUNTIME_NAME(t,x) : AT(ADDR(RUNTIME_NAME(t,x)) - LOAD_OFFSET) { \ *(RUNTIME_NAME(t,x)); \ } +#define RUNTIME_CONST_VARIABLES \ + RUNTIME_CONST(shift, d_hash_shift) \ + RUNTIME_CONST(ptr, dentry_hashtable) + /* Alignment must be consistent with (kunit_suite *) in include/kunit/test.h */ #define KUNIT_TABLE() \ . = ALIGN(8); \ BOUNDED_SECTION_POST_LABEL(.kunit_test_suites, __kunit_suites, _start, _end) /* Alignment must be consistent with (kunit_suite *) in include/kunit/test.h */
Refactor the list of constant variables into a macro. This should make it easier to add more constants in the future. Signed-off-by: Jann Horn <jannh@google.com> --- I'm not sure whose tree this has to go through - I guess Arnd's? --- arch/arm64/kernel/vmlinux.lds.S | 3 +-- arch/s390/kernel/vmlinux.lds.S | 3 +-- arch/x86/kernel/vmlinux.lds.S | 3 +-- include/asm-generic/vmlinux.lds.h | 4 ++++ 4 files changed, 7 insertions(+), 6 deletions(-) --- base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d change-id: 20240730-runtime-constants-refactor-309f966d4100