* Re: [PATCH 2/6] irq_work: Implement remote queueing
[not found] ` <1402413309-3415-3-git-send-email-fweisbec@gmail.com>
@ 2014-06-24 20:33 ` Stephen Warren
2014-06-24 20:35 ` Stephen Warren
2014-06-25 5:12 ` Peter Zijlstra
0 siblings, 2 replies; 18+ messages in thread
From: Stephen Warren @ 2014-06-24 20:33 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: LKML, Andrew Morton, Eric Dumazet, Ingo Molnar, Kevin Hilman,
Paul E. McKenney, Peter Zijlstra, Thomas Gleixner, Viresh Kumar,
Srivatsa S. Bhat, linux-next@vger.kernel.org
On 06/10/2014 09:15 AM, Frederic Weisbecker wrote:
> irq work currently only supports local callbacks. However its code
> is mostly ready to run remote callbacks and we have some potential user.
>
> The full nohz subsystem currently open codes its own remote irq work
> on top of the scheduler ipi when it wants a CPU to reevaluate its next
> tick. However this ad hoc solution bloats the scheduler IPI.
>
> Lets just extend the irq work subsystem to support remote queuing on top
> of the generic SMP IPI to handle this kind of user. This shouldn't add
> noticeable overhead.
I'm running next-20140624 on an ARM system, and this patch causes CPU
hot(un)plug to Oops for me; the following fires:
void irq_work_run(void)
{
BUG_ON(!in_irq());
I found that Linus's master (8b8f5d971584 "Merge tag 'compress-3.16-rc3'
of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core")
works fine. I found that this commit inside the tip(?) tree works fine
(478850160636 "irq_work: Implement remote queueing"). However, if I
merge the two together, I hit that BUG_ON.
I think the issue is:
This commit adds a call from
generic_smp_call_function_single_interrupt() to irq_work_run().
Srivatsa's patch adds a call from hotplug_cfd() to
flush_smp_call_function_queue() to, which I imagine happens in
non-interrupt context. Note that this patch moves most of the body of
generic_smp_call_function_single_interrupt() into
flush_smp_call_function_queue().
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-24 20:33 ` [PATCH 2/6] irq_work: Implement remote queueing Stephen Warren
@ 2014-06-24 20:35 ` Stephen Warren
2014-06-25 5:12 ` Peter Zijlstra
1 sibling, 0 replies; 18+ messages in thread
From: Stephen Warren @ 2014-06-24 20:35 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: LKML, Andrew Morton, Eric Dumazet, Ingo Molnar, Kevin Hilman,
Paul E. McKenney, Peter Zijlstra, Thomas Gleixner, Viresh Kumar,
Srivatsa S. Bhat, linux-next@vger.kernel.org
On 06/24/2014 02:33 PM, Stephen Warren wrote:
> On 06/10/2014 09:15 AM, Frederic Weisbecker wrote:
>> irq work currently only supports local callbacks. However its code
>> is mostly ready to run remote callbacks and we have some potential user.
>>
>> The full nohz subsystem currently open codes its own remote irq work
>> on top of the scheduler ipi when it wants a CPU to reevaluate its next
>> tick. However this ad hoc solution bloats the scheduler IPI.
>>
>> Lets just extend the irq work subsystem to support remote queuing on top
>> of the generic SMP IPI to handle this kind of user. This shouldn't add
>> noticeable overhead.
>
> I'm running next-20140624 on an ARM system, and this patch causes CPU
> hot(un)plug to Oops for me; the following fires:
>
> void irq_work_run(void)
> {
> BUG_ON(!in_irq());
>
> I found that Linus's master (8b8f5d971584 "Merge tag 'compress-3.16-rc3'
> of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core")
> works fine. I found that this commit inside the tip(?) tree works fine
> (478850160636 "irq_work: Implement remote queueing"). However, if I
> merge the two together, I hit that BUG_ON.
I forgot to mention that the conflicting commit from Linus' tree is
8d056c48e486 "CPU hotplug, smp: flush any pending IPI callbacks before
CPU offline".
> I think the issue is:
>
> This commit adds a call from
> generic_smp_call_function_single_interrupt() to irq_work_run().
>
> Srivatsa's patch adds a call from hotplug_cfd() to
> flush_smp_call_function_queue() to, which I imagine happens in
> non-interrupt context. Note that this patch moves most of the body of
> generic_smp_call_function_single_interrupt() into
> flush_smp_call_function_queue().
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-24 20:33 ` [PATCH 2/6] irq_work: Implement remote queueing Stephen Warren
2014-06-24 20:35 ` Stephen Warren
@ 2014-06-25 5:12 ` Peter Zijlstra
2014-06-25 5:17 ` Peter Zijlstra
1 sibling, 1 reply; 18+ messages in thread
From: Peter Zijlstra @ 2014-06-25 5:12 UTC (permalink / raw)
To: Stephen Warren
Cc: Frederic Weisbecker, LKML, Andrew Morton, Eric Dumazet,
Ingo Molnar, Kevin Hilman, Paul E. McKenney, Thomas Gleixner,
Viresh Kumar, Srivatsa S. Bhat, linux-next@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 1695 bytes --]
On Tue, Jun 24, 2014 at 02:33:41PM -0600, Stephen Warren wrote:
> On 06/10/2014 09:15 AM, Frederic Weisbecker wrote:
> > irq work currently only supports local callbacks. However its code
> > is mostly ready to run remote callbacks and we have some potential user.
> >
> > The full nohz subsystem currently open codes its own remote irq work
> > on top of the scheduler ipi when it wants a CPU to reevaluate its next
> > tick. However this ad hoc solution bloats the scheduler IPI.
> >
> > Lets just extend the irq work subsystem to support remote queuing on top
> > of the generic SMP IPI to handle this kind of user. This shouldn't add
> > noticeable overhead.
>
> I'm running next-20140624 on an ARM system, and this patch causes CPU
> hot(un)plug to Oops for me; the following fires:
>
> void irq_work_run(void)
> {
> BUG_ON(!in_irq());
>
> I found that Linus's master (8b8f5d971584 "Merge tag 'compress-3.16-rc3'
> of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core")
> works fine. I found that this commit inside the tip(?) tree works fine
> (478850160636 "irq_work: Implement remote queueing"). However, if I
> merge the two together, I hit that BUG_ON.
>
> I think the issue is:
>
> This commit adds a call from
> generic_smp_call_function_single_interrupt() to irq_work_run().
>
> Srivatsa's patch adds a call from hotplug_cfd() to
> flush_smp_call_function_queue() to, which I imagine happens in
> non-interrupt context. Note that this patch moves most of the body of
> generic_smp_call_function_single_interrupt() into
> flush_smp_call_function_queue().
Right you are.. I think I'll just remove the BUG_ON(), Frederic?
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 5:12 ` Peter Zijlstra
@ 2014-06-25 5:17 ` Peter Zijlstra
2014-06-25 6:37 ` Srivatsa S. Bhat
0 siblings, 1 reply; 18+ messages in thread
From: Peter Zijlstra @ 2014-06-25 5:17 UTC (permalink / raw)
To: Stephen Warren
Cc: Frederic Weisbecker, LKML, Andrew Morton, Eric Dumazet,
Ingo Molnar, Kevin Hilman, Paul E. McKenney, Thomas Gleixner,
Viresh Kumar, Srivatsa S. Bhat, linux-next@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 2720 bytes --]
On Wed, Jun 25, 2014 at 07:12:34AM +0200, Peter Zijlstra wrote:
> On Tue, Jun 24, 2014 at 02:33:41PM -0600, Stephen Warren wrote:
> > On 06/10/2014 09:15 AM, Frederic Weisbecker wrote:
> > > irq work currently only supports local callbacks. However its code
> > > is mostly ready to run remote callbacks and we have some potential user.
> > >
> > > The full nohz subsystem currently open codes its own remote irq work
> > > on top of the scheduler ipi when it wants a CPU to reevaluate its next
> > > tick. However this ad hoc solution bloats the scheduler IPI.
> > >
> > > Lets just extend the irq work subsystem to support remote queuing on top
> > > of the generic SMP IPI to handle this kind of user. This shouldn't add
> > > noticeable overhead.
> >
> > I'm running next-20140624 on an ARM system, and this patch causes CPU
> > hot(un)plug to Oops for me; the following fires:
> >
> > void irq_work_run(void)
> > {
> > BUG_ON(!in_irq());
> >
> > I found that Linus's master (8b8f5d971584 "Merge tag 'compress-3.16-rc3'
> > of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core")
> > works fine. I found that this commit inside the tip(?) tree works fine
> > (478850160636 "irq_work: Implement remote queueing"). However, if I
> > merge the two together, I hit that BUG_ON.
> >
> > I think the issue is:
> >
> > This commit adds a call from
> > generic_smp_call_function_single_interrupt() to irq_work_run().
> >
> > Srivatsa's patch adds a call from hotplug_cfd() to
> > flush_smp_call_function_queue() to, which I imagine happens in
> > non-interrupt context. Note that this patch moves most of the body of
> > generic_smp_call_function_single_interrupt() into
> > flush_smp_call_function_queue().
>
> Right you are.. I think I'll just remove the BUG_ON(), Frederic?
Something a little so like:
---
Subject: irq_work: Remove BUG_ON in irq_work_run_list()
From: Peter Zijlstra <peterz@infradead.org>
Date: Wed Jun 25 07:13:07 CEST 2014
Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
pending IPI callbacks before CPU offline"), which ends up calling
hotplug_cfd()->flush_smp_call_function_queue()->run_irq_work(), which
is not from IRQ context.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Reported-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
---
kernel/irq_work.c | 2 --
1 file changed, 2 deletions(-)
--- a/kernel/irq_work.c
+++ b/kernel/irq_work.c
@@ -130,8 +130,6 @@ static void irq_work_run_list(struct lli
struct irq_work *work;
struct llist_node *llnode;
- BUG_ON(!irqs_disabled());
-
if (llist_empty(list))
return;
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 5:17 ` Peter Zijlstra
@ 2014-06-25 6:37 ` Srivatsa S. Bhat
2014-06-25 9:36 ` Peter Zijlstra
0 siblings, 1 reply; 18+ messages in thread
From: Srivatsa S. Bhat @ 2014-06-25 6:37 UTC (permalink / raw)
To: Peter Zijlstra, Stephen Warren
Cc: Frederic Weisbecker, LKML, Andrew Morton, Eric Dumazet,
Ingo Molnar, Kevin Hilman, Paul E. McKenney, Thomas Gleixner,
Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 10:47 AM, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 07:12:34AM +0200, Peter Zijlstra wrote:
>> On Tue, Jun 24, 2014 at 02:33:41PM -0600, Stephen Warren wrote:
>>> On 06/10/2014 09:15 AM, Frederic Weisbecker wrote:
>>>> irq work currently only supports local callbacks. However its code
>>>> is mostly ready to run remote callbacks and we have some potential user.
[...]
>> Right you are.. I think I'll just remove the BUG_ON(), Frederic?
>
> Something a little so like:
>
> ---
> Subject: irq_work: Remove BUG_ON in irq_work_run_list()
I think this should be irq_work_run(), see below...
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed Jun 25 07:13:07 CEST 2014
>
> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
> pending IPI callbacks before CPU offline"), which ends up calling
> hotplug_cfd()->flush_smp_call_function_queue()->run_irq_work(), which
s/run_irq_work/irq_work_run
> is not from IRQ context.
>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Reported-by: Stephen Warren <swarren@wwwdotorg.org>
> Signed-off-by: Peter Zijlstra <peterz@infradead.org>
> ---
> kernel/irq_work.c | 2 --
> 1 file changed, 2 deletions(-)
>
> --- a/kernel/irq_work.c
> +++ b/kernel/irq_work.c
> @@ -130,8 +130,6 @@ static void irq_work_run_list(struct lli
> struct irq_work *work;
> struct llist_node *llnode;
>
> - BUG_ON(!irqs_disabled());
> -
I don't think irqs_disabled() is the problematic condition, since
hotplug_cfg() invokes irq_work_run() from CPU_DYING context (which has
irqs disabled). I guess you meant to remove the in_irq() check inside
irq_work_run() instead?
Regards,
Srivatsa S. Bhat
> if (llist_empty(list))
> return;
>
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 6:37 ` Srivatsa S. Bhat
@ 2014-06-25 9:36 ` Peter Zijlstra
2014-06-25 9:39 ` Peter Zijlstra
0 siblings, 1 reply; 18+ messages in thread
From: Peter Zijlstra @ 2014-06-25 9:36 UTC (permalink / raw)
To: Srivatsa S. Bhat
Cc: Stephen Warren, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 12:07:05PM +0530, Srivatsa S. Bhat wrote:
> I don't think irqs_disabled() is the problematic condition, since
> hotplug_cfg() invokes irq_work_run() from CPU_DYING context (which has
> irqs disabled). I guess you meant to remove the in_irq() check inside
> irq_work_run() instead?
Yes, clearly I should not get up at 6am.. :-) Let me go do a new one.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 9:36 ` Peter Zijlstra
@ 2014-06-25 9:39 ` Peter Zijlstra
2014-06-25 9:50 ` Srivatsa S. Bhat
0 siblings, 1 reply; 18+ messages in thread
From: Peter Zijlstra @ 2014-06-25 9:39 UTC (permalink / raw)
To: Srivatsa S. Bhat
Cc: Stephen Warren, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 11:36:57AM +0200, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 12:07:05PM +0530, Srivatsa S. Bhat wrote:
> > I don't think irqs_disabled() is the problematic condition, since
> > hotplug_cfg() invokes irq_work_run() from CPU_DYING context (which has
> > irqs disabled). I guess you meant to remove the in_irq() check inside
> > irq_work_run() instead?
>
> Yes, clearly I should not get up at 6am.. :-) Let me go do a new one.
---
Subject: irq_work: Remove BUG_ON in irq_work_run()
From: Peter Zijlstra <peterz@infradead.org>
Date: Wed Jun 25 07:13:07 CEST 2014
Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
pending IPI callbacks before CPU offline"), which ends up calling
hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
is not from IRQ context.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Reported-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-busatzs2gvz4v62258agipuf@git.kernel.org
---
kernel/irq_work.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
Index: linux-2.6/kernel/irq_work.c
===================================================================
--- linux-2.6.orig/kernel/irq_work.c
+++ linux-2.6/kernel/irq_work.c
@@ -160,21 +160,11 @@ static void irq_work_run_list(struct lli
}
}
-static void __irq_work_run(void)
+static void irq_work_run(void)
{
irq_work_run_list(&__get_cpu_var(raised_list));
irq_work_run_list(&__get_cpu_var(lazy_list));
}
-
-/*
- * Run the irq_work entries on this cpu. Requires to be ran from hardirq
- * context with local IRQs disabled.
- */
-void irq_work_run(void)
-{
- BUG_ON(!in_irq());
- __irq_work_run();
-}
EXPORT_SYMBOL_GPL(irq_work_run);
/*
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 9:39 ` Peter Zijlstra
@ 2014-06-25 9:50 ` Srivatsa S. Bhat
2014-06-25 9:54 ` Srivatsa S. Bhat
0 siblings, 1 reply; 18+ messages in thread
From: Srivatsa S. Bhat @ 2014-06-25 9:50 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Stephen Warren, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 03:09 PM, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 11:36:57AM +0200, Peter Zijlstra wrote:
>> On Wed, Jun 25, 2014 at 12:07:05PM +0530, Srivatsa S. Bhat wrote:
>>> I don't think irqs_disabled() is the problematic condition, since
>>> hotplug_cfg() invokes irq_work_run() from CPU_DYING context (which has
>>> irqs disabled). I guess you meant to remove the in_irq() check inside
>>> irq_work_run() instead?
>>
>> Yes, clearly I should not get up at 6am.. :-) Let me go do a new one.
>
> ---
> Subject: irq_work: Remove BUG_ON in irq_work_run()
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed Jun 25 07:13:07 CEST 2014
>
> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
> pending IPI callbacks before CPU offline"), which ends up calling
> hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
> is not from IRQ context.
>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Reported-by: Stephen Warren <swarren@wwwdotorg.org>
> Signed-off-by: Peter Zijlstra <peterz@infradead.org>
> Link: http://lkml.kernel.org/n/tip-busatzs2gvz4v62258agipuf@git.kernel.org
> ---
> kernel/irq_work.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
> Index: linux-2.6/kernel/irq_work.c
> ===================================================================
> --- linux-2.6.orig/kernel/irq_work.c
> +++ linux-2.6/kernel/irq_work.c
> @@ -160,21 +160,11 @@ static void irq_work_run_list(struct lli
> }
> }
>
> -static void __irq_work_run(void)
Hmm, irq_work_cpu_notify() calls __irq_work_run() in the CPU_DYING
phase, to by-pass BUG_ON(!in_irq()). How about doing the same thing
from hotplug_cfd() as well?
> +static void irq_work_run(void)
> {
> irq_work_run_list(&__get_cpu_var(raised_list));
> irq_work_run_list(&__get_cpu_var(lazy_list));
> }
> -
> -/*
> - * Run the irq_work entries on this cpu. Requires to be ran from hardirq
> - * context with local IRQs disabled.
> - */
> -void irq_work_run(void)
> -{
> - BUG_ON(!in_irq());
> - __irq_work_run();
> -}
> EXPORT_SYMBOL_GPL(irq_work_run);
>
> /*
>
Regards,
Srivatsa S. Bhat
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 9:50 ` Srivatsa S. Bhat
@ 2014-06-25 9:54 ` Srivatsa S. Bhat
2014-06-25 10:19 ` Peter Zijlstra
0 siblings, 1 reply; 18+ messages in thread
From: Srivatsa S. Bhat @ 2014-06-25 9:54 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Stephen Warren, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 03:20 PM, Srivatsa S. Bhat wrote:
> On 06/25/2014 03:09 PM, Peter Zijlstra wrote:
>> On Wed, Jun 25, 2014 at 11:36:57AM +0200, Peter Zijlstra wrote:
>>> On Wed, Jun 25, 2014 at 12:07:05PM +0530, Srivatsa S. Bhat wrote:
>>>> I don't think irqs_disabled() is the problematic condition, since
>>>> hotplug_cfg() invokes irq_work_run() from CPU_DYING context (which has
>>>> irqs disabled). I guess you meant to remove the in_irq() check inside
>>>> irq_work_run() instead?
>>>
>>> Yes, clearly I should not get up at 6am.. :-) Let me go do a new one.
>>
>> ---
>> Subject: irq_work: Remove BUG_ON in irq_work_run()
>> From: Peter Zijlstra <peterz@infradead.org>
>> Date: Wed Jun 25 07:13:07 CEST 2014
>>
>> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
>> pending IPI callbacks before CPU offline"), which ends up calling
>> hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
>> is not from IRQ context.
>>
>> Cc: Frederic Weisbecker <fweisbec@gmail.com>
>> Reported-by: Stephen Warren <swarren@wwwdotorg.org>
>> Signed-off-by: Peter Zijlstra <peterz@infradead.org>
>> Link: http://lkml.kernel.org/n/tip-busatzs2gvz4v62258agipuf@git.kernel.org
>> ---
>> kernel/irq_work.c | 12 +-----------
>> 1 file changed, 1 insertion(+), 11 deletions(-)
>>
>> Index: linux-2.6/kernel/irq_work.c
>> ===================================================================
>> --- linux-2.6.orig/kernel/irq_work.c
>> +++ linux-2.6/kernel/irq_work.c
>> @@ -160,21 +160,11 @@ static void irq_work_run_list(struct lli
>> }
>> }
>>
>> -static void __irq_work_run(void)
>
> Hmm, irq_work_cpu_notify() calls __irq_work_run() in the CPU_DYING
> phase, to by-pass BUG_ON(!in_irq()). How about doing the same thing
> from hotplug_cfd() as well?
>
Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
irq_work_cpu_notify() altogether?
Regards,
Srivatsa S. Bhat
>> +static void irq_work_run(void)
>> {
>> irq_work_run_list(&__get_cpu_var(raised_list));
>> irq_work_run_list(&__get_cpu_var(lazy_list));
>> }
>> -
>> -/*
>> - * Run the irq_work entries on this cpu. Requires to be ran from hardirq
>> - * context with local IRQs disabled.
>> - */
>> -void irq_work_run(void)
>> -{
>> - BUG_ON(!in_irq());
>> - __irq_work_run();
>> -}
>> EXPORT_SYMBOL_GPL(irq_work_run);
>>
>> /*
>>
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 9:54 ` Srivatsa S. Bhat
@ 2014-06-25 10:19 ` Peter Zijlstra
2014-06-25 10:57 ` Srivatsa S. Bhat
2014-06-25 16:23 ` Stephen Warren
0 siblings, 2 replies; 18+ messages in thread
From: Peter Zijlstra @ 2014-06-25 10:19 UTC (permalink / raw)
To: Srivatsa S. Bhat
Cc: Stephen Warren, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
> irq_work_cpu_notify() altogether?
Just so...
getting up at 6am and sitting in an airport terminal doesn't seem to
agree with me; any more silly fail here?
---
Subject: irq_work: Remove BUG_ON in irq_work_run()
From: Peter Zijlstra <peterz@infradead.org>
Date: Wed Jun 25 07:13:07 CEST 2014
Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
pending IPI callbacks before CPU offline"), which ends up calling
hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
is not from IRQ context.
And since that already calls irq_work_run() from the hotplug path,
remove our entire hotplug handling.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Reported-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-busatzs2gvz4v62258agipuf@git.kernel.org
---
kernel/irq_work.c | 48 +++++-------------------------------------------
1 file changed, 5 insertions(+), 43 deletions(-)
Index: linux-2.6/kernel/irq_work.c
===================================================================
--- linux-2.6.orig/kernel/irq_work.c
+++ linux-2.6/kernel/irq_work.c
@@ -160,20 +160,14 @@ static void irq_work_run_list(struct lli
}
}
-static void __irq_work_run(void)
-{
- irq_work_run_list(&__get_cpu_var(raised_list));
- irq_work_run_list(&__get_cpu_var(lazy_list));
-}
-
/*
- * Run the irq_work entries on this cpu. Requires to be ran from hardirq
- * context with local IRQs disabled.
+ * hotplug calls this through:
+ * hotplug_cfs() -> flush_smp_call_function_queue()
*/
-void irq_work_run(void)
+static void irq_work_run(void)
{
- BUG_ON(!in_irq());
- __irq_work_run();
+ irq_work_run_list(&__get_cpu_var(raised_list));
+ irq_work_run_list(&__get_cpu_var(lazy_list));
}
EXPORT_SYMBOL_GPL(irq_work_run);
@@ -189,35 +183,3 @@ void irq_work_sync(struct irq_work *work
cpu_relax();
}
EXPORT_SYMBOL_GPL(irq_work_sync);
-
-#ifdef CONFIG_HOTPLUG_CPU
-static int irq_work_cpu_notify(struct notifier_block *self,
- unsigned long action, void *hcpu)
-{
- long cpu = (long)hcpu;
-
- switch (action) {
- case CPU_DYING:
- /* Called from stop_machine */
- if (WARN_ON_ONCE(cpu != smp_processor_id()))
- break;
- __irq_work_run();
- break;
- default:
- break;
- }
- return NOTIFY_OK;
-}
-
-static struct notifier_block cpu_notify;
-
-static __init int irq_work_init_cpu_notifier(void)
-{
- cpu_notify.notifier_call = irq_work_cpu_notify;
- cpu_notify.priority = 0;
- register_cpu_notifier(&cpu_notify);
- return 0;
-}
-device_initcall(irq_work_init_cpu_notifier);
-
-#endif /* CONFIG_HOTPLUG_CPU */
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 10:19 ` Peter Zijlstra
@ 2014-06-25 10:57 ` Srivatsa S. Bhat
2014-06-25 16:23 ` Stephen Warren
1 sibling, 0 replies; 18+ messages in thread
From: Srivatsa S. Bhat @ 2014-06-25 10:57 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Stephen Warren, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 03:49 PM, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
>> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
>> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
>> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
>> irq_work_cpu_notify() altogether?
>
> Just so...
>
> getting up at 6am and sitting in an airport terminal doesn't seem to
> agree with me;
Haha :-)
> any more silly fail here?
>
A few minor nits below..
> ---
> Subject: irq_work: Remove BUG_ON in irq_work_run()
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed Jun 25 07:13:07 CEST 2014
>
> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
> pending IPI callbacks before CPU offline"), which ends up calling
> hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
> is not from IRQ context.
>
> And since that already calls irq_work_run() from the hotplug path,
> remove our entire hotplug handling.
>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Reported-by: Stephen Warren <swarren@wwwdotorg.org>
> Signed-off-by: Peter Zijlstra <peterz@infradead.org>
> Link: http://lkml.kernel.org/n/tip-busatzs2gvz4v62258agipuf@git.kernel.org
> ---
> kernel/irq_work.c | 48 +++++-------------------------------------------
> 1 file changed, 5 insertions(+), 43 deletions(-)
>
> Index: linux-2.6/kernel/irq_work.c
> ===================================================================
> --- linux-2.6.orig/kernel/irq_work.c
> +++ linux-2.6/kernel/irq_work.c
> @@ -160,20 +160,14 @@ static void irq_work_run_list(struct lli
> }
> }
>
> -static void __irq_work_run(void)
> -{
> - irq_work_run_list(&__get_cpu_var(raised_list));
> - irq_work_run_list(&__get_cpu_var(lazy_list));
> -}
> -
> /*
> - * Run the irq_work entries on this cpu. Requires to be ran from hardirq
> - * context with local IRQs disabled.
> + * hotplug calls this through:
> + * hotplug_cfs() -> flush_smp_call_function_queue()
s/hotplug_cfs/hotplug_cfd
> */
> -void irq_work_run(void)
> +static void irq_work_run(void)
s/static//
> {
> - BUG_ON(!in_irq());
> - __irq_work_run();
> + irq_work_run_list(&__get_cpu_var(raised_list));
> + irq_work_run_list(&__get_cpu_var(lazy_list));
> }
> EXPORT_SYMBOL_GPL(irq_work_run);
With those 2 changes, everything looks good to me.
Regards,
Srivatsa S. Bhat
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 10:19 ` Peter Zijlstra
2014-06-25 10:57 ` Srivatsa S. Bhat
@ 2014-06-25 16:23 ` Stephen Warren
2014-06-25 16:38 ` Peter Zijlstra
2014-07-01 19:13 ` Stephen Warren
1 sibling, 2 replies; 18+ messages in thread
From: Stephen Warren @ 2014-06-25 16:23 UTC (permalink / raw)
To: Peter Zijlstra, Srivatsa S. Bhat
Cc: Frederic Weisbecker, LKML, Andrew Morton, Eric Dumazet,
Ingo Molnar, Kevin Hilman, Paul E. McKenney, Thomas Gleixner,
Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 04:19 AM, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
>> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
>> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
>> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
>> irq_work_cpu_notify() altogether?
>
> Just so...
>
> getting up at 6am and sitting in an airport terminal doesn't seem to
> agree with me; any more silly fail here?
>
> ---
> Subject: irq_work: Remove BUG_ON in irq_work_run()
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed Jun 25 07:13:07 CEST 2014
>
> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
> pending IPI callbacks before CPU offline"), which ends up calling
> hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
> is not from IRQ context.
>
> And since that already calls irq_work_run() from the hotplug path,
> remove our entire hotplug handling.
Tested-by: Stephen Warren <swarren@nvidia.com>
[with the s/static// already mentioned in this thread, obviously:-)]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 16:23 ` Stephen Warren
@ 2014-06-25 16:38 ` Peter Zijlstra
2014-06-25 16:57 ` Srivatsa S. Bhat
` (2 more replies)
2014-07-01 19:13 ` Stephen Warren
1 sibling, 3 replies; 18+ messages in thread
From: Peter Zijlstra @ 2014-06-25 16:38 UTC (permalink / raw)
To: Stephen Warren
Cc: Srivatsa S. Bhat, Frederic Weisbecker, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 10:23:21AM -0600, Stephen Warren wrote:
> On 06/25/2014 04:19 AM, Peter Zijlstra wrote:
> > On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
> >> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
> >> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
> >> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
> >> irq_work_cpu_notify() altogether?
> >
> > Just so...
> >
> > getting up at 6am and sitting in an airport terminal doesn't seem to
> > agree with me; any more silly fail here?
> >
> > ---
> > Subject: irq_work: Remove BUG_ON in irq_work_run()
> > From: Peter Zijlstra <peterz@infradead.org>
> > Date: Wed Jun 25 07:13:07 CEST 2014
> >
> > Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
> > pending IPI callbacks before CPU offline"), which ends up calling
> > hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
> > is not from IRQ context.
> >
> > And since that already calls irq_work_run() from the hotplug path,
> > remove our entire hotplug handling.
>
> Tested-by: Stephen Warren <swarren@nvidia.com>
>
> [with the s/static// already mentioned in this thread, obviously:-)]
Right; I pushed out a fixed version right before loosing my tubes at the
airport :-)
https://git.kernel.org/cgit/linux/kernel/git/peterz/queue.git/commit/?h=timers/nohz&id=921d8b81281ecdca686369f52165d04fa3505bd7
I've not gotten wu build bot spam on it so it must be good ;-)
In any case, I'll add your tested-by and update later this evening.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 16:38 ` Peter Zijlstra
@ 2014-06-25 16:57 ` Srivatsa S. Bhat
2014-06-28 18:19 ` Borislav Petkov
2014-07-03 14:52 ` Frederic Weisbecker
2014-07-04 5:10 ` Sachin Kamat
2 siblings, 1 reply; 18+ messages in thread
From: Srivatsa S. Bhat @ 2014-06-25 16:57 UTC (permalink / raw)
To: Peter Zijlstra, Stephen Warren
Cc: Frederic Weisbecker, LKML, Andrew Morton, Eric Dumazet,
Ingo Molnar, Kevin Hilman, Paul E. McKenney, Thomas Gleixner,
Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 10:08 PM, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 10:23:21AM -0600, Stephen Warren wrote:
>> On 06/25/2014 04:19 AM, Peter Zijlstra wrote:
>>> On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
>>>> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
>>>> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
>>>> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
>>>> irq_work_cpu_notify() altogether?
>>>
>>> Just so...
>>>
>>> getting up at 6am and sitting in an airport terminal doesn't seem to
>>> agree with me; any more silly fail here?
>>>
>>> ---
>>> Subject: irq_work: Remove BUG_ON in irq_work_run()
>>> From: Peter Zijlstra <peterz@infradead.org>
>>> Date: Wed Jun 25 07:13:07 CEST 2014
>>>
>>> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
>>> pending IPI callbacks before CPU offline"), which ends up calling
>>> hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
>>> is not from IRQ context.
>>>
>>> And since that already calls irq_work_run() from the hotplug path,
>>> remove our entire hotplug handling.
>>
>> Tested-by: Stephen Warren <swarren@nvidia.com>
>>
>> [with the s/static// already mentioned in this thread, obviously:-)]
>
> Right; I pushed out a fixed version right before loosing my tubes at the
> airport :-)
>
> https://git.kernel.org/cgit/linux/kernel/git/peterz/queue.git/commit/?h=timers/nohz&id=921d8b81281ecdca686369f52165d04fa3505bd7
>
This version looks good.
Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Regards,
Srivatsa S. Bhat
> I've not gotten wu build bot spam on it so it must be good ;-)
>
> In any case, I'll add your tested-by and update later this evening.
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 16:57 ` Srivatsa S. Bhat
@ 2014-06-28 18:19 ` Borislav Petkov
0 siblings, 0 replies; 18+ messages in thread
From: Borislav Petkov @ 2014-06-28 18:19 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Srivatsa S. Bhat, Stephen Warren, Frederic Weisbecker, LKML,
Andrew Morton, Eric Dumazet, Ingo Molnar, Kevin Hilman,
Paul E. McKenney, Thomas Gleixner, Viresh Kumar,
linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 10:27:24PM +0530, Srivatsa S. Bhat wrote:
> > https://git.kernel.org/cgit/linux/kernel/git/peterz/queue.git/commit/?h=timers/nohz&id=921d8b81281ecdca686369f52165d04fa3505bd7
Just hit it here too. Cherry-picking it ontop of latest tip fixes the
issue, thanks.
Tested-by: Borislav Petkov <bp@suse.de>
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 16:23 ` Stephen Warren
2014-06-25 16:38 ` Peter Zijlstra
@ 2014-07-01 19:13 ` Stephen Warren
1 sibling, 0 replies; 18+ messages in thread
From: Stephen Warren @ 2014-07-01 19:13 UTC (permalink / raw)
To: Peter Zijlstra, Srivatsa S. Bhat
Cc: Frederic Weisbecker, LKML, Andrew Morton, Eric Dumazet,
Ingo Molnar, Kevin Hilman, Paul E. McKenney, Thomas Gleixner,
Viresh Kumar, linux-next@vger.kernel.org
On 06/25/2014 10:23 AM, Stephen Warren wrote:
> On 06/25/2014 04:19 AM, Peter Zijlstra wrote:
>> On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
>>> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
>>> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
>>> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
>>> irq_work_cpu_notify() altogether?
>>
>> Just so...
>>
>> getting up at 6am and sitting in an airport terminal doesn't seem to
>> agree with me; any more silly fail here?
>>
>> ---
>> Subject: irq_work: Remove BUG_ON in irq_work_run()
>> From: Peter Zijlstra <peterz@infradead.org>
>> Date: Wed Jun 25 07:13:07 CEST 2014
>>
>> Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
>> pending IPI callbacks before CPU offline"), which ends up calling
>> hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
>> is not from IRQ context.
>>
>> And since that already calls irq_work_run() from the hotplug path,
>> remove our entire hotplug handling.
>
> Tested-by: Stephen Warren <swarren@nvidia.com>
>
> [with the s/static// already mentioned in this thread, obviously:-)]
next-20140701 still seems to fail CPU hotplug. I assume this patch
hasn't yet been applied for some reason?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 16:38 ` Peter Zijlstra
2014-06-25 16:57 ` Srivatsa S. Bhat
@ 2014-07-03 14:52 ` Frederic Weisbecker
2014-07-04 5:10 ` Sachin Kamat
2 siblings, 0 replies; 18+ messages in thread
From: Frederic Weisbecker @ 2014-07-03 14:52 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Stephen Warren, Srivatsa S. Bhat, LKML, Andrew Morton,
Eric Dumazet, Ingo Molnar, Kevin Hilman, Paul E. McKenney,
Thomas Gleixner, Viresh Kumar, linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 06:38:20PM +0200, Peter Zijlstra wrote:
> On Wed, Jun 25, 2014 at 10:23:21AM -0600, Stephen Warren wrote:
> > On 06/25/2014 04:19 AM, Peter Zijlstra wrote:
> > > On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
> > >> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
> > >> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
> > >> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
> > >> irq_work_cpu_notify() altogether?
> > >
> > > Just so...
> > >
> > > getting up at 6am and sitting in an airport terminal doesn't seem to
> > > agree with me; any more silly fail here?
> > >
> > > ---
> > > Subject: irq_work: Remove BUG_ON in irq_work_run()
> > > From: Peter Zijlstra <peterz@infradead.org>
> > > Date: Wed Jun 25 07:13:07 CEST 2014
> > >
> > > Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
> > > pending IPI callbacks before CPU offline"), which ends up calling
> > > hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
> > > is not from IRQ context.
> > >
> > > And since that already calls irq_work_run() from the hotplug path,
> > > remove our entire hotplug handling.
> >
> > Tested-by: Stephen Warren <swarren@nvidia.com>
> >
> > [with the s/static// already mentioned in this thread, obviously:-)]
>
> Right; I pushed out a fixed version right before loosing my tubes at the
> airport :-)
>
> https://git.kernel.org/cgit/linux/kernel/git/peterz/queue.git/commit/?h=timers/nohz&id=921d8b81281ecdca686369f52165d04fa3505bd7
>
> I've not gotten wu build bot spam on it so it must be good ;-)
>
> In any case, I'll add your tested-by and update later this evening.
Ack! Thanks for fixing this.
In case you're AFK, do you need any help for pushing the patch or so?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] irq_work: Implement remote queueing
2014-06-25 16:38 ` Peter Zijlstra
2014-06-25 16:57 ` Srivatsa S. Bhat
2014-07-03 14:52 ` Frederic Weisbecker
@ 2014-07-04 5:10 ` Sachin Kamat
2 siblings, 0 replies; 18+ messages in thread
From: Sachin Kamat @ 2014-07-04 5:10 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Stephen Warren, Srivatsa S. Bhat, Frederic Weisbecker, LKML,
Andrew Morton, Eric Dumazet, Ingo Molnar, Kevin Hilman,
Paul E. McKenney, Thomas Gleixner, Viresh Kumar,
linux-next@vger.kernel.org
On Wed, Jun 25, 2014 at 10:08 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Wed, Jun 25, 2014 at 10:23:21AM -0600, Stephen Warren wrote:
>> On 06/25/2014 04:19 AM, Peter Zijlstra wrote:
>> > On Wed, Jun 25, 2014 at 03:24:11PM +0530, Srivatsa S. Bhat wrote:
>> >> Wait, that was a stupid idea. hotplug_cfd() already invokes irq_work_run
>> >> indirectly via flush_smp_call_function_queue(). So irq_work_cpu_notify()
>> >> doesn't need to invoke it again, AFAIU. So perhaps we can get rid of
>> >> irq_work_cpu_notify() altogether?
>> >
>> > Just so...
>> >
>> > getting up at 6am and sitting in an airport terminal doesn't seem to
>> > agree with me; any more silly fail here?
>> >
>> > ---
>> > Subject: irq_work: Remove BUG_ON in irq_work_run()
>> > From: Peter Zijlstra <peterz@infradead.org>
>> > Date: Wed Jun 25 07:13:07 CEST 2014
>> >
>> > Because of a collision with 8d056c48e486 ("CPU hotplug, smp: flush any
>> > pending IPI callbacks before CPU offline"), which ends up calling
>> > hotplug_cfd()->flush_smp_call_function_queue()->irq_work_run(), which
>> > is not from IRQ context.
>> >
>> > And since that already calls irq_work_run() from the hotplug path,
>> > remove our entire hotplug handling.
>>
>> Tested-by: Stephen Warren <swarren@nvidia.com>
>>
>> [with the s/static// already mentioned in this thread, obviously:-)]
>
> Right; I pushed out a fixed version right before loosing my tubes at the
> airport :-)
>
> https://git.kernel.org/cgit/linux/kernel/git/peterz/queue.git/commit/?h=timers/nohz&id=921d8b81281ecdca686369f52165d04fa3505bd7
This patch fixes boot issue on Exynos5420/5800 based boards with bL
switcher enabled.
FWIW,
Tested-by: Sachin Kamat <sachin.kamat@samsung.com>
--
Regards,
Sachin.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2014-07-04 5:10 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1402413309-3415-1-git-send-email-fweisbec@gmail.com>
[not found] ` <1402413309-3415-3-git-send-email-fweisbec@gmail.com>
2014-06-24 20:33 ` [PATCH 2/6] irq_work: Implement remote queueing Stephen Warren
2014-06-24 20:35 ` Stephen Warren
2014-06-25 5:12 ` Peter Zijlstra
2014-06-25 5:17 ` Peter Zijlstra
2014-06-25 6:37 ` Srivatsa S. Bhat
2014-06-25 9:36 ` Peter Zijlstra
2014-06-25 9:39 ` Peter Zijlstra
2014-06-25 9:50 ` Srivatsa S. Bhat
2014-06-25 9:54 ` Srivatsa S. Bhat
2014-06-25 10:19 ` Peter Zijlstra
2014-06-25 10:57 ` Srivatsa S. Bhat
2014-06-25 16:23 ` Stephen Warren
2014-06-25 16:38 ` Peter Zijlstra
2014-06-25 16:57 ` Srivatsa S. Bhat
2014-06-28 18:19 ` Borislav Petkov
2014-07-03 14:52 ` Frederic Weisbecker
2014-07-04 5:10 ` Sachin Kamat
2014-07-01 19:13 ` Stephen Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).