From: Tomasz Figa <t.figa@samsung.com>
To: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Kyungmin Park <kyungmin.park@samsung.com>
Subject: Re: [PATCH] irqchip: gic: Allow setting affinity to offline CPUs
Date: Tue, 20 Aug 2013 18:41:54 +0200 [thread overview]
Message-ID: <3879851.vmCHJ3AcgQ@amdc1227> (raw)
In-Reply-To: <52139A5B.5040708@codeaurora.org>
On Tuesday 20 of August 2013 09:33:31 Stephen Boyd wrote:
> On 08/20/13 09:11, Tomasz Figa wrote:
> > Sometimes it is necessary to fix interrupt affinity to an offline CPU,
> > for example in initialization of local timers. This patch modifies
> > .set_affinity() operation of irq-gic driver to fall back to any
> > possible
> > CPU if no online CPU can be found in requested CPU mask.
> >
> > This fixes broken Exynos4210 support since commit
> >
> > ee98d27df6 ARM: EXYNOS4: Divorce mct from local timer API
> >
> > caused by timer initialization code unable to set affinity for local
> > timer interrupts.
>
> Care to elaborate further? I don't see how the interrupt affinity is set
> for a CPU that isn't online because the mct code runs on the CPU that
> the affinity is being set to.
Well, please look at secondary_start_kernel() in arch/arm/kernel/smp.c [1].
You can see that notify_cpu_starting() (line 348) that fires the notifier
registered in MCT driver is called before set_cpu_online() (line 359) that
marks the CPU as online. Also notice that, originally, local timer
initialization was happening after set_cpu_online() - see line 365.
[1] - http://lxr.free-electrons.com/source/arch/arm/kernel/smp.c?a=arm#L312
Best regards,
Tomasz
WARNING: multiple messages have this Message-ID (diff)
From: t.figa@samsung.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] irqchip: gic: Allow setting affinity to offline CPUs
Date: Tue, 20 Aug 2013 18:41:54 +0200 [thread overview]
Message-ID: <3879851.vmCHJ3AcgQ@amdc1227> (raw)
In-Reply-To: <52139A5B.5040708@codeaurora.org>
On Tuesday 20 of August 2013 09:33:31 Stephen Boyd wrote:
> On 08/20/13 09:11, Tomasz Figa wrote:
> > Sometimes it is necessary to fix interrupt affinity to an offline CPU,
> > for example in initialization of local timers. This patch modifies
> > .set_affinity() operation of irq-gic driver to fall back to any
> > possible
> > CPU if no online CPU can be found in requested CPU mask.
> >
> > This fixes broken Exynos4210 support since commit
> >
> > ee98d27df6 ARM: EXYNOS4: Divorce mct from local timer API
> >
> > caused by timer initialization code unable to set affinity for local
> > timer interrupts.
>
> Care to elaborate further? I don't see how the interrupt affinity is set
> for a CPU that isn't online because the mct code runs on the CPU that
> the affinity is being set to.
Well, please look at secondary_start_kernel() in arch/arm/kernel/smp.c [1].
You can see that notify_cpu_starting() (line 348) that fires the notifier
registered in MCT driver is called before set_cpu_online() (line 359) that
marks the CPU as online. Also notice that, originally, local timer
initialization was happening after set_cpu_online() - see line 365.
[1] - http://lxr.free-electrons.com/source/arch/arm/kernel/smp.c?a=arm#L312
Best regards,
Tomasz
next prev parent reply other threads:[~2013-08-20 16:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-20 16:11 [PATCH] irqchip: gic: Allow setting affinity to offline CPUs Tomasz Figa
2013-08-20 16:11 ` Tomasz Figa
2013-08-20 16:33 ` Stephen Boyd
2013-08-20 16:33 ` Stephen Boyd
2013-08-20 16:41 ` Tomasz Figa [this message]
2013-08-20 16:41 ` Tomasz Figa
2013-08-20 16:48 ` Stephen Boyd
2013-08-20 16:48 ` Stephen Boyd
2013-08-20 16:57 ` Tomasz Figa
2013-08-20 16:57 ` Tomasz Figa
2013-08-20 21:14 ` Russell King - ARM Linux
2013-08-20 21:14 ` Russell King - ARM Linux
2013-08-20 22:11 ` Tomasz Figa
2013-08-20 22:11 ` Tomasz Figa
2013-08-20 22:39 ` Stephen Boyd
2013-08-20 22:39 ` Stephen Boyd
2013-08-21 12:23 ` Tomasz Figa
2013-08-21 12:23 ` Tomasz Figa
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=3879851.vmCHJ3AcgQ@amdc1227 \
--to=t.figa@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=sboyd@codeaurora.org \
--cc=tglx@linutronix.de \
/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.