On 5/13/25 13:37, Sohil Mehta wrote:
...
> + * Vector 2 is reserved for external NMIs related to the Local APIC -
> + * LINT1. Some third-party chipsets may send NMI messages with a
> + * hardcoded vector of 2, which would result in bit 2 being set in the
> + * NMI-source bitmap.

This doesn't actually say what problem this causes. Is this better?

        Third-party chipsets send NMI messages with a fixed vector of 2.
        Using vector 2 for some other purpose would cause confusion
        between those Local APIC messages and the other purpose. Avoid
        using it.

> + * The vectors are in no particular priority order. Add new vector
> + * assignments sequentially in the list below.
> + */
> +#define NMIS_VECTOR_NONE     0       /* Reserved - Set for all unidentified 
> sources */
> +#define NMIS_VECTOR_TEST     1       /* NMI selftest */
> +#define NMIS_VECTOR_EXTERNAL 2       /* Reserved - Match External NMI vector 
> 2 */
> +#define NMIS_VECTOR_SMP_STOP 3       /* Panic stop CPU */
> +#define NMIS_VECTOR_BT               4       /* CPU backtrace */
> +#define NMIS_VECTOR_KGDB     5       /* Kernel debugger */
> +#define NMIS_VECTOR_MCE              6       /* MCE injection */
> +#define NMIS_VECTOR_PMI              7       /* PerfMon counters */
> +
> +#define NMIS_VECTORS_MAX     16      /* Maximum number of NMI-source vectors 
> */

Would an enum fit here?

You could also add a:

        NMIS_VECTOR_COUNT

as the last entry and then just:

        BUILD_BUG_ON(NMIS_VECTOR_COUNT >= 16);

somewhere.

I guess it's a little annoying that you need NMIS_VECTOR_EXTERNAL to
have a fixed value of 2, but I do like way the enum makes the type explicit.


>  static int __init register_nmi_cpu_backtrace_handler(void)
>  {
> -     register_nmi_handler(NMI_LOCAL, nmi_cpu_backtrace_handler, 0, 
> "arch_bt", 0);
> +     register_nmi_handler(NMI_LOCAL, nmi_cpu_backtrace_handler, 0, 
> "arch_bt", NMIS_VECTOR_BT);
>       return 0;
>  }

... Oh you replaced _most_ of the random 0's in this patch. That helps
for sure.

Reply via email to