summaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev/xive/xive-internal.h
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2020-12-10 18:14:40 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2020-12-11 09:34:07 +1100
commite2cf43d59525477cfd030378c3c808187952c531 (patch)
tree7793d17c0aa7435fea429775133fc12378c31998 /arch/powerpc/sysdev/xive/xive-internal.h
parent4f1c3f7b08187e6b97701c7fb2dc6f3749566c62 (diff)
powerpc/xive: Introduce XIVE_IPI_HW_IRQ
The XIVE driver deals with CPU IPIs in a peculiar way. Each CPU has its own XIVE IPI interrupt allocated at the HW level, for PowerNV, or at the hypervisor level for pSeries. In practice, these interrupts are not always used. pSeries/PowerVM prefers local doorbells for local threads since they are faster. On PowerNV, global doorbells are also preferred for the same reason. The mapping in the Linux is reduced to a single interrupt using HW interrupt number 0 and a custom irq_chip to handle EOI. This can cause performance issues in some benchmark (ipistorm) on multichip systems. Clarify the use of the 0 value, it will help in improving multichip support. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20201210171450.1933725-4-clg@kaod.org
Diffstat (limited to 'arch/powerpc/sysdev/xive/xive-internal.h')
-rw-r--r--arch/powerpc/sysdev/xive/xive-internal.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/xive/xive-internal.h b/arch/powerpc/sysdev/xive/xive-internal.h
index b7b901da2168..d701af7fb48c 100644
--- a/arch/powerpc/sysdev/xive/xive-internal.h
+++ b/arch/powerpc/sysdev/xive/xive-internal.h
@@ -5,6 +5,8 @@
#ifndef __XIVE_INTERNAL_H
#define __XIVE_INTERNAL_H
+#define XIVE_IPI_HW_IRQ 0 /* interrupt source # for IPIs */
+
/*
* A "disabled" interrupt should never fire, to catch problems
* we set its logical number to this