Re: [PATCH] x86: Don't write io_apic ID if it is not changed

From: Cyrill Gorcunov
Date: Mon Aug 16 2010 - 05:07:21 EST


On Sun, Aug 15, 2010 at 12:30:57PM +0400, Cyrill Gorcunov wrote:
> On Sun, Aug 15, 2010 at 12:24:46PM +0400, Cyrill Gorcunov wrote:
> ...
> > As far as I see, this was done by a purpose in former code. Consider the
> > situation when mp_ioapics[apic_id].apicid >= get_physical_broadcast().
> > By code flow (io_apic.c:2099) this set
> >
> > if (mp_ioapics[apic_id].apicid >= get_physical_broadcast()) {
> > printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n",
> > apic_id, mp_ioapics[apic_id].apicid);
> > printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
> > reg_00.bits.ID);
> > ---> mp_ioapics[apic_id].apicid = reg_00.bits.ID;
> > }
> >
> > So with your patch we always hit "continue" without real changing of ID which
> > is not correct.
> >
> > But perhaps I miss something?
> >
> > -- Cyrill
>
> False alarm Yinghai, of course there is no need to write same value back,
> sorry for noise.
>
> -- Cyrill

Thinking a bit more I guess there might be a sence to write io-apic id
unconditionally, io-apic id is not latched on reset but set to 0 (at least
for old apics) so if we hit id match -- this will be once, but the same
time we will have additional if() for every cycle iteration, not sure
it worth it. Right?

-- Cyrill
--
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/