lkml.org 
[lkml]   [2011]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRE: [PATCH 1/8] x86, apic.c: Disable irq0 if CPU enables ARAT for local apic timer
> 
> > From: Fenghua Yu <fenghua.yu@intel.com>
> >
> > irq0 won't generate any interrupt after local apic timers is enabled
> and ARAT
> > is enabled. Disable irq0 in this case. Thus irq0 won't block BSP
> offline.
>
> Why would it do so ?
Irq0 is set as IRQF_NOBALANCING. And it's not used any more after boot time if CPU using local apic timer supports ARAT. Although irq0 is useless, it blocks CPU0 offline.

That's why we need to treat irq0 specially for CPU0 offline.

> > +
> > + /* irq0 won't be used any more if CPU supports ARAT feature. */
> > + if (cpu == 0 && this_cpu_has(X86_FEATURE_ARAT))
> > + disable_irq(0);
>
> This is completely wrong. If we want to shut that interrupt down, then
> we do it in the clockevents set mode functions of PIT or HPET and not
> at some random place in the apic timer code.

Agree with you.

Or my original irq0 handling is just ignoring irq0 when ARAT is enabled during CPU0 offline procedure. Is this way cleaner and limited to CPU0 offline path? I'm afraid shutting that interrupt down or disabling it may cause any other (legacy) issue?

Thanks.

-Fenghua


\
 
 \ /
  Last update: 2011-10-05 21:15    [W:0.169 / U:2.796 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site