* [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq()
@ 2009-02-12 18:27 Frederic Weisbecker
2009-02-12 23:24 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 5+ messages in thread
From: Frederic Weisbecker @ 2009-02-12 18:27 UTC (permalink / raw)
To: Steven Rostedt; +Cc: linux-kernel
do_hardirq() has only one caller do_irqd() in a path where irq are already
disabled. So we don't need to save irqs while holding desc->lock
Replace spin_lock_irqsave by spin_lock.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
kernel/irq/manage.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index ed7c5e3..6e9baf8 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -905,7 +905,7 @@ static void do_hardirq(struct irq_desc *desc)
{
unsigned long flags;
- spin_lock_irqsave(&desc->lock, flags);
+ spin_lock(&desc->lock);
if (!(desc->status & IRQ_INPROGRESS))
goto out;
@@ -921,7 +921,7 @@ static void do_hardirq(struct irq_desc *desc)
else
thread_do_irq(desc);
out:
- spin_unlock_irqrestore(&desc->lock, flags);
+ spin_unlock(&desc->lock);
if (waitqueue_active(&desc->wait_for_handler))
wake_up(&desc->wait_for_handler);
--
1.6.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq()
2009-02-12 18:27 [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq() Frederic Weisbecker
@ 2009-02-12 23:24 ` Arnaldo Carvalho de Melo
2009-02-12 23:27 ` Frederic Weisbecker
0 siblings, 1 reply; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-02-12 23:24 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: Steven Rostedt, linux-kernel
Em Thu, Feb 12, 2009 at 07:27:08PM +0100, Frederic Weisbecker escreveu:
> do_hardirq() has only one caller do_irqd() in a path where irq are already
> disabled. So we don't need to save irqs while holding desc->lock
>
> Replace spin_lock_irqsave by spin_lock.
>
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> ---
> kernel/irq/manage.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
> index ed7c5e3..6e9baf8 100644
> --- a/kernel/irq/manage.c
> +++ b/kernel/irq/manage.c
> @@ -905,7 +905,7 @@ static void do_hardirq(struct irq_desc *desc)
> {
> unsigned long flags;
Can flags be removed too?
> - spin_lock_irqsave(&desc->lock, flags);
> + spin_lock(&desc->lock);
>
> if (!(desc->status & IRQ_INPROGRESS))
> goto out;
> @@ -921,7 +921,7 @@ static void do_hardirq(struct irq_desc *desc)
> else
> thread_do_irq(desc);
> out:
> - spin_unlock_irqrestore(&desc->lock, flags);
> + spin_unlock(&desc->lock);
>
> if (waitqueue_active(&desc->wait_for_handler))
> wake_up(&desc->wait_for_handler);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq()
2009-02-12 23:24 ` Arnaldo Carvalho de Melo
@ 2009-02-12 23:27 ` Frederic Weisbecker
2009-02-12 23:37 ` Steven Rostedt
0 siblings, 1 reply; 5+ messages in thread
From: Frederic Weisbecker @ 2009-02-12 23:27 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: Steven Rostedt, linux-kernel
On Thu, Feb 12, 2009 at 09:24:59PM -0200, Arnaldo Carvalho de Melo wrote:
> Em Thu, Feb 12, 2009 at 07:27:08PM +0100, Frederic Weisbecker escreveu:
> > do_hardirq() has only one caller do_irqd() in a path where irq are already
> > disabled. So we don't need to save irqs while holding desc->lock
> >
> > Replace spin_lock_irqsave by spin_lock.
> >
> > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> > ---
> > kernel/irq/manage.c | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
> > index ed7c5e3..6e9baf8 100644
> > --- a/kernel/irq/manage.c
> > +++ b/kernel/irq/manage.c
> > @@ -905,7 +905,7 @@ static void do_hardirq(struct irq_desc *desc)
> > {
> > unsigned long flags;
>
> Can flags be removed too?
Actually... I cheated.
Once the two patches were done, I saw the unused variable warning. So I remade the second patch
to remove flags but..yes it should be on the first patch, I must confess...
> > - spin_lock_irqsave(&desc->lock, flags);
> > + spin_lock(&desc->lock);
> >
> > if (!(desc->status & IRQ_INPROGRESS))
> > goto out;
> > @@ -921,7 +921,7 @@ static void do_hardirq(struct irq_desc *desc)
> > else
> > thread_do_irq(desc);
> > out:
> > - spin_unlock_irqrestore(&desc->lock, flags);
> > + spin_unlock(&desc->lock);
> >
> > if (waitqueue_active(&desc->wait_for_handler))
> > wake_up(&desc->wait_for_handler);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq()
2009-02-12 23:27 ` Frederic Weisbecker
@ 2009-02-12 23:37 ` Steven Rostedt
2009-02-12 23:43 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2009-02-12 23:37 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: Arnaldo Carvalho de Melo, linux-kernel
On Fri, 13 Feb 2009, Frederic Weisbecker wrote:
> On Thu, Feb 12, 2009 at 09:24:59PM -0200, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Feb 12, 2009 at 07:27:08PM +0100, Frederic Weisbecker escreveu:
> > > do_hardirq() has only one caller do_irqd() in a path where irq are already
> > > disabled. So we don't need to save irqs while holding desc->lock
> > >
> > > Replace spin_lock_irqsave by spin_lock.
> > >
> > > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> > > ---
> > > kernel/irq/manage.c | 4 ++--
> > > 1 files changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
> > > index ed7c5e3..6e9baf8 100644
> > > --- a/kernel/irq/manage.c
> > > +++ b/kernel/irq/manage.c
> > > @@ -905,7 +905,7 @@ static void do_hardirq(struct irq_desc *desc)
> > > {
> > > unsigned long flags;
> >
> > Can flags be removed too?
>
>
> Actually... I cheated.
> Once the two patches were done, I saw the unused variable warning. So I remade the second patch
> to remove flags but..yes it should be on the first patch, I must confess...
That's fine, I'll pull both of them in.
Thanks Frederic!
-- Steve
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq()
2009-02-12 23:37 ` Steven Rostedt
@ 2009-02-12 23:43 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-02-12 23:43 UTC (permalink / raw)
To: Steven Rostedt; +Cc: Frederic Weisbecker, linux-kernel
Em Thu, Feb 12, 2009 at 06:37:16PM -0500, Steven Rostedt escreveu:
>
> On Fri, 13 Feb 2009, Frederic Weisbecker wrote:
>
> > On Thu, Feb 12, 2009 at 09:24:59PM -0200, Arnaldo Carvalho de Melo wrote:
> > > Em Thu, Feb 12, 2009 at 07:27:08PM +0100, Frederic Weisbecker escreveu:
> > > > do_hardirq() has only one caller do_irqd() in a path where irq are already
> > > > disabled. So we don't need to save irqs while holding desc->lock
> > > >
> > > > Replace spin_lock_irqsave by spin_lock.
> > > >
> > > > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> > > > ---
> > > > kernel/irq/manage.c | 4 ++--
> > > > 1 files changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
> > > > index ed7c5e3..6e9baf8 100644
> > > > --- a/kernel/irq/manage.c
> > > > +++ b/kernel/irq/manage.c
> > > > @@ -905,7 +905,7 @@ static void do_hardirq(struct irq_desc *desc)
> > > > {
> > > > unsigned long flags;
> > >
> > > Can flags be removed too?
> >
> >
> > Actually... I cheated.
> > Once the two patches were done, I saw the unused variable warning. So I remade the second patch
> > to remove flags but..yes it should be on the first patch, I must confess...
>
> That's fine, I'll pull both of them in.
>
> Thanks Frederic!
Ditto, that was just a follow up thingy, nothing against the change :-)
- Arnaldo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-02-12 23:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-12 18:27 [PATCH 1/2] rt/threadirqs: don't need to save irqs in do_hardirq() Frederic Weisbecker
2009-02-12 23:24 ` Arnaldo Carvalho de Melo
2009-02-12 23:27 ` Frederic Weisbecker
2009-02-12 23:37 ` Steven Rostedt
2009-02-12 23:43 ` Arnaldo Carvalho de Melo
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.