From: Thomas Gleixner <tglx@linutronix.de>
To: Fenghua Yu <fenghua.yu@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>, H Peter Anvin <hpa@zytor.com>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
Tony Luck <tony.luck@intel.com>,
Asit K Mallick <asit.k.mallick@intel.com>,
Suresh B Siddha <suresh.b.siddha@intel.com>,
Len Brown <lenb@kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/8] x86, apic.c: Disable irq0 if CPU enables ARAT for local apic timer
Date: Wed, 5 Oct 2011 20:47:33 +0200 (CEST) [thread overview]
Message-ID: <alpine.LFD.2.02.1110052045430.18778@ionos> (raw)
In-Reply-To: <1317832759-10223-2-git-send-email-fenghua.yu@intel.com>
On Wed, 5 Oct 2011, Fenghua Yu wrote:
> 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 ?
> Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
> ---
> arch/x86/kernel/apic/apic.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> index 52fa563..8813acf 100644
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -506,6 +506,7 @@ static DEFINE_PER_CPU(struct clock_event_device, lapic_events);
> static void __cpuinit setup_APIC_timer(void)
> {
> struct clock_event_device *levt = &__get_cpu_var(lapic_events);
> + int cpu = smp_processor_id();
>
> if (this_cpu_has(X86_FEATURE_ARAT)) {
> lapic_clockevent.features &= ~CLOCK_EVT_FEAT_C3STOP;
> @@ -517,6 +518,10 @@ static void __cpuinit setup_APIC_timer(void)
> levt->cpumask = cpumask_of(smp_processor_id());
>
> clockevents_register_device(levt);
> +
> + /* 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.
Thanks,
tglx
next prev parent reply other threads:[~2011-10-05 18:47 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-05 16:39 [PATCH 0/8] Online/offline BSP on x86 Fenghua Yu
2011-10-05 16:39 ` [PATCH 1/8] x86, apic.c: Disable irq0 if CPU enables ARAT for local apic timer Fenghua Yu
2011-10-05 18:47 ` Thomas Gleixner [this message]
2011-10-05 19:12 ` Yu, Fenghua
2011-10-05 19:38 ` Thomas Gleixner
2011-10-05 20:11 ` Yu, Fenghua
2011-10-06 2:43 ` Andi Kleen
2011-10-05 16:39 ` [PATCH 2/8] x86/mtrr/main.c: Ask the first online CPU to save mtrr Fenghua Yu
2011-10-05 19:03 ` Srivatsa S. Bhat
2011-10-05 16:39 ` [PATCH 3/8] x86, i387.c: thread xstate is initialized only on BSP once Fenghua Yu
2011-10-05 18:49 ` Thomas Gleixner
2011-10-05 19:53 ` Yu, Fenghua
2011-10-05 16:39 ` [PATCH 4/8] kernel/workqueue.c: unbound work queue rescuer runs on first cpu in cpumask_online_cpu Fenghua Yu
2011-10-05 18:52 ` Thomas Gleixner
2011-10-05 19:19 ` Peter Zijlstra
2011-10-05 20:00 ` Tejun Heo
2011-10-05 16:39 ` [PATCH 5/8] x86, common.c, smpboot.c: Init BSP during BSP online and don't offline BSP if irq is bound to it Fenghua Yu
2011-10-05 19:13 ` Thomas Gleixner
2011-10-05 16:39 ` [PATCH 6/8] x86, topology.c: Enable CPU0 online/offline Fenghua Yu
2011-10-05 19:20 ` Thomas Gleixner
2011-10-05 23:05 ` Yu, Fenghua
2011-11-03 22:47 ` Yu, Fenghua
2011-11-07 2:11 ` Len Brown
2011-11-07 21:02 ` Yu, Fenghua
2011-10-05 16:39 ` [PATCH 7/8] kernel/power/main.c: Not suspend/resume if CPU0 is offlined Fenghua Yu
2011-10-05 18:37 ` Srivatsa S. Bhat
2011-10-05 19:22 ` Thomas Gleixner
2011-10-05 16:39 ` [PATCH 8/8] kernel/cpu.c: Define bsp_hotpluggable variable Fenghua Yu
2011-10-05 19:25 ` Thomas Gleixner
2011-10-05 20:25 ` Yu, Fenghua
2011-10-05 21:19 ` Thomas Gleixner
2011-10-05 19:16 ` [PATCH 0/8] Online/offline BSP on x86 Peter Zijlstra
2011-10-05 19:22 ` Yu, Fenghua
2011-10-05 19:28 ` Peter Zijlstra
2011-10-05 20:29 ` Yu, Fenghua
2011-10-05 20:37 ` Peter Zijlstra
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=alpine.LFD.2.02.1110052045430.18778@ionos \
--to=tglx@linutronix.de \
--cc=asit.k.mallick@intel.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=suresh.b.siddha@intel.com \
--cc=tony.luck@intel.com \
--cc=zwane@arm.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome