All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@codeaurora.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Paul Mundt <lethal@linux-sh.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	Russell King <linux@arm.linux.org.uk>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 8/8] ARM: smp: Remove local timer API
Date: Mon, 04 Mar 2013 15:50:22 -0800	[thread overview]
Message-ID: <5135333E.6030305@codeaurora.org> (raw)
In-Reply-To: <20130225134041.GA22785@e106331-lin.cambridge.arm.com>

On 02/25/13 05:40, Mark Rutland wrote:
> I've had a quick go at writing a generic timer driver. I've not had a chance to
> test it, and there are a couple of things that are up for discussion (e.g. what
> should the rating be) but I think we want something very close to this.
>

This looks good to me. I only have some minor comments. What's the plan
for merging? Get tglx to take this and provide a stable branch and then
base my patches off that and get these patches taken through arm-soc?

> diff --git a/drivers/clocksource/dummy_timer.c b/drivers/clocksource/dummy_timer.c
> new file mode 100644
> index 0000000..bdaba34
> --- /dev/null
> +++ b/drivers/clocksource/dummy_timer.c
> @@ -0,0 +1,67 @@
> +/*
> + *  linux/drivers/clocksource/dummy_timer.c
> + *
> + *  Copyright (C) 2013 ARM Ltd.
> + *  All Rights Reserved
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#include <linux/clockchips.h>
> +#include <linux/cpu.h>
> +#include <linux/init.h>
> +#include <linux/percpu.h>
> +
> +DEFINE_PER_CPU(struct clock_event_device, dummy_evt);

static?

> +
> +static void dummy_set_mode(enum clock_event_mode mode,
> +			   struct clock_event_device *evt)
> +{
> +	/*
> +	 * Core clockevents code will call this when exchanging timer devices.
> +	 * We don't need to do anything here.
> +	 */
> +}
> +
> +static void __cpuinit dummy_setup(void)
> +{
> +	int cpu = smp_processor_id();
> +	struct clock_event_device *evt = &per_cpu(dummy_evt, cpu);

Can we use __this_cpu_ptr()? I wonder if that makes the code generation
better or worse. I didn't do it in my 8/8 patch because I wanted the
code to be the same before and after to show code movement.

> +
> +	evt->name	= "dummy timer";
> +	evt->features	= CLOCK_EVT_FEAT_PERIODIC |
> +			  CLOCK_EVT_FEAT_ONESHOT |
> +			  CLOCK_EVT_FEAT_DUMMY;
> +	evt->rating	= 100;
> +	evt->set_mode	= dummy_set_mode;
> +	evt->cpumask	= cpumask_of(cpu);
> +
> +	clockevents_register_device(evt);
> +}
> +
> +static int __cpuinit dummy_cpu_notify(struct notifier_block *self,
> +				      unsigned long action, void *hcpu)
> +{
> +	if ((action & ~CPU_TASKS_FROZEN) == CPU_STARTING)
> +		dummy_setup();

There are already two dummy_setup() functions. Perhaps we can
s/dummy/dummy_broadcast/ throughout this file?

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 8/8] ARM: smp: Remove local timer API
Date: Mon, 04 Mar 2013 15:50:22 -0800	[thread overview]
Message-ID: <5135333E.6030305@codeaurora.org> (raw)
In-Reply-To: <20130225134041.GA22785@e106331-lin.cambridge.arm.com>

On 02/25/13 05:40, Mark Rutland wrote:
> I've had a quick go at writing a generic timer driver. I've not had a chance to
> test it, and there are a couple of things that are up for discussion (e.g. what
> should the rating be) but I think we want something very close to this.
>

This looks good to me. I only have some minor comments. What's the plan
for merging? Get tglx to take this and provide a stable branch and then
base my patches off that and get these patches taken through arm-soc?

> diff --git a/drivers/clocksource/dummy_timer.c b/drivers/clocksource/dummy_timer.c
> new file mode 100644
> index 0000000..bdaba34
> --- /dev/null
> +++ b/drivers/clocksource/dummy_timer.c
> @@ -0,0 +1,67 @@
> +/*
> + *  linux/drivers/clocksource/dummy_timer.c
> + *
> + *  Copyright (C) 2013 ARM Ltd.
> + *  All Rights Reserved
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#include <linux/clockchips.h>
> +#include <linux/cpu.h>
> +#include <linux/init.h>
> +#include <linux/percpu.h>
> +
> +DEFINE_PER_CPU(struct clock_event_device, dummy_evt);

static?

> +
> +static void dummy_set_mode(enum clock_event_mode mode,
> +			   struct clock_event_device *evt)
> +{
> +	/*
> +	 * Core clockevents code will call this when exchanging timer devices.
> +	 * We don't need to do anything here.
> +	 */
> +}
> +
> +static void __cpuinit dummy_setup(void)
> +{
> +	int cpu = smp_processor_id();
> +	struct clock_event_device *evt = &per_cpu(dummy_evt, cpu);

Can we use __this_cpu_ptr()? I wonder if that makes the code generation
better or worse. I didn't do it in my 8/8 patch because I wanted the
code to be the same before and after to show code movement.

> +
> +	evt->name	= "dummy timer";
> +	evt->features	= CLOCK_EVT_FEAT_PERIODIC |
> +			  CLOCK_EVT_FEAT_ONESHOT |
> +			  CLOCK_EVT_FEAT_DUMMY;
> +	evt->rating	= 100;
> +	evt->set_mode	= dummy_set_mode;
> +	evt->cpumask	= cpumask_of(cpu);
> +
> +	clockevents_register_device(evt);
> +}
> +
> +static int __cpuinit dummy_cpu_notify(struct notifier_block *self,
> +				      unsigned long action, void *hcpu)
> +{
> +	if ((action & ~CPU_TASKS_FROZEN) == CPU_STARTING)
> +		dummy_setup();

There are already two dummy_setup() functions. Perhaps we can
s/dummy/dummy_broadcast/ throughout this file?

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

  reply	other threads:[~2013-03-04 23:50 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-22  7:27 [PATCH 0/8] Remove ARM local timer API Stephen Boyd
2013-02-22  7:27 ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 1/8] ARM: smp: Lower rating of dummy broadcast device Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 2/8] ARM: smp_twd: Divorce smp_twd from local timer API Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 3/8] ARM: EXYNOS4: Divorce mct " Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 4/8] ARM: PRIMA2: Divorce timer-marco " Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 5/8] ARM: MSM: Divorce msm_timer " Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-03-05 19:04   ` David Brown
2013-03-05 19:04     ` David Brown
2013-02-22  7:27 ` [PATCH 6/8] clocksource: time-armada-370-xp: Fix sparse warning Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 7/8] clocksource: time-armada-370-xp: Divorce from local timer API Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22  7:27 ` [PATCH 8/8] ARM: smp: Remove " Stephen Boyd
2013-02-22  7:27   ` Stephen Boyd
2013-02-22 11:15   ` Mark Rutland
2013-02-22 11:15     ` Mark Rutland
2013-02-22 16:25     ` Paul Mundt
2013-02-22 16:25       ` Paul Mundt
2013-02-25 13:40       ` Mark Rutland
2013-02-25 13:40         ` Mark Rutland
2013-03-04 23:50         ` Stephen Boyd [this message]
2013-03-04 23:50           ` Stephen Boyd
2013-03-04 23:52           ` Stephen Boyd
2013-03-04 23:52             ` Stephen Boyd
2013-03-05 11:02           ` Mark Rutland
2013-03-05 11:02             ` Mark Rutland
2013-03-05 18:45             ` Stephen Boyd
2013-03-05 18:45               ` Stephen Boyd
2013-02-24  2:37     ` Stephen Boyd
2013-02-24  2:37       ` Stephen Boyd
2013-02-25 13:44       ` Mark Rutland
2013-02-25 13:44         ` Mark Rutland

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=5135333E.6030305@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=lethal@linux-sh.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.rutland@arm.com \
    /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.