From: daniel.thompson@linaro.org (Daniel Thompson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3.18-rc3 v9 1/5] irqchip: gic: Finer grain locking for gic_raise_softirq
Date: Tue, 25 Nov 2014 21:10:54 +0000 [thread overview]
Message-ID: <5474F05E.90401@linaro.org> (raw)
In-Reply-To: <alpine.LFD.2.11.1411251510231.11690@knanqh.ubzr>
On 25/11/14 20:17, Nicolas Pitre wrote:
> On Tue, 25 Nov 2014, Marc Zyngier wrote:
>
>> Hi Daniel,
>>
>> On 25/11/14 17:26, Daniel Thompson wrote:
>>> irq_controller_lock is used for multiple purposes within the gic driver.
>>> Primarily it is used to make register read-modify-write sequences atomic.
>>> It is also used by gic_raise_softirq() in order that the big.LITTLE
>>> migration logic can figure out when it is safe to migrate interrupts
>>> between physical cores.
>>>
>>> The second usage of irq_controller_lock is difficult to discern when
>>> reviewing the code because the migration itself takes place outside
>>> the lock.
>>>
>>> This patch makes the second usage more explicit by splitting it out into
>>> a separate lock and providing better comments.
>>
>> While we're at it, how about an additional patch that would make this
>> lock disappear entirely when the big-little stuff is not compiled in,
>> which is likely to be the case on a lot of (dare I say most?) systems?
>> That will save expensive barriers that we definitely could do without.
>
> For the record, I reviewed and ACKed a patch doing exactly that a while
> ago:
>
> http://lkml.org/lkml/2014/8/13/486
Well remembered! That patch had a different motivation but is very
similar to mine... so much so I might steal bit of it.
I'll make sure I put Stephen on Cc: when I respin with the changes Marc
requested.
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Thompson <daniel.thompson@linaro.org>
To: Nicolas Pitre <nicolas.pitre@linaro.org>,
Marc Zyngier <marc.zyngier@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Jason Cooper <jason@lakedaemon.net>,
Russell King <linux@arm.linux.org.uk>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"patches@linaro.org" <patches@linaro.org>,
"linaro-kernel@lists.linaro.org" <linaro-kernel@lists.linaro.org>,
John Stultz <john.stultz@linaro.org>,
Sumit Semwal <sumit.semwal@linaro.org>,
Dirk Behme <dirk.behme@de.bosch.com>,
Daniel Drake <drake@endlessm.com>,
Dmitry Pervushin <dpervushin@gmail.com>,
Tim Sander <tim@krieglstein.org>
Subject: Re: [PATCH 3.18-rc3 v9 1/5] irqchip: gic: Finer grain locking for gic_raise_softirq
Date: Tue, 25 Nov 2014 21:10:54 +0000 [thread overview]
Message-ID: <5474F05E.90401@linaro.org> (raw)
In-Reply-To: <alpine.LFD.2.11.1411251510231.11690@knanqh.ubzr>
On 25/11/14 20:17, Nicolas Pitre wrote:
> On Tue, 25 Nov 2014, Marc Zyngier wrote:
>
>> Hi Daniel,
>>
>> On 25/11/14 17:26, Daniel Thompson wrote:
>>> irq_controller_lock is used for multiple purposes within the gic driver.
>>> Primarily it is used to make register read-modify-write sequences atomic.
>>> It is also used by gic_raise_softirq() in order that the big.LITTLE
>>> migration logic can figure out when it is safe to migrate interrupts
>>> between physical cores.
>>>
>>> The second usage of irq_controller_lock is difficult to discern when
>>> reviewing the code because the migration itself takes place outside
>>> the lock.
>>>
>>> This patch makes the second usage more explicit by splitting it out into
>>> a separate lock and providing better comments.
>>
>> While we're at it, how about an additional patch that would make this
>> lock disappear entirely when the big-little stuff is not compiled in,
>> which is likely to be the case on a lot of (dare I say most?) systems?
>> That will save expensive barriers that we definitely could do without.
>
> For the record, I reviewed and ACKed a patch doing exactly that a while
> ago:
>
> http://lkml.org/lkml/2014/8/13/486
Well remembered! That patch had a different motivation but is very
similar to mine... so much so I might steal bit of it.
I'll make sure I put Stephen on Cc: when I respin with the changes Marc
requested.
next prev parent reply other threads:[~2014-11-25 21:10 UTC|newest]
Thread overview: 206+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-05 10:27 [PATCH 3.18-rc3 v7 0/4] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-11-05 10:27 ` Daniel Thompson
2014-11-05 10:27 ` [PATCH 3.18-rc3 v7 1/4] irqchip: gic: Make gic_raise_softirq() FIQ-safe Daniel Thompson
2014-11-05 10:27 ` Daniel Thompson
2014-11-05 10:27 ` [PATCH 3.18-rc3 v7 2/4] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2014-11-05 10:27 ` Daniel Thompson
2014-11-05 10:27 ` [PATCH 3.18-rc3 v7 3/4] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-11-05 10:27 ` Daniel Thompson
2014-11-05 10:27 ` [PATCH 3.18-rc3 v7 4/4] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-11-05 10:27 ` Daniel Thompson
2014-11-14 12:35 ` [PATCH 3.18-rc3 v8 0/4] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-11-14 12:35 ` Daniel Thompson
2014-11-14 12:35 ` [PATCH 3.18-rc3 v8 1/4] irqchip: gic: Make gic_raise_softirq() FIQ-safe Daniel Thompson
2014-11-14 12:35 ` Daniel Thompson
2014-11-24 18:20 ` Thomas Gleixner
2014-11-24 18:20 ` Thomas Gleixner
2014-11-24 18:40 ` Daniel Thompson
2014-11-24 18:40 ` Daniel Thompson
2014-11-24 18:48 ` Thomas Gleixner
2014-11-24 18:48 ` Thomas Gleixner
2014-11-24 20:36 ` Daniel Thompson
2014-11-24 20:36 ` Daniel Thompson
2014-11-24 20:41 ` Thomas Gleixner
2014-11-24 20:41 ` Thomas Gleixner
2014-11-24 21:09 ` Daniel Thompson
2014-11-24 21:09 ` Daniel Thompson
2014-11-24 20:38 ` Thomas Gleixner
2014-11-24 20:38 ` Thomas Gleixner
2014-11-24 21:01 ` Daniel Thompson
2014-11-24 21:01 ` Daniel Thompson
2014-11-24 21:29 ` Thomas Gleixner
2014-11-24 21:29 ` Thomas Gleixner
2014-11-14 12:35 ` [PATCH 3.18-rc3 v8 2/4] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2014-11-14 12:35 ` Daniel Thompson
2014-11-14 12:35 ` [PATCH 3.18-rc3 v8 3/4] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-11-14 12:35 ` Daniel Thompson
2014-11-14 12:35 ` [PATCH 3.18-rc3 v8 4/4] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-11-14 12:35 ` Daniel Thompson
2014-11-24 17:09 ` [PATCH 3.18-rc3 v8 0/4] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-11-24 17:09 ` Daniel Thompson
2014-11-25 17:26 ` [PATCH 3.18-rc3 v9 0/5] " Daniel Thompson
2014-11-25 17:26 ` Daniel Thompson
2014-11-25 17:26 ` [PATCH 3.18-rc3 v9 1/5] irqchip: gic: Finer grain locking for gic_raise_softirq Daniel Thompson
2014-11-25 17:26 ` Daniel Thompson
2014-11-25 17:40 ` Marc Zyngier
2014-11-25 17:40 ` Marc Zyngier
2014-11-25 20:17 ` Nicolas Pitre
2014-11-25 20:17 ` Nicolas Pitre
2014-11-25 21:10 ` Daniel Thompson [this message]
2014-11-25 21:10 ` Daniel Thompson
2014-11-26 1:27 ` Stephen Boyd
2014-11-26 1:27 ` Stephen Boyd
2014-11-26 11:05 ` Daniel Thompson
2014-11-26 11:05 ` Daniel Thompson
2014-11-25 17:26 ` [PATCH 3.18-rc3 v9 2/5] irqchip: gic: Make gic_raise_softirq() FIQ-safe Daniel Thompson
2014-11-25 17:26 ` Daniel Thompson
2014-11-25 17:26 ` [PATCH 3.18-rc3 v9 3/5] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2014-11-25 17:26 ` Daniel Thompson
2014-11-26 15:09 ` Tim Sander
2014-11-26 15:09 ` Tim Sander
2014-11-26 15:48 ` Daniel Thompson
2014-11-26 15:48 ` Daniel Thompson
2014-11-26 16:58 ` Tim Sander
2014-11-26 16:58 ` Tim Sander
2014-11-25 17:26 ` [PATCH 3.18-rc3 v9 4/5] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-11-25 17:26 ` Daniel Thompson
2014-11-25 17:26 ` [PATCH 3.18-rc3 v9 5/5] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-11-25 17:26 ` Daniel Thompson
2014-11-26 12:46 ` Tim Sander
2014-11-26 12:46 ` Tim Sander
2014-11-26 13:12 ` Russell King - ARM Linux
2014-11-26 13:12 ` Russell King - ARM Linux
2014-11-26 16:17 ` Daniel Thompson
2014-11-26 16:17 ` Daniel Thompson
2014-11-28 9:10 ` Tim Sander
2014-11-28 9:10 ` Tim Sander
2014-11-28 10:08 ` Russell King - ARM Linux
2014-11-28 10:08 ` Russell King - ARM Linux
2014-12-01 10:32 ` Tim Sander
2014-12-01 10:32 ` Tim Sander
2014-12-01 10:38 ` Russell King - ARM Linux
2014-12-01 10:38 ` Russell King - ARM Linux
2014-12-01 13:54 ` Tim Sander
2014-12-01 13:54 ` Tim Sander
2014-12-01 14:13 ` Daniel Thompson
2014-12-01 14:13 ` Daniel Thompson
2014-12-03 13:41 ` Tim Sander
2014-12-03 13:41 ` Tim Sander
2014-12-03 14:53 ` Daniel Thompson
2014-12-03 14:53 ` Daniel Thompson
2014-12-01 15:02 ` Russell King - ARM Linux
2014-12-01 15:02 ` Russell King - ARM Linux
2014-12-05 16:00 ` Tim Sander
2014-12-05 16:00 ` Tim Sander
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 0/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 1/6] irqchip: gic: Finer grain locking for gic_raise_softirq Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 2/6] irqchip: gic: Optimize locking in gic_raise_softirq Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 3/6] irqchip: gic: Make gic_raise_softirq FIQ-safe Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 4/6] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-26 17:42 ` Jason Cooper
2014-11-26 17:42 ` Jason Cooper
2014-11-27 13:39 ` Daniel Thompson
2014-11-27 13:39 ` Daniel Thompson
2014-11-27 18:06 ` Jason Cooper
2014-11-27 18:06 ` Jason Cooper
2014-11-27 19:42 ` Daniel Thompson
2014-11-27 19:42 ` Daniel Thompson
2014-11-27 20:16 ` Daniel Thompson
2014-11-27 20:16 ` Daniel Thompson
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 5/6] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-26 16:23 ` [PATCH 3.18-rc4 v10 6/6] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-11-26 16:23 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 0/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 1/6] irqchip: gic: Finer grain locking for gic_raise_softirq Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 2/6] irqchip: gic: Optimize locking in gic_raise_softirq Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-27 21:37 ` Thomas Gleixner
2014-11-27 21:37 ` Thomas Gleixner
2014-11-28 10:14 ` Daniel Thompson
2014-11-28 10:14 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 3/6] irqchip: gic: Make gic_raise_softirq FIQ-safe Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-27 21:45 ` Thomas Gleixner
2014-11-27 21:45 ` Thomas Gleixner
2014-11-28 9:21 ` Daniel Thompson
2014-11-28 9:21 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 4/6] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 5/6] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-27 20:10 ` [PATCH 3.18-rc4 v11 6/6] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-11-27 20:10 ` Daniel Thompson
2014-11-28 16:16 ` [PATCH 3.18-rc4 v12 0/5] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-11-28 16:16 ` Daniel Thompson
2014-11-28 16:16 ` [PATCH 3.18-rc4 v12 1/5] irqchip: gic: Optimize locking in gic_raise_softirq Daniel Thompson
2014-11-28 16:16 ` Daniel Thompson
2014-11-28 16:16 ` [PATCH 3.18-rc4 v12 2/5] irqchip: gic: Make gic_raise_softirq FIQ-safe Daniel Thompson
2014-11-28 16:16 ` Daniel Thompson
2014-11-28 16:16 ` [PATCH 3.18-rc4 v12 3/5] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2014-11-28 16:16 ` Daniel Thompson
2014-11-28 16:16 ` [PATCH 3.18-rc4 v12 4/5] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-11-28 16:16 ` Daniel Thompson
2014-11-28 16:16 ` [PATCH 3.18-rc4 v12 5/5] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-11-28 16:16 ` Daniel Thompson
2014-12-08 16:00 ` [PATCH 3.18-rc4 v12 0/5] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-12-08 16:00 ` Daniel Thompson
2015-01-05 14:54 ` [PATCH 3.19-rc2 v13 " Daniel Thompson
2015-01-05 14:54 ` Daniel Thompson
2015-01-05 14:54 ` [PATCH 3.19-rc2 v13 1/5] irqchip: gic: Optimize locking in gic_raise_softirq Daniel Thompson
2015-01-05 14:54 ` Daniel Thompson
2015-01-05 14:54 ` [PATCH 3.19-rc2 v13 2/5] irqchip: gic: Make gic_raise_softirq FIQ-safe Daniel Thompson
2015-01-05 14:54 ` Daniel Thompson
2015-01-05 14:54 ` [PATCH 3.19-rc2 v13 3/5] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2015-01-05 14:54 ` Daniel Thompson
2015-01-05 14:54 ` [PATCH 3.19-rc2 v13 4/5] ARM: Add support for on-demand backtrace of other CPUs Daniel Thompson
2015-01-05 14:54 ` Daniel Thompson
2015-01-05 15:19 ` Steven Rostedt
2015-01-05 15:19 ` Steven Rostedt
2015-01-05 17:07 ` Daniel Thompson
2015-01-05 17:07 ` Daniel Thompson
2015-01-09 16:48 ` Russell King - ARM Linux
2015-01-09 16:48 ` Russell King - ARM Linux
2015-01-11 23:37 ` Steven Rostedt
2015-01-11 23:37 ` Steven Rostedt
2015-01-13 10:36 ` Daniel Thompson
2015-01-13 10:36 ` Daniel Thompson
2015-01-13 12:27 ` Steven Rostedt
2015-01-13 12:27 ` Steven Rostedt
2015-01-05 14:54 ` [PATCH 3.19-rc2 v13 5/5] ARM: Fix on-demand backtrace triggered by IRQ Daniel Thompson
2015-01-05 14:54 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 0/7] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 1/7] irqchip: gic: Optimize locking in gic_raise_softirq Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 2/7] irqchip: gic: Make gic_raise_softirq FIQ-safe Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 3/7] irqchip: gic: Introduce plumbing for IPI FIQ Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 4/7] printk: Simple implementation for NMI backtracing Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 5/7] x86/nmi: Use common printk functions Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 6/7] ARM: Add support for on-demand backtrace of other CPUs Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-13 10:26 ` [PATCH 3.19-rc2 v14 7/7] ARM: Fix on-demand backtrace triggered by IRQ Daniel Thompson
2015-01-13 10:26 ` Daniel Thompson
2015-01-20 10:25 ` [PATCH 3.19-rc2 v14 0/7] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2015-01-20 10:25 ` Daniel Thompson
2015-01-20 20:53 ` Stephen Boyd
2015-01-20 20:53 ` Stephen Boyd
2015-01-21 10:47 ` Daniel Thompson
2015-01-21 10:47 ` Daniel Thompson
2015-01-21 13:06 ` Steven Rostedt
2015-01-21 13:06 ` Steven Rostedt
2015-01-21 13:48 ` Daniel Thompson
2015-01-21 13:48 ` Daniel Thompson
2015-01-22 11:21 ` Daniel Thompson
2015-01-22 11:21 ` Daniel Thompson
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=5474F05E.90401@linaro.org \
--to=daniel.thompson@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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.