Re: [patch 3/3] sched: Use local_irq_save_nmi() in cpu_clock()

Peter Zijlstra
2010-04-07T11:31:43Z

On Wed, 2010-04-07 at 13:27 +0200, Frederic Weisbecker wrote:
> On Tue, Apr 06, 2010 at 03:28:10PM +0200, Peter Zijlstra wrote:
> > Since we can call cpu_clock() from NMI context fix up the IRQ
> > disabling to conform to the new rules.
> >
> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > ---
> > kernel/sched_clock.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > Index: linux-2.6/kernel/sched_clock.c
> > ===================================================================
> > --- linux-2.6.orig/kernel/sched_clock.c
> > +++ linux-2.6/kernel/sched_clock.c
> > @@ -241,9 +241,9 @@ unsigned long long cpu_clock(int cpu)
> > unsigned long long clock;
> > unsigned long flags;
> >
> > - local_irq_save(flags);
> > + local_irq_save_nmi(flags);
> > clock = sched_clock_cpu(cpu);
> > - local_irq_restore(flags);
> > + local_irq_restore_nmi(flags);
> >
> > return clock;
> > }
>
>
> That seem to add a small overhead in various places.
> Do we want to make local_irq_save_nmi == local_irq_save
> for archs that have native nmi?

That is already so, see 1/3.