]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
s390/smp: Remove conditional emergency signal order code usage
authorHeiko Carstens <hca@linux.ibm.com>
Tue, 24 Jun 2025 14:34:35 +0000 (16:34 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Mon, 30 Jun 2025 13:03:46 +0000 (15:03 +0200)
pcpu_ec_call() uses either the external call or emergency signal order
code to signal (aka send an IPI) to a remote CPU. If the remote CPU is
not running the emergency signal order is used.

Measurements show that always using the external order code is at least
as good, and sometimes even better, than the existing code.

Therefore remove emergency signal order code usage from pcpu_ec_call().

Suggested-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/kernel/smp.c

index 81f12bb77f6208a077f43c0f7767c2b5a0e7d349..6435c5632bc96719b0e13c6b33346a3d1c771d7c 100644 (file)
@@ -175,13 +175,10 @@ static struct pcpu *pcpu_find_address(const struct cpumask *mask, u16 address)
 
 static void pcpu_ec_call(struct pcpu *pcpu, int ec_bit)
 {
-       int order;
-
        if (test_and_set_bit(ec_bit, &pcpu->ec_mask))
                return;
-       order = pcpu_running(pcpu) ? SIGP_EXTERNAL_CALL : SIGP_EMERGENCY_SIGNAL;
        pcpu->ec_clk = get_tod_clock_fast();
-       pcpu_sigp_retry(pcpu, order, 0);
+       pcpu_sigp_retry(pcpu, SIGP_EXTERNAL_CALL, 0);
 }
 
 static int pcpu_alloc_lowcore(struct pcpu *pcpu, int cpu)