Messages in this thread | | | Date | Mon, 16 Aug 2010 13:06:45 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [PATCH] x86: Don't write io_apic ID if it is not changed |
| |
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
| |