Re: [PATCH v2] srcu: Remove unused vmlinux srcu linker entries

From: Paul E. McKenney
Date: Sun Apr 07 2019 - 22:30:25 EST


On Sun, Apr 07, 2019 at 08:47:19PM -0400, Joel Fernandes (Google) wrote:
> The SRCU for modules optimization (commit title "srcu: Allocate per-CPU
> data for DEFINE_SRCU() in modules") introduced vmlinux linker entries
> which is unused since it applies only to the built-in vmlinux. So remove
> it to prevent any space usage due to the 8 byte alignment it added.
> vmlinux.lds.h has no effect on module loading and is not used for
> building the module object, so the changes were not needed in the first
> place since the optimization is specific to modules.
>
> Tested with SRCU torture_type and rcutorture. Put prints in module
> loader to confirm it is able to find and initialize the srcu structures.
>
> Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
> Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx>
> Cc: kernel-team@xxxxxxxxxxx
> Cc: paulmck@xxxxxxxxxxxxxxxxxx
> Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>

Queued, thank you, Joel!

Thanx, Paul

> ---
> v1->v2: Added more context to change log.
>
> include/asm-generic/vmlinux.lds.h | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index c2d919a1566e..f8f6f04c4453 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -338,10 +338,6 @@
> KEEP(*(__tracepoints_ptrs)) /* Tracepoints: pointer array */ \
> __stop___tracepoints_ptrs = .; \
> *(__tracepoints_strings)/* Tracepoints: strings */ \
> - . = ALIGN(8); \
> - __start___srcu_struct = .; \
> - *(___srcu_struct_ptrs) \
> - __end___srcu_struct = .; \
> } \
> \
> .rodata1 : AT(ADDR(.rodata1) - LOAD_OFFSET) { \
> --
> 2.21.0.392.gf8f6787159e-goog
>