[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080722132401.GA17165@ywang-dev>
Date: Tue, 22 Jul 2008 09:24:01 -0400
From: Yong Wang <yong.y.wang@...ux.intel.com>
To: Suresh Siddha <suresh.b.siddha@...el.com>
Cc: Ingo Molnar <mingo@...e.hu>, Yinghai Lu <yhlu.kernel@...il.com>,
Zachary Amsden <zach@...are.com>,
"Maciej W. Rozycki" <macro@...ux-mips.org>,
"x86@...nel.org" <x86@...nel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Jeremy Fitzhardinge <jeremy@...p.org>
Subject: Re: [PATCH] x86: APIC: Remove apic_write_around(); use alternatives
On Mon, Jul 21, 2008 at 10:59:41AM -0700, Suresh Siddha wrote:
> Thanks Ingo. I tested tip/master and found an issue (patch attached)
> for x2apic support. This is not because of the recent merges we had, but
> because of something(where we still access memory based interface after
> enabling x2apic mode) that slipped through my earlier tests.
>
> Probably it is a good idea to unmap the memory mapped interface, once we switch
> to x2apic mode. That will catch the issues much earlier. I will
> post another patch for this.
>
> Meanwhile, I will do more testing of tip/master along with addressing
> open issues.
> ---
>
> [patch] x64, apic: use generic apic_write() for ack_APIC_irq()
>
> ack_APIC_irq() is used at too many generic places (and not just during
> irq_chip handling!) to use the native_apic_mem_write(). For ex, this will
> break x2apic based systems.
>
> Fix ack_APIC_irq() to use the generic apic_write() even for 64-bit.
>
> Signed-off-by: Suresh Siddha <suresh.b.siddha@...el.com>
> ---
>
> diff --git a/include/asm-x86/apic.h b/include/asm-x86/apic.h
> index 300b65e..1df955f 100644
> --- a/include/asm-x86/apic.h
> +++ b/include/asm-x86/apic.h
> @@ -138,11 +138,7 @@ static inline void ack_APIC_irq(void)
> */
>
> /* Docs say use 0 for future compatibility */
> -#ifdef CONFIG_X86_32
> apic_write(APIC_EOI, 0);
> -#else
> - native_apic_mem_write(APIC_EOI, 0);
> -#endif
> }
>
ACK. I tested this patch on my x2apic capable box and it works well. Without this patch, kernel built from tip/x86/x2apic cannot boot in x2apic mode and all APs got stuck in smp_callin->calibrate_delay and failed to boot. After applying this patch, system boots well and all processors got up and running successfully.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists