All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] parisc stable patch: parisc: Mark cr16 CPU clocksource unstable on all SMP machines
@ 2021-12-06 11:55 Helge Deller
  2021-12-06 12:56 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 2+ messages in thread
From: Helge Deller @ 2021-12-06 11:55 UTC (permalink / raw)
  To: stable, Greg Kroah-Hartman

Hello stable team,

can you please apply this patch to stable kernels from v4.14 up to v5.14 (both including).

It's a backport of upstream commit:
  commit afdb4a5b1d340e4afffc65daa21cc71890d7d589
  parisc: Mark cr16 CPU clocksource unstable on all SMP machines

The upstream commit doesn't apply cleanly to those kernels, so this
patch has been adjusted so that it now applies.

Thanks!
Helge

-------------
Author: Helge Deller <deller@gmx.de>
Date:   Sat Dec 4 21:21:46 2021 +0100

parisc: Mark cr16 CPU clocksource unstable on all SMP machines

In commit c8c3735997a3 ("parisc: Enhance detection of synchronous cr16
clocksources") I assumed that CPUs on the same physical core are syncronous.
While booting up the kernel on two different C8000 machines, one with a
dual-core PA8800 and one with a dual-core PA8900 CPU, this turned out to be
wrong. The symptom was that I saw a jump in the internal clocks printed to the
syslog and strange overall behaviour.  On machines which have 4 cores (2
dual-cores) the problem isn't visible, because the current logic already marked
the cr16 clocksource unstable in this case.

This patch now marks the cr16 interval timers unstable if we have more than one
CPU in the system, and it fixes this issue.

Fixes: c8c3735997a3 ("parisc: Enhance detection of synchronous cr16 clocksources")
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v5.15+

diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c
index 08e4d480abe1..f26c9f466cdd 100644
--- a/arch/parisc/kernel/time.c
+++ b/arch/parisc/kernel/time.c
@@ -249,27 +249,13 @@ void __init time_init(void)
 static int __init init_cr16_clocksource(void)
 {
 	/*
-	 * The cr16 interval timers are not syncronized across CPUs on
-	 * different sockets, so mark them unstable and lower rating on
-	 * multi-socket SMP systems.
+	 * The cr16 interval timers are not syncronized across CPUs, even if
+	 * they share the same socket.
 	 */
 	if (num_online_cpus() > 1 && !running_on_qemu) {
-		int cpu;
-		unsigned long cpu0_loc;
-		cpu0_loc = per_cpu(cpu_data, 0).cpu_loc;
-
-		for_each_online_cpu(cpu) {
-			if (cpu == 0)
-				continue;
-			if ((cpu0_loc != 0) &&
-			    (cpu0_loc == per_cpu(cpu_data, cpu).cpu_loc))
-				continue;
-
-			clocksource_cr16.name = "cr16_unstable";
-			clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
-			clocksource_cr16.rating = 0;
-			break;
-		}
+		clocksource_cr16.name = "cr16_unstable";
+		clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
+		clocksource_cr16.rating = 0;
 	}

 	/* XXX: We may want to mark sched_clock stable here if cr16 clocks are

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] parisc stable patch: parisc: Mark cr16 CPU clocksource unstable on all SMP machines
  2021-12-06 11:55 [PATCH] parisc stable patch: parisc: Mark cr16 CPU clocksource unstable on all SMP machines Helge Deller
@ 2021-12-06 12:56 ` Greg Kroah-Hartman
  0 siblings, 0 replies; 2+ messages in thread
From: Greg Kroah-Hartman @ 2021-12-06 12:56 UTC (permalink / raw)
  To: Helge Deller; +Cc: stable

On Mon, Dec 06, 2021 at 12:55:18PM +0100, Helge Deller wrote:
> Hello stable team,
> 
> can you please apply this patch to stable kernels from v4.14 up to v5.14 (both including).
> 
> It's a backport of upstream commit:
>   commit afdb4a5b1d340e4afffc65daa21cc71890d7d589
>   parisc: Mark cr16 CPU clocksource unstable on all SMP machines
> 
> The upstream commit doesn't apply cleanly to those kernels, so this
> patch has been adjusted so that it now applies.

Now queued up, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-06 12:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-06 11:55 [PATCH] parisc stable patch: parisc: Mark cr16 CPU clocksource unstable on all SMP machines Helge Deller
2021-12-06 12:56 ` Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.