[PATCH] powerpc: Add interrupt mode information in /proc/cpuinfo

Michael Ellerman mpe at ellerman.id.au
Tue Apr 28 21:03:20 AEST 2020


Cédric Le Goater <clg at kaod.org> writes:
> PowerNV and pSeries machines can run using the XIVE or XICS interrupt
> mode. Report this information in /proc/cpuinfo :
>
>     timebase    : 512000000
>     platform    : PowerNV
>     model       : 9006-22C
>     machine     : PowerNV 9006-22C
>     firmware    : OPAL
>     MMU         : Radix
>     IRQ         : XIVE

Hmmmm, I dunno. At what point do we stop putting random non CPU-related
things in cpuinfo? :)

The IRQ mode is (reasonably) easily discovered in sys, eg:

  $ cat /sys/kernel/irq/*/chip_name | grep -m 1 XIVE
  XIVE-IRQ

vs:

  $ cat /sys/kernel/irq/*/chip_name | grep -m 1 XICS
  XICS


cheers

> diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
> index 3bc188da82ba..39ef3394038d 100644
> --- a/arch/powerpc/platforms/powernv/setup.c
> +++ b/arch/powerpc/platforms/powernv/setup.c
> @@ -196,14 +196,18 @@ static void pnv_show_cpuinfo(struct seq_file *m)
>  		model = of_get_property(root, "model", NULL);
>  	seq_printf(m, "machine\t\t: PowerNV %s\n", model);
>  	if (firmware_has_feature(FW_FEATURE_OPAL))
> -		seq_printf(m, "firmware\t: OPAL\n");
> +		seq_puts(m, "firmware\t: OPAL\n");
>  	else
> -		seq_printf(m, "firmware\t: BML\n");
> +		seq_puts(m, "firmware\t: BML\n");
>  	of_node_put(root);
>  	if (radix_enabled())
> -		seq_printf(m, "MMU\t\t: Radix\n");
> +		seq_puts(m, "MMU\t\t: Radix\n");
>  	else
> -		seq_printf(m, "MMU\t\t: Hash\n");
> +		seq_puts(m, "MMU\t\t: Hash\n");
> +	if (xive_enabled())
> +		seq_puts(m, "IRQ\t\t: XIVE\n");
> +	else
> +		seq_puts(m, "IRQ\t\t: XICS\n");
>  }
>  
>  static void pnv_prepare_going_down(void)
> diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
> index 0c8421dd01ab..d248fca67797 100644
> --- a/arch/powerpc/platforms/pseries/setup.c
> +++ b/arch/powerpc/platforms/pseries/setup.c
> @@ -95,9 +95,13 @@ static void pSeries_show_cpuinfo(struct seq_file *m)
>  	seq_printf(m, "machine\t\t: CHRP %s\n", model);
>  	of_node_put(root);
>  	if (radix_enabled())
> -		seq_printf(m, "MMU\t\t: Radix\n");
> +		seq_puts(m, "MMU\t\t: Radix\n");
>  	else
> -		seq_printf(m, "MMU\t\t: Hash\n");
> +		seq_puts(m, "MMU\t\t: Hash\n");
> +	if (xive_enabled())
> +		seq_puts(m, "IRQ\t\t: XIVE\n");
> +	else
> +		seq_puts(m, "IRQ\t\t: XICS\n");
>  }
>  
>  /* Initialize firmware assisted non-maskable interrupts if
> -- 
> 2.25.3


More information about the Linuxppc-dev mailing list