Re: [PATCH] [1/28] x86: Fix panic with interrupts off (needed for MCE)

From: Andi Kleen
Date: Mon Apr 20 2009 - 01:33:32 EST


On Mon, Apr 20, 2009 at 09:26:56AM +0900, Hidetoshi Seto wrote:
> Andi Kleen wrote:
> > I put the reboot vector into the highest priority bucket
> > of the APIC vectors and moved the 64bit UV_BAU message
> > down instead into the next lower priority.
>
> I had forgotten to point this...
>
> > @@ -88,12 +88,14 @@
> > #define THERMAL_APIC_VECTOR 0xfa
> >
> > #ifdef CONFIG_X86_32
> > -/* 0xf8 - 0xf9 : free */
> > +/* 0xf9 : free */
> > #else
> > # define THRESHOLD_APIC_VECTOR 0xf9
> > -# define UV_BAU_MESSAGE 0xf8
> > #endif
> >
> > +#define REBOOT_VECTOR 0xf8
> > +
> > +
> > /* f0-f7 used for spreading out TLB flushes: */
> > #define INVALIDATE_TLB_VECTOR_END 0xf7
> > #define INVALIDATE_TLB_VECTOR_START 0xf0
> > @@ -116,6 +118,8 @@
> > */
> > #define GENERIC_INTERRUPT_VECTOR 0xed
> >
> > +#define UV_BAU_MESSAGE 0xec
> > +
> > /*
> > * First APIC vector available to drivers: (vectors 0x30-0xee) we
> > * start at 0x31(0x41) to spread out vectors evenly between priority
>
> Does this change (=pulling down the priority of UV_BAU_VECTOR) not impact
> users of the UV_BAU_MESSAGE?

I don't think UV_BAU_MESSAGE is really critical in that the world
explodes if it gets processed a little later. AFAIK it's just
used for user space TLB flushes. So putting it in a lower bucket
is fine.

BTW these priorities don't make too much difference anyways, it only
helps slightly under livelock situations when a lot of messages
are pending in the APIC. They're not a full spl like scheme.

> I can see why REBOOT_VECTOR need to be highest priority.

In theory a NMI would be be even better, but that has the usual
problems with broken systems that don't handle NMIs properly.

> Maybe you could pull down THERMAL_APIC_VECTOR/THRESHOLD_APIC_VECTOR
> instead. Why you choose UV_BAU_MESSAGE?

Thermal should probably stay in the high bucket too, but yes THRESHOLD_APIC
could be used too.

-Andi

P.S.: This patch is imho a 2.6.30 candidate too, without it all panics
with interrupts off (including all machimne checks) print ugly backtraces.
This has been a regression since two releases or so.

--
ak@xxxxxxxxxxxxxxx -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/