Skip to contentSkip to conversation

FAILED: patch "[PATCH] Revert "parisc: Mark sched_clock unstable only if clocks are" failed to apply to 5.15-stable tree

PATCH [email protected] 2 participants 3 messages May 9, 2022 – May 10, 2022

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 7962c0896429af2a0e00ec6bc15d992536453b2d Mon Sep 17 00:00:00 2001
From: Helge Deller <[email protected]>
Date: Sat, 7 May 2022 15:32:38 +0200
Subject: [PATCH] Revert "parisc: Mark sched_clock unstable only if clocks are
not syncronized"

This reverts commit d97180ad68bdb7ee10f327205a649bc2f558741d.

It triggers RCU stalls at boot with a 32-bit kernel.

arch/parisc/kernel/setup.c +2 -0
index b91cb45ffd4e..f005ddedb50e 100644
@@ -161,6 +161,8 @@ void __init setup_arch(char **cmdline_p)
 #ifdef CONFIG_PA11
 	dma_ops_init();
 #endif
+
+	clear_sched_clock_stable();
 }
 
 /*
arch/parisc/kernel/time.c +4 -3
index 95ee9e1a364b..19c31a72fe76 100644
@@ -267,9 +267,6 @@ static int __init init_cr16_clocksource(void)
 			    (cpu0_loc == per_cpu(cpu_data, cpu).cpu_loc))
 				continue;
 
-			/* mark sched_clock unstable */
-			clear_sched_clock_stable();
-
 			clocksource_cr16.name = "cr16_unstable";
 			clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
 			clocksource_cr16.rating = 0;
@@ -277,6 +274,10 @@ static int __init init_cr16_clocksource(void)
 		}
 	}
 
+	/* XXX: We may want to mark sched_clock stable here if cr16 clocks are
+	 *	in sync:
+	 *	(clocksource_cr16.flags == CLOCK_SOURCE_IS_CONTINUOUS) */
+
 	/* register at clocksource framework */
 	clocksource_register_hz(&clocksource_cr16,
 		100 * PAGE0->mem_10msec);
maintainer
#1 lore raw

Hi Greg,

* [email protected] <[email protected]>:

Quoted 5 lines

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

Please apply below patch instead to v5.15-stable.

Thanks!
Helge

From 7dacfca67135dc703df89d273553d8f5259776ce Mon Sep 17 00:00:00 2001
From: Helge Deller <[email protected]>
Date: Mon, 9 May 2022 18:13:29 +0200
Subject: [PATCH] Revert "parisc: Mark sched_clock unstable only if clocks are
not syncronized"

This backport reverts clock changes which made the Linux internal clock unreliable on 32- and 64-bit SMP kernels.
This patch brings the clock code in sync with upstream v5.18-rc6.

arch/parisc/kernel/setup.c +2 -0
index cceb09855e03..3fb86ee507dd 100644
@@ -150,6 +150,8 @@ void __init setup_arch(char **cmdline_p)
 #ifdef CONFIG_PA11
 	dma_ops_init();
 #endif
+
+	clear_sched_clock_stable();
 }
 
 /*
arch/parisc/kernel/time.c +1 -5
index 061119a56fbe..d8e59a1000ab 100644
@@ -249,13 +249,9 @@ void __init time_init(void)
 static int __init init_cr16_clocksource(void)
 {
 	/*
-	 * The cr16 interval timers are not syncronized across CPUs, even if
-	 * they share the same socket.
+	 * The cr16 interval timers are not synchronized across CPUs.
 	 */
 	if (num_online_cpus() > 1 && !running_on_qemu) {
-		/* mark sched_clock unstable */
-		clear_sched_clock_stable();
-
 		clocksource_cr16.name = "cr16_unstable";
 		clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
 		clocksource_cr16.rating = 0;
author maintainer
#2 lore raw
Quoted 10 lines · Helge Deller

Hi Greg,

* [email protected] <[email protected]>:

Quoted 5 lines

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

Please apply below patch instead to v5.15-stable.

Now applied, thanks.

greg k-h