Re: [PATCH v1 07/12] dyndbg: repack struct _ddebug

From: jim . cromie
Date: Fri Nov 03 2023 - 21:51:12 EST


On Fri, Nov 3, 2023 at 7:10 AM Łukasz Bartosik <lb@xxxxxxxxxxxx> wrote:
>
> From: Jim Cromie <jim.cromie@xxxxxxxxx>
>
> Move the JUMP_LABEL to the top of the struct, since theyre both
> align(8) and this closes a pahole (unfortunately trading for padding,
> but still).
>
> Signed-off-by: Jim Cromie <jim.cromie@xxxxxxxxx>

let me add, I havent really tested this, nevermind thorough.
specifically, I didnt look for any offset dependence on the static-key
inside their container.
Conversely, maybe theres a free default or something in there.

> ---
> include/linux/dynamic_debug.h | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h
> index 497130816e9c..b9237e4ecd1b 100644
> --- a/include/linux/dynamic_debug.h
> +++ b/include/linux/dynamic_debug.h
> @@ -14,6 +14,12 @@
> * the special section is treated as an array of these.
> */
> struct _ddebug {
> +#ifdef CONFIG_JUMP_LABEL
> + union {
> + struct static_key_true dd_key_true;
> + struct static_key_false dd_key_false;
> + } key;
> +#endif
> /*
> * These fields are used to drive the user interface
> * for selecting and displaying debug callsites.
> @@ -53,12 +59,6 @@ struct _ddebug {
> #define _DPRINTK_FLAGS_DEFAULT 0
> #endif
> unsigned int flags:8;
> -#ifdef CONFIG_JUMP_LABEL
> - union {
> - struct static_key_true dd_key_true;
> - struct static_key_false dd_key_false;
> - } key;
> -#endif
> } __attribute__((aligned(8)));
>
> enum class_map_type {
> --
> 2.42.0.869.gea05f2083d-goog
>