2022-03-08 11:28:34

by Mike Travis

[permalink] [raw]
Subject: [PATCH 1/4] x86/platform/uv: Remove Obsolete Scratch5 NMI handler

Removes obsolete scratch5 NMI handler only used in UV1 and early UV2
systems.

Signed-off-by: Mike Travis <[email protected]>
Reviewed-by: Steve Wahl <[email protected]>
---
arch/x86/include/asm/uv/uv_hub.h | 6 ------
arch/x86/platform/uv/uv_nmi.c | 5 +----
2 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
index d3e3197917be..958c18f94146 100644
--- a/arch/x86/include/asm/uv/uv_hub.h
+++ b/arch/x86/include/asm/uv/uv_hub.h
@@ -729,12 +729,6 @@ extern void uv_nmi_setup_hubless(void);
#define UVH_TSC_SYNC_VALID 3 /* 0011 */
#define UVH_TSC_SYNC_UNKNOWN 0 /* 0000 */

-/* BMC sets a bit this MMR non-zero before sending an NMI */
-#define UVH_NMI_MMR UVH_BIOS_KERNEL_MMR
-#define UVH_NMI_MMR_CLEAR UVH_BIOS_KERNEL_MMR_ALIAS
-#define UVH_NMI_MMR_SHIFT 63
-#define UVH_NMI_MMR_TYPE "SCRATCH5"
-
struct uv_hub_nmi_s {
raw_spinlock_t nmi_lock;
atomic_t in_nmi; /* flag this node in UV NMI IRQ */
diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c
index 1e9ff28bc2e0..926a4e006e5a 100644
--- a/arch/x86/platform/uv/uv_nmi.c
+++ b/arch/x86/platform/uv/uv_nmi.c
@@ -280,10 +280,7 @@ static void uv_nmi_setup_mmrs(void)
nmi_mmr_pending = 1UL << uvh_nmi_mmrx_shift;
pr_info("UV: SMI NMI support: %s\n", uvh_nmi_mmrx_type);
} else {
- nmi_mmr = UVH_NMI_MMR;
- nmi_mmr_clear = UVH_NMI_MMR_CLEAR;
- nmi_mmr_pending = 1UL << UVH_NMI_MMR_SHIFT;
- pr_info("UV: SMI NMI support: %s\n", UVH_NMI_MMR_TYPE);
+ pr_warn("UV: NMI handler not present or not supported\n");
}
}

--
2.26.2


2022-03-11 22:50:20

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH 1/4] x86/platform/uv: Remove Obsolete Scratch5 NMI handler

Hi,

I just noticed this series only touches files under arch/x86,
so reviewing + merging this really is up to the x86 maintainers,
but I was already looking at it anyways so here is a review
from me too.

On 3/8/22 02:05, Mike Travis wrote:
> Removes obsolete scratch5 NMI handler only used in UV1 and early UV2
> systems.
>
> Signed-off-by: Mike Travis <[email protected]>
> Reviewed-by: Steve Wahl <[email protected]>
> ---
> arch/x86/include/asm/uv/uv_hub.h | 6 ------
> arch/x86/platform/uv/uv_nmi.c | 5 +----
> 2 files changed, 1 insertion(+), 10 deletions(-)
>
> diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
> index d3e3197917be..958c18f94146 100644
> --- a/arch/x86/include/asm/uv/uv_hub.h
> +++ b/arch/x86/include/asm/uv/uv_hub.h
> @@ -729,12 +729,6 @@ extern void uv_nmi_setup_hubless(void);
> #define UVH_TSC_SYNC_VALID 3 /* 0011 */
> #define UVH_TSC_SYNC_UNKNOWN 0 /* 0000 */
>
> -/* BMC sets a bit this MMR non-zero before sending an NMI */
> -#define UVH_NMI_MMR UVH_BIOS_KERNEL_MMR
> -#define UVH_NMI_MMR_CLEAR UVH_BIOS_KERNEL_MMR_ALIAS
> -#define UVH_NMI_MMR_SHIFT 63
> -#define UVH_NMI_MMR_TYPE "SCRATCH5"
> -
> struct uv_hub_nmi_s {
> raw_spinlock_t nmi_lock;
> atomic_t in_nmi; /* flag this node in UV NMI IRQ */
> diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c
> index 1e9ff28bc2e0..926a4e006e5a 100644
> --- a/arch/x86/platform/uv/uv_nmi.c
> +++ b/arch/x86/platform/uv/uv_nmi.c
> @@ -280,10 +280,7 @@ static void uv_nmi_setup_mmrs(void)
> nmi_mmr_pending = 1UL << uvh_nmi_mmrx_shift;
> pr_info("UV: SMI NMI support: %s\n", uvh_nmi_mmrx_type);
> } else {
> - nmi_mmr = UVH_NMI_MMR;
> - nmi_mmr_clear = UVH_NMI_MMR_CLEAR;
> - nmi_mmr_pending = 1UL << UVH_NMI_MMR_SHIFT;
> - pr_info("UV: SMI NMI support: %s\n", UVH_NMI_MMR_TYPE);
> + pr_warn("UV: NMI handler not present or not supported\n");
> }
> }
>

This seems like a bad idea, just because HPE is no longer actively maintaining
these older UV versions does not mean that they are automatically without
users and we usually don't go around and start dropping support for hw
which is still in active use.

So NACK from me on this one.

Regards,

Hans