[PATCH] powerpc/xics: Adjust interrupt receive priority for offline cpus

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3488d

3 messages, 3 authors, 2017-02-24 · open the first message on its own page

[PATCH] powerpc/xics: Adjust interrupt receive priority for offline cpus

From: Vaidyanathan Srinivasan <hidden>
Date: 2017-02-23 10:54:52

Offline CPUs need to receive IPIs through XIVE when they are
in stop state and wakeup from that state.

Reduce interrupt receive priority in order to receive XIVE
wakeup interrupts when in offline state.

LOWEST_PRIORITY would allow all interrupts to be delivered
as wakeup events.

Signed-off-by: Vaidyanathan Srinivasan <redacted>
---
 arch/powerpc/sysdev/xics/xics-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/sysdev/xics/xics-common.c b/arch/powerpc/sysdev/xics/xics-common.c
index 69d858e..c674a9d 100644
--- a/arch/powerpc/sysdev/xics/xics-common.c
+++ b/arch/powerpc/sysdev/xics/xics-common.c
@@ -199,7 +199,7 @@ void xics_migrate_irqs_away(void)
 	xics_set_cpu_giq(xics_default_distrib_server, 0);
 
 	/* Allow IPIs again... */
-	icp_ops->set_priority(DEFAULT_PRIORITY);
+	icp_ops->set_priority(LOWEST_PRIORITY);
 
 	for_each_irq_desc(virq, desc) {
 		struct irq_chip *chip;
-- 
2.9.3

Re: [PATCH] powerpc/xics: Adjust interrupt receive priority for offline cpus

From: Michael Neuling <hidden>
Date: 2017-02-24 00:22:00

On Thu, 2017-02-23 at 16:24 +0530, Vaidyanathan Srinivasan wrote:
Offline CPUs need to receive IPIs through XIVE when they are
in stop state and wakeup from that state.
=20
Reduce interrupt receive priority in order to receive XIVE
wakeup interrupts when in offline state.
=20
LOWEST_PRIORITY would allow all interrupts to be delivered
as wakeup events.
This needs to be expanded to explain why "DEFAULT" doesn't work in this cas=
e.

This also needs an explicit statement that "It fixes onlining of CPUs on
POWER9".  I'd even advocate for making that the patch subject.=20

Also if it's the right fix, it needs a cc:stable.

Mikey

quoted hunk
Signed-off-by: Vaidyanathan Srinivasan <redacted>
---
=C2=A0arch/powerpc/sysdev/xics/xics-common.c | 2 +-
=C2=A01 file changed, 1 insertion(+), 1 deletion(-)
=20
diff --git a/arch/powerpc/sysdev/xics/xics-common.c
b/arch/powerpc/sysdev/xics/xics-common.c
index 69d858e..c674a9d 100644
--- a/arch/powerpc/sysdev/xics/xics-common.c
+++ b/arch/powerpc/sysdev/xics/xics-common.c
@@ -199,7 +199,7 @@ void xics_migrate_irqs_away(void)
=C2=A0	xics_set_cpu_giq(xics_default_distrib_server, 0);
=C2=A0
=C2=A0	/* Allow IPIs again... */
-	icp_ops->set_priority(DEFAULT_PRIORITY);
+	icp_ops->set_priority(LOWEST_PRIORITY);
=C2=A0
=C2=A0	for_each_irq_desc(virq, desc) {
=C2=A0		struct irq_chip *chip;

Re: [PATCH] powerpc/xics: Adjust interrupt receive priority for offline cpus

From: Balbir Singh <bsingharora@gmail.com>
Date: 2017-02-24 00:35:12

On Thu, Feb 23, 2017 at 9:54 PM, Vaidyanathan Srinivasan
[off-list ref] wrote:
quoted hunk
Offline CPUs need to receive IPIs through XIVE when they are
in stop state and wakeup from that state.

Reduce interrupt receive priority in order to receive XIVE
wakeup interrupts when in offline state.

LOWEST_PRIORITY would allow all interrupts to be delivered
as wakeup events.

Signed-off-by: Vaidyanathan Srinivasan <redacted>
---
 arch/powerpc/sysdev/xics/xics-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/sysdev/xics/xics-common.c b/arch/powerpc/sysdev/xics/xics-common.c
index 69d858e..c674a9d 100644
--- a/arch/powerpc/sysdev/xics/xics-common.c
+++ b/arch/powerpc/sysdev/xics/xics-common.c
@@ -199,7 +199,7 @@ void xics_migrate_irqs_away(void)
        xics_set_cpu_giq(xics_default_distrib_server, 0);

        /* Allow IPIs again... */
-       icp_ops->set_priority(DEFAULT_PRIORITY);
+       icp_ops->set_priority(LOWEST_PRIORITY);
Aren't IPI's at higher priority than DEFAULT_PRIORITY? Like Mikey said
I am not sure what
is broken with the current implementation? Is this true for all
icp_ops? I presume you are using
icp_opal. I suspect you'll need to look at

1. XIVE to see if EMULATION_PRIO is the issue
2. Check if only icp_opal is impacted

Balbir Singh.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help