All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanislav Meduna <stano@meduna.org>
To: "linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>
Cc: shawn.guo@linaro.org, linux@arm.linux.org.uk,
	linux-kernel@vger.kernel.org
Subject: Re: Wakeup latency measured with SCHED_TRACER depends on HZ
Date: Fri, 02 Nov 2012 15:29:50 +0100	[thread overview]
Message-ID: <5093D8DE.70505@meduna.org> (raw)
In-Reply-To: <50919AFF.3060602@meduna.org>

[-- Attachment #1: Type: text/plain, Size: 651 bytes --]

On 31.10.2012 22:41, Stanislav Meduna wrote:

> on an embedded platform using a Freescale i.MX28 ARM processor
> I am experiencing a strange phenomenon - the latencies reported
> are dependent of HZ

OK, the problem is that the MXS platform does not setup
the scheduler clock so the scheduler only sees the HZ one.

The patch in attach fixes this. I can only test the MX28 part -
I don't have any timrot_is_v1() (MX23) hardware and I don't
know whether a source that wraps after ~2 seconds is OK at all.

Please Cc: when replying, I am not subscribed to linux-kernel
(only to linux-rt-users).

Regards
-- 
                                      Stano


[-- Attachment #2: 0001-Setup-scheduler-clock-for-MXS.patch --]
[-- Type: text/plain, Size: 1511 bytes --]

>From ddeed3c83d48e8ce33b36bd964572756354e7feb Mon Sep 17 00:00:00 2001
From: Stanislav Meduna <stano@meduna.org>
Date: Fri, 2 Nov 2012 15:00:44 +0100
Subject: [PATCH] Setup scheduler clock for MXS

---
 arch/arm/mach-mxs/timer.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/timer.c b/arch/arm/mach-mxs/timer.c
index 564a632..0ab86a2 100644
--- a/arch/arm/mach-mxs/timer.c
+++ b/arch/arm/mach-mxs/timer.c
@@ -26,6 +26,7 @@
 #include <linux/clk.h>
 
 #include <asm/mach/time.h>
+#include <asm/sched_clock.h>
 #include <mach/mxs.h>
 #include <mach/common.h>
 
@@ -243,6 +244,16 @@ static int __init mxs_clocksource_init(struct clk *timer_clk)
 	return 0;
 }
 
+static u32 notrace mxs_read_sched_clock_v1(void)
+{
+	return timrotv1_get_cycles(&clocksource_mxs);
+}
+
+static u32 notrace mxs_read_sched_clock_v2(void)
+{
+	return ~readl_relaxed(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1));
+}
+
 void __init mxs_timer_init(struct clk *timer_clk, int irq)
 {
 	clk_prepare_enable(timer_clk);
@@ -285,6 +296,14 @@ void __init mxs_timer_init(struct clk *timer_clk, int irq)
 	mxs_clocksource_init(timer_clk);
 	mxs_clockevent_init(timer_clk);
 
+	/* Register scheduler clocksource */
+	if (timrot_is_v1())
+		setup_sched_clock(mxs_read_sched_clock_v1,
+			16, clk_get_rate(timer_clk));
+	else
+		setup_sched_clock(mxs_read_sched_clock_v2,
+			32, clk_get_rate(timer_clk));
+
 	/* Make irqs happen */
 	setup_irq(irq, &mxs_timer_irq);
 }
-- 
1.7.0.4


  reply	other threads:[~2012-11-02 15:14 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-31 21:41 Wakeup latency measured with SCHED_TRACER depends on HZ Stanislav Meduna
2012-11-02 14:29 ` Stanislav Meduna [this message]
2012-11-05  2:57   ` Shawn Guo
2012-11-05  9:14     ` scheduler clock for MXS [Was: Re: Wakeup latency measured with SCHED_TRACER depends on HZ] Stanislav Meduna
2012-11-05  9:14       ` Stanislav Meduna
2012-11-05 13:46       ` Shawn Guo
2012-11-05 13:46         ` Shawn Guo
2012-11-05 16:09         ` Stanislav Meduna
2012-11-05 16:09           ` Stanislav Meduna
2012-11-05 22:28           ` Russell King - ARM Linux
2012-11-05 22:28             ` Russell King - ARM Linux
2012-11-06  2:40             ` Shawn Guo
2012-11-06  2:40               ` Shawn Guo
2012-11-06 10:12               ` Russell King - ARM Linux
2012-11-06 10:12                 ` Russell King - ARM Linux
2012-11-06 13:49                 ` Shawn Guo
2012-11-06 13:49                   ` Shawn Guo
2012-11-06 20:04                   ` Russell King - ARM Linux
2012-11-06 20:04                     ` Russell King - ARM Linux
2012-11-06  8:34             ` scheduler clock for MXS Stanislav Meduna
2012-11-06  8:34               ` Stanislav Meduna
2012-11-06  9:45               ` Russell King - ARM Linux
2012-11-06  9:45                 ` Russell King - ARM Linux
2012-11-06 13:46               ` Shawn Guo
2012-11-06 13:46                 ` Shawn Guo
2012-11-06 20:20                 ` Russell King - ARM Linux
2012-11-06 20:20                   ` Russell King - ARM Linux
2012-11-06 22:30                   ` Stanislav Meduna
2012-11-06 22:30                     ` Stanislav Meduna
2012-11-06 22:46                     ` Russell King - ARM Linux
2012-11-06 22:46                       ` Russell King - ARM Linux
2012-11-07  7:13                       ` Shawn Guo
2012-11-07  7:13                         ` Shawn Guo
2012-11-08 21:27                       ` Stanislav Meduna
2012-11-08 21:27                         ` Stanislav Meduna
2012-11-08 22:11                         ` Russell King - ARM Linux
2012-11-08 22:11                           ` Russell King - ARM Linux
2012-11-08 22:45                 ` [PATCH] ARM: mxs: Setup scheduler clock Stanislav Meduna
2012-11-08 22:45                   ` Stanislav Meduna
2012-11-12  1:54                   ` Shawn Guo
2012-11-12  1:54                     ` Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5093D8DE.70505@meduna.org \
    --to=stano@meduna.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=shawn.guo@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.