On 4/28/20 1:03 PM, Michael Ellerman wrote: > Cédric Le Goater <c...@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? :)
True. > 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 That's good enough for error reporting Thanks. C. > > 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