From: Brian Gerst <brgerst@gmail.com>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
Yinghai Lu <yinghai@kernel.org>, Tejun Heo <tj@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: x86/Voyager
Date: Sun, 18 Jan 2009 12:41:50 -0500 [thread overview]
Message-ID: <73c1f2160901180941o5ffceaeq3455483cd40fa45f@mail.gmail.com> (raw)
In-Reply-To: <1232296885.3247.17.camel@localhost.localdomain>
On Sun, Jan 18, 2009 at 11:41 AM, James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
> On Sun, 2009-01-18 at 08:14 +0100, Ingo Molnar wrote:
>> * Brian Gerst <brgerst@gmail.com> wrote:
>>
>> > On Sun, Jan 18, 2009 at 12:59 AM, Tejun Heo <tj@kernel.org> wrote:
>> > > Brian Gerst wrote:
>> > >> On Sun, Jan 18, 2009 at 12:05 AM, Tejun Heo <tj@kernel.org> wrote:
>> > >>> Hello,
>> > >>>
>> > >>>> --- a/arch/x86/kernel/setup_percpu.c
>> > >>>> +++ b/arch/x86/kernel/setup_percpu.c
>> > >>>> @@ -147,6 +147,9 @@ unsigned long __per_cpu_offset[NR_CPUS] __read_mostly;
>> > >>>> #endif
>> > >>>> EXPORT_SYMBOL(__per_cpu_offset);
>> > >>>>
>> > >>>> +DEFINE_PER_CPU(int, cpu_number);
>> > >>>> +EXPORT_PER_CPU_SYMBOL(cpu_number);
>> > >>> This is inside CONFIG_HAVE_SETUP_PER_CPU_AREA. I think voyage would
>> > >>> be unhappy with this change.
>> > >>
>> > >> Is there any specific reason Voyager doesn't use the x86
>> > >> setup_per_cpu_areas() function? I don't see anything on a quick
>> > >> glance that would not work. The x86 code is pretty much a superset of
>> > >> the default code in init/main.c.
>> > >
>> > > I have no idea at all. Given that not many people can test it, I
>> > > figured just leaving it alone would be the best course but if it can
>> > > be merged, all the better.
>> >
>> > Unfortunately Voyager doesn't compile currently for unrelated reasons.
>> > I'll take a look at incorporating it into these patches, but I can't
>> > even do a compile test right now.
>
> What are "unrelated reasons"?, 2.6.28 compiles and boots for me, except
> some of the compile fixes (which are regressions, by the way) aren't
> included in spite of being sent several times.
>
> I've put them up here:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jejb/voyager-2.6.git
>
> I haven't included the cpumask fixes (so it won't compile on 2.6.29-rc2
> yet) because I'll have to try to polish them to fit in with whatever's
> going on. Plus there's some type of initramfs boot failure that I need
> to investigate. However, usually I wait until the x86 churn is
> finished, which is a lot later into the -rc cycle than this before
> fixing up all the breakage.
>
>> Peter/James, what's the current status of x86/Voyager cleanups?
>
> The only outstanding problem I can see in 2.6.29 is a cpumask screw up
> caused by Mike Travis ... it looks easily fixable, he just forgot to
> convert voyager.
>
> I have to say that putting the SMP CPU definitions in cpu/common.c
> hedged around with ifdefs for type looks really to be the wrong thing to
> do. We already have compile selected files with these types, the
> definition should be in there.
>
>> A couple of months ago i made a few suggestions about how to convert
>> Voyager to the cleaner x86_quirks 'quirks HAL' (from the current fragile
>> and hard and expensive to maintain 'compile time HAL'), but it didnt seem
>> to go anywhere. See the discussion of this timeframe:
>>
>> http://lkml.org/lkml/2008/11/3/53
>>
>> The VisWS subarch (which was a similarly excentric design that was only a
>> PC in terms of having Intel CPUs) has been converted to CONFIG_X86_VISWS
>> already, with arch/x86/kernel/visws_quirks.c holding the optional quirk
>> handlers.
>>
>> The desired end result would be to have a CONFIG_X86_VOYAGER=y build mode
>> that adds the quirk handlers to an otherwise generic kernel, with most of
>> the quirks concentrated into a single arch/x86/kernel/voyager_quirks.c
>> file - instead of having a full subarch for x86/Voyager. Both
>> arch/x86/mach-voyager/ and arch/x86/include/asm/mach-voyager/ would go
>> away in the end - because all functionality is merged into the generic
>> code and the quirks would be in voyager_quirks.c.
>
> You appear to have forgotten that we already had this discussion here:
>
> http://marc.info/?t=122539020300002
>
> But to precis, the bottom line is that I'm concerned about the damage to
> mainline x86 this would cause because voyager is a vastly different
> beast. We'd be doubling at least the number of function pointer
> indirections, plus the current quirk stuff is inadequate: voyager needs
> boot time separation to handle the unique SUS maps and other things, so
> there'd be a big intrusion into the boot system as well.
>
>> I'd be glad to lend a helping hand both with the patches and with testing
>> on non-Voyager - especially the SMP bits probably need extensions on the
>> x86_quirks side. (And i'm sure the other x86 maintainers would we glad to
>> help out with this process too.)
>>
>> x86/Voyager is the last holdout in this area, and with an active kernel
>> developer like James behind it it ought to be fixable - should James have
>> the time/interest.
>
> But no-one's yet made any argument for why it's a worthwhile thing to be
> doing.
>
>> If there's no time/interest in that then we can temporarily mark Voyager
>> CONFIG_BROKEN until cleanup/fix patches arrive.
>
> It's not broken and I've already sent you the cleanup/fix patches ... I
> can send them directly to Linus as voyager maintainer if you prefer.
The build breakage was due to the cpumask changes I believe, inherited
from -tip.
There is alot of duplicated code in voyager_smp.c that is making it
difficult for me to work on the per-cpu changes. Do you see any
reason that Voyager can't use the normal x86 setup_per_cpu_areas()
code?
--
Brian Gerst
next prev parent reply other threads:[~2009-01-18 17:42 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <73c1f2160901160610l57e31a64j56fe9544bd2fd309@mail.gmail.com>
2009-01-16 14:16 ` [PATCH 01/17] x86-64: Move irq stats from PDA to per-cpu and consolidate with 32-bit Brian Gerst
2009-01-16 14:16 ` [PATCH 02/17] x86-64: Move TLB state " Brian Gerst
2009-01-16 14:16 ` [PATCH 03/17] x86-64: Convert irqstacks to per-cpu Brian Gerst
2009-01-16 14:16 ` [PATCH 04/17] x86-64: Convert exception stacks " Brian Gerst
2009-01-16 14:16 ` [PATCH 05/17] x86-64: Move cpu number from PDA to per-cpu and consolidate with 32-bit Brian Gerst
2009-01-16 14:16 ` [PATCH 06/17] x86-64: Move current task " Brian Gerst
2009-01-16 14:16 ` [PATCH 07/17] x86-64: Move kernelstack from PDA to per-cpu Brian Gerst
2009-01-16 14:16 ` [PATCH 08/17] x86-64: Move oldrsp " Brian Gerst
2009-01-16 14:16 ` [PATCH 09/17] x86-64: Move irqcount " Brian Gerst
2009-01-16 14:16 ` [PATCH 10/17] x86-64: Move nodenumber " Brian Gerst
2009-01-16 14:16 ` [PATCH 11/17] x86-64: Move isidle " Brian Gerst
2009-01-16 14:16 ` [PATCH 12/17] x86-64: Use absolute displacements for per-cpu accesses Brian Gerst
2009-01-16 14:16 ` [PATCH 13/17] x86-64: Remove pda_init() Brian Gerst
2009-01-16 14:16 ` [PATCH 14/17] x86-64: Remove load_pda_offset() Brian Gerst
2009-01-16 14:16 ` [PATCH 15/17] percpu: Refactor percpu.h Brian Gerst
2009-01-16 14:16 ` [PATCH 16/17] x86-64: Remove the PDA Brian Gerst
2009-01-16 14:16 ` [PATCH 17/17] x86-64: Remove pda.h Brian Gerst
2009-01-18 4:54 ` Tejun Heo
2009-01-18 4:52 ` [PATCH 16/17] x86-64: Remove the PDA Tejun Heo
2009-01-18 7:46 ` Brian Gerst
2009-01-18 8:13 ` Tejun Heo
2009-01-18 8:41 ` Ingo Molnar
2009-01-18 4:32 ` [PATCH 13/17] x86-64: Remove pda_init() Tejun Heo
2009-01-18 5:20 ` Brian Gerst
2009-01-18 5:30 ` Tejun Heo
2009-01-18 4:22 ` [PATCH 12/17] x86-64: Use absolute displacements for per-cpu accesses Tejun Heo
[not found] ` <73c1f2160901172036m4d7bb4f8i50b6a5185a63e95@mail.gmail.com>
2009-01-18 16:42 ` Ingo Molnar
2009-01-18 17:38 ` Ingo Molnar
2009-01-18 5:05 ` [PATCH 05/17] x86-64: Move cpu number from PDA to per-cpu and consolidate with 32-bit Tejun Heo
2009-01-18 5:57 ` Brian Gerst
2009-01-18 5:59 ` Tejun Heo
2009-01-18 6:51 ` Brian Gerst
2009-01-18 7:14 ` x86/Voyager Ingo Molnar
2009-01-18 16:41 ` x86/Voyager James Bottomley
2009-01-18 17:41 ` Brian Gerst [this message]
2009-01-18 18:04 ` x86/Voyager James Bottomley
2009-01-18 18:21 ` x86/Voyager Brian Gerst
2009-01-18 18:17 ` x86/Voyager Ingo Molnar
2009-01-18 20:11 ` x86/Voyager James Bottomley
2009-01-18 21:33 ` x86/Voyager Ingo Molnar
2009-01-18 4:58 ` [PATCH 03/17] x86-64: Convert irqstacks to per-cpu Tejun Heo
2009-01-18 5:05 ` Brian Gerst
2009-01-18 5:08 ` Tejun Heo
2009-01-18 8:36 ` Ingo Molnar
2009-01-18 9:04 ` Tejun Heo
2009-01-18 9:16 ` Ingo Molnar
2009-01-18 5:01 ` Tejun Heo
2009-01-20 13:15 ` [PATCH 1/6] x86: Clean up gdt_page definition Brian Gerst
2009-01-20 13:15 ` [PATCH 2/6] x86-64: Fix percpu_write with 64-bit constants Brian Gerst
2009-01-20 13:15 ` [PATCH 3/6] x86-32: Set %fs to __KERNEL_PERCPU unconditionally Brian Gerst
2009-01-20 13:15 ` [PATCH 4/6] x86: Merge mmu_context.h Brian Gerst
2009-01-21 1:31 ` Tejun Heo
2009-01-21 8:21 ` Tejun Heo
2009-01-20 13:15 ` [PATCH 5/6] x86: Merge hardirq.h Brian Gerst
2009-01-21 8:19 ` Tejun Heo
2009-01-21 8:50 ` Tejun Heo
2009-01-21 10:14 ` Ingo Molnar
2009-01-21 10:13 ` Ingo Molnar
2009-01-21 11:33 ` Tejun Heo
2009-01-21 14:21 ` Tilman Schmidt
2009-01-20 13:15 ` [PATCH 6/6] x86: Merge irq_regs.h Brian Gerst
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=73c1f2160901180941o5ffceaeq3455483cd40fa45f@mail.gmail.com \
--to=brgerst@gmail.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tj@kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome