Re: [PATCH] clocksource: sh_tmu: Set cpu_possible_mask to fix SMP broadcast

From: Daniel Lezcano
Date: Tue Dec 16 2014 - 06:29:18 EST


On 12/16/2014 12:20 PM, Laurent Pinchart wrote:
Hi Daniel,

On Tuesday 16 December 2014 12:14:40 Daniel Lezcano wrote:
On 12/16/2014 10:48 AM, Magnus Damm wrote:
From: Magnus Damm <damm+renesas@xxxxxxxxxxxxx>

Update the TMU driver to use cpu_possible_mask as cpumask to make
r8a7779 SMP work as expected with or without the ARM TWD timer.

Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx>

Applied as a 3.18 fix.

You're a bit too fast, I haven't had time to review the patch yet.

Ah, ok. Hanging on then :)

>
ps: May I suggest to use the CLOCK_EVT_FEAT_DYNIRQ flag for this driver ?

---

drivers/clocksource/sh_tmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- 0001/drivers/clocksource/sh_tmu.c
+++ work/drivers/clocksource/sh_tmu.c 2014-12-16 17:49:49.000000000 +0900
@@ -428,7 +428,7 @@ static void sh_tmu_register_clockevent(s

ced->features = CLOCK_EVT_FEAT_PERIODIC;
ced->features |= CLOCK_EVT_FEAT_ONESHOT;
ced->rating = 200;
- ced->cpumask = cpumask_of(0);
+ ced->cpumask = cpu_possible_mask;

Magnus, how thoroughly have you tested this ? The TMU is indeed usable by all
CPUs, so setting the CPU mask to cpu_possible_mask makes sense, but last time
I've tried that it broke the broadcast timer due to the heuristics used by the
clock events core code.

Could you please confirm that you've tested both CONFIG_PREEMPT_NONE and
CONFIG_PREEMPT with and without the ARM TWD times, and that you've booted to
userspace and tested timer broadcast on all CPUs ?

ced->set_next_event = sh_tmu_clock_event_next;
ced->set_mode = sh_tmu_clock_event_mode;
ced->suspend = sh_tmu_clock_event_suspend;



--
<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/