linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Alexey Dobriyan <adobriyan@gmail.com>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>, Yinghai Lu <yinghai@kernel.org>
Subject: Re: next-20081030: voyager compile busted
Date: Thu, 30 Oct 2008 16:21:48 -0500	[thread overview]
Message-ID: <1225401708.19324.35.camel@localhost.localdomain> (raw)
In-Reply-To: <20081030210704.GA25665@elte.hu>

On Thu, 2008-10-30 at 22:07 +0100, Ingo Molnar wrote:
> * James Bottomley <James.Bottomley@HansenPartnership.com> wrote:
> > > Would you be interested in helping us out with such a project? It 
> > > would be a nice cleanup for sure.
> > 
> > Sure, I'd be interested in looking into that.
> > 
> > However, it won't help the problems since they're mostly compile 
> > breakages caused by tampering with the HAL API for x86 and not 
> > seeing that this affects various subarches. [...]
> 
> it would fix that problem largely because we'd no longer have such 
> 'HAL API' - we'd have runtime differences and function pointers.

Before you advocate this, think what it would entail.  Voyager replaces
(and has to replace because its not apic based) the entirety of smp.c
and smpboot.c ... they'd all have to be abstracted through function
pointers.

Originally I wanted to do this ... after all, it's the way solaris does
its SMP hal replacement as well, but a lot of argument on the mailing
lists back in 1998 convinced me that we didn't want to pay the pipeline
disruption penalty of a function pointer for every SMP operation.  I
know CPUs have become way faster over that decade, but I believe (feel
free to correct) that the pipeline disruption penalty of function
pointers has actually become worse, not better.

The subarchitectures, with their direct function replacement (and
consequent having to accept a particular one to compile with) was the
final compromise.

I really think you don't want voyager slowing down mainline SMP by even
a few percentage points?

> > [...]  Moving voyager to a quirk wouldn't fix that problem.
> 
> btw., Voyager would not be a "quirk" (putting it that way looks a bit 
> derogatory perhaps) - instead it would be a regular x86 platform, with 
> a couple of quirk handlers to handle Voyager specialities.
> 
> Look at how CONFIG_X86_VISWS works today for example: that option only 
> activates the quirk handlers - and a VISWS bzImage will boot fine on a 
> regular PC. This is a far more powerful way of handling x86 hardware 
> deviations than a full build-time thing. It makes it also far easier 
> to test - while we cannot test the _quirks_, we can easily test the 
> build and still boot it on regular PCs. (which makes it far more 
> likely for people to enable this option)
> 
> This principle was followed for all the x86 subarchitectures we've 
> converted already: visws and numaq is done, rdc3210 is basically there 
> already. (waiting for generic gpio bits to complete that fully - but 
> rdc otherwise has no differences from the generic arch code)
> 
> Voyager is certainly one of the most complex subarch cases, hence was 
> it left last :-)

Yes ... but the problem is that all the rest (even numa and visws) use
smp.c and smpboot.c.  That makes them essentially x86 apic systems with
a few quirks (which is ideal for a quirk based system).  Voyager
isn't ... it replaces the entire SMP HAL.

James

  reply	other threads:[~2008-10-30 21:21 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-30  6:30 linux-next: Tree for October 30 Stephen Rothwell
2008-10-30 18:03 ` next-20081030: voyager compile busted Alexey Dobriyan
2008-10-30 20:24   ` James Bottomley
2008-10-30 20:52     ` Ingo Molnar
2008-10-30 20:58       ` James Bottomley
2008-10-30 21:07         ` Ingo Molnar
2008-10-30 21:21           ` James Bottomley [this message]
2008-10-30 21:42             ` H. Peter Anvin
2008-10-30 21:47               ` James Bottomley
2008-10-30 21:50                 ` H. Peter Anvin
2008-10-30 22:40                   ` Ingo Molnar
2008-10-31 17:42                     ` James Bottomley
2008-10-30 21:24       ` Alexey Dobriyan
2008-10-30 23:42   ` Tony Breeds
2008-10-30 23:55 ` linux-next: Tree for October 30 Randy Dunlap
2008-10-31  6:25   ` Greg KH
2008-10-31 16:40     ` Greg KH

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=1225401708.19324.35.camel@localhost.localdomain \
    --to=james.bottomley@hansenpartnership.com \
    --cc=adobriyan@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=sfr@canb.auug.org.au \
    --cc=tglx@linutronix.de \
    --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;
as well as URLs for NNTP newsgroup(s).