All of lore.kernel.org
 help / color / mirror / Atom feed
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:57:17 +0200	[thread overview]
Message-ID: <3020706.rrCKqOb5n3@amdc1227> (raw)
In-Reply-To: <52139DD9.3020004@codeaurora.org>

On Tuesday 20 of August 2013 09:48:25 Stephen Boyd wrote:
> On 08/20/13 09:41, Tomasz Figa wrote:
> > 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.
> Great, thank you. Please put this information in the commit text next
> time.

Right, I could have added a sentence or two about this.

> I wonder if we shouldn't make the cpumask_any_and() work on the present
> mask instead? If we ever support physical hotplug on ARM I think we
> wouldn't want to allow interrupts to go to CPUs that aren't even present
> (but still possible).

Yes, cpu_present_mask might be better indeed.

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:57:17 +0200	[thread overview]
Message-ID: <3020706.rrCKqOb5n3@amdc1227> (raw)
In-Reply-To: <52139DD9.3020004@codeaurora.org>

On Tuesday 20 of August 2013 09:48:25 Stephen Boyd wrote:
> On 08/20/13 09:41, Tomasz Figa wrote:
> > 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.
> Great, thank you. Please put this information in the commit text next
> time.

Right, I could have added a sentence or two about this.

> I wonder if we shouldn't make the cpumask_any_and() work on the present
> mask instead? If we ever support physical hotplug on ARM I think we
> wouldn't want to allow interrupts to go to CPUs that aren't even present
> (but still possible).

Yes, cpu_present_mask might be better indeed.

Best regards,
Tomasz

  reply	other threads:[~2013-08-20 16:57 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
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 [this message]
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=3020706.rrCKqOb5n3@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.