powerpc/xive: Add a kernel parameter for StoreEOI
authorCédric Le Goater <clg@kaod.org>
Fri, 5 Nov 2021 10:26:34 +0000 (11:26 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 25 Nov 2021 00:25:30 +0000 (11:25 +1100)
StoreEOI is activated by default on platforms supporting the feature
(POWER10) and will be used as soon as firmware advertises its
availability. The kernel parameter provides a way to deactivate its
use. It can be still be reactivated through debugfs.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211105102636.1016378-10-clg@kaod.org
Documentation/admin-guide/kernel-parameters.txt
arch/powerpc/sysdev/xive/common.c

index 2711ddb..6248a06 100644 (file)
                                  controller on both pseries and powernv
                                  platforms. Only useful on POWER9 and above.
 
+       xive.store-eoi=off      [PPC]
+                       By default on POWER10 and above, the kernel will use
+                       stores for EOI handling when the XIVE interrupt mode
+                       is active. This option allows the XIVE driver to use
+                       loads instead, as on POWER9.
+
        xhci-hcd.quirks         [USB,KNL]
                        A hex value specifying bitmask with supplemental xhci
                        host controller quirks. Meaning of each bit can be
index b3b1dbf..3b45397 100644 (file)
@@ -1712,6 +1712,19 @@ static int __init xive_off(char *arg)
 }
 __setup("xive=off", xive_off);
 
+static int __init xive_store_eoi_cmdline(char *arg)
+{
+       if (!arg)
+               return -EINVAL;
+
+       if (strncmp(arg, "off", 3) == 0) {
+               pr_info("StoreEOI disabled on kernel command line\n");
+               xive_store_eoi = false;
+       }
+       return 0;
+}
+__setup("xive.store-eoi=", xive_store_eoi_cmdline);
+
 #ifdef CONFIG_DEBUG_FS
 static void xive_debug_show_ipi(struct seq_file *m, int cpu)
 {