Re: [PATCH 1/5] ACPI: NUMA: Add 'nohmat' option

From: Dan Williams
Date: Tue Mar 17 2020 - 20:09:11 EST


On Mon, Mar 2, 2020 at 2:36 PM Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
>
> Disable parsing of the HMAT for debug, to workaround broken platform
> instances, or cases where it is otherwise not wanted.

Rafael, any heartburn with this change to the numa= option?

...as I look at this I realize I failed to also update
Documentation/x86/x86_64/boot-options.rst, will fix.

>
> Cc: x86@xxxxxxxxxx
> Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx>
> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
> arch/x86/mm/numa.c | 4 ++++
> drivers/acpi/numa/hmat.c | 3 ++-
> include/acpi/acpi_numa.h | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
> index 59ba008504dc..22de2e2610c1 100644
> --- a/arch/x86/mm/numa.c
> +++ b/arch/x86/mm/numa.c
> @@ -44,6 +44,10 @@ static __init int numa_setup(char *opt)
> #ifdef CONFIG_ACPI_NUMA
> if (!strncmp(opt, "noacpi", 6))
> acpi_numa = -1;
> +#ifdef CONFIG_ACPI_HMAT
> + if (!strncmp(opt, "nohmat", 6))
> + hmat_disable = 1;
> +#endif
> #endif
> return 0;
> }
> diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c
> index 2c32cfb72370..d3db121e393a 100644
> --- a/drivers/acpi/numa/hmat.c
> +++ b/drivers/acpi/numa/hmat.c
> @@ -26,6 +26,7 @@
> #include <linux/sysfs.h>
>
> static u8 hmat_revision;
> +int hmat_disable __initdata;
>
> static LIST_HEAD(targets);
> static LIST_HEAD(initiators);
> @@ -814,7 +815,7 @@ static __init int hmat_init(void)
> enum acpi_hmat_type i;
> acpi_status status;
>
> - if (srat_disabled())
> + if (srat_disabled() || hmat_disable)
> return 0;
>
> status = acpi_get_table(ACPI_SIG_SRAT, 0, &tbl);
> diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h
> index fdebcfc6c8df..48ca468e9b61 100644
> --- a/include/acpi/acpi_numa.h
> +++ b/include/acpi/acpi_numa.h
> @@ -18,6 +18,7 @@ extern int node_to_pxm(int);
> extern int acpi_map_pxm_to_node(int);
> extern unsigned char acpi_srat_revision;
> extern int acpi_numa __initdata;
> +extern int hmat_disable __initdata;
>
> extern void bad_srat(void);
> extern int srat_disabled(void);
>