Messages in this thread | | | Date | Tue, 27 Jan 2009 11:25:56 -0500 | Subject | Re: [PATCH 1/2 #tj-percpu] x86: fix build breakage on voyage | From | Brian Gerst <> |
| |
On Tue, Jan 27, 2009 at 11:04 AM, James Bottomley <James.Bottomley@hansenpartnership.com> wrote: > On Tue, 2009-01-27 at 16:50 +0100, Ingo Molnar wrote: >> * James Bottomley <James.Bottomley@HansenPartnership.com> wrote: >> >> > On Tue, 2009-01-27 at 12:37 +0100, Ingo Molnar wrote: >> > > * Tejun Heo <htejun@gmail.com> wrote: >> > > >> > > > From: James Bottomley <James.Bottomley@HansenPartnership.com> >> > > > >> > > > Impact: build fix >> > > > >> > > > x86_cpu_to_apicid and x86_bios_cpu_apicid aren't defined for voyage. >> > > > Earlier patch forgot to conditionalize early percpu clearing. Fix it. >> > > >> > > > +#ifdef CONFIG_X86_LOCAL_APIC >> > > > early_per_cpu_ptr(x86_cpu_to_apicid) = NULL; >> > > > early_per_cpu_ptr(x86_bios_cpu_apicid) = NULL; >> > > > +#endif >> > > >> > > That patch is not acceptable - it is ugly and it adds another set of >> > > #ifdefs to an already complex piece of code. >> > > >> > > As i explained it to James in recent threads, the clean and acceptable >> > > solution to this class of problems is to switch Voyager away from that >> > > fragile subarch code to proper generic x86 code. (just like we did it for >> > > other subarchitectures) >> > > >> > > There is nothing in Voyager that justifies special treatment in the area >> > > of x86 percpu code. >> > > >> > > This is one of the mails that explains the principles: >> > > >> > > http://lkml.indiana.edu/hypermail/linux/kernel/0901.2/00954.html >> > > >> > > Or - if there's no time/interest in doing that, we can mark Voyager as >> > > CONFIG_BROKEN. >> > >> > Have you quite finished? >> >> What is that supposed to mean? > > It's a conventional response implying your rant wasn't factually > connected to the actual problem at hand. The justification was actually > in the text you cut ... but boils down to you can reproduce it in a non > voyager configuration, so it's not a voyager specific problem. > > The actual problem, as I see it, is how (or whether) to get rid of the > nine #if/#ifdefs that clutter setup_percpu.c ... none of which is > voyager specific.
To be fair, setup_percpu.c isn't built on UP. But we're splitting hairs over just 3 conditional variables. I'm open to ideas, but I'm quite certain that any general solution will have more overhead than the current code. I am looking at a patch to remove the early percpu pointers, so the second set of ifdefs would go away.
-- Brian Gerst
| |