From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Brian Gerst <brgerst@gmail.com>, "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 10:41:25 -0600 [thread overview]
Message-ID: <1232296885.3247.17.camel@localhost.localdomain> (raw)
In-Reply-To: <20090118071427.GA29613@elte.hu>
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.
James
next prev parent reply other threads:[~2009-01-18 16:46 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 ` James Bottomley [this message]
2009-01-18 17:41 ` x86/Voyager Brian Gerst
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=1232296885.3247.17.camel@localhost.localdomain \
--to=james.bottomley@hansenpartnership.com \
--cc=brgerst@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.