Re: [PATCH v2 06/11] x86/unwind/orc: Convert global variables to static

From: Steven Rostedt
Date: Wed Feb 28 2024 - 18:33:10 EST


On Sat, 25 Apr 2020 05:03:05 -0500
Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:

> These variables aren't used outside of unwind_orc.c, make them static.
>
> Also annotate some of them with '__ro_after_init', as applicable.

So it appears that crash uses "lookup_num_blocks" to be able to do
back-traces with the ORC unwinder. But because it's now static, crash can no
longer do that.

Is it possible to make lookup_num_blocks global again?

/* Not static so that the crash utility can access it */
unsigned int lookup_num_blocks __ro_after_init;

-- Steve

>
> Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> Reviewed-by: Miroslav Benes <mbenes@xxxxxxx>
> ---
> arch/x86/kernel/unwind_orc.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/kernel/unwind_orc.c b/arch/x86/kernel/unwind_orc.c
> index e9cc182aa97e..64889da666f4 100644
> --- a/arch/x86/kernel/unwind_orc.c
> +++ b/arch/x86/kernel/unwind_orc.c
> @@ -15,12 +15,12 @@ extern int __stop_orc_unwind_ip[];
> extern struct orc_entry __start_orc_unwind[];
> extern struct orc_entry __stop_orc_unwind[];
>
> -static DEFINE_MUTEX(sort_mutex);
> -int *cur_orc_ip_table = __start_orc_unwind_ip;
> -struct orc_entry *cur_orc_table = __start_orc_unwind;
> +static bool orc_init __ro_after_init;
> +static unsigned int lookup_num_blocks __ro_after_init;
>
> -unsigned int lookup_num_blocks;
> -bool orc_init;
> +static DEFINE_MUTEX(sort_mutex);
> +static int *cur_orc_ip_table = __start_orc_unwind_ip;
> +static struct orc_entry *cur_orc_table = __start_orc_unwind;
>
> static inline unsigned long orc_ip(const int *ip)
> {