public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Dave Jones <davej@redhat.com>, Adrian Bunk <bunk@fs.tum.de>,
	linux-kernel@vger.kernel.org
Subject: Re: RFC: [2.6 patch] better i386 CPU selection
Date: Sat, 13 Sep 2003 14:21:59 -0400	[thread overview]
Message-ID: <20030913182159.GA10047@gtf.org> (raw)
In-Reply-To: <20030913161149.GA1750@redhat.com>

On Sat, Sep 13, 2003 at 05:11:49PM +0100, Dave Jones wrote:
> 
>  > In 2.4 selecting e.g. M486 has the semantics to get a kernel that runs 
>  > on a 486 and above.
>  > In 2.6 selecting M486 means that only the 486 is supported.
> 
> What are you basing this on ? This seems bogus to me.
> Last I checked, I could for eg, boot a 386 kernel on an Athlon.

If you know that you're only booting on a 486, why include all the junk
needed solely for later processors?


> 
>  > +config CPU_ONLY_K7
>  > +	bool
>  > +	depends on CPU_K7 && !CPU_INTEL && !CPU_K6 && !CPU_K8 && !X86_ELAN && !CPU_CRUSOE && !CPU_WINCHIP && !CPU_CYRIXIII && !CPU_VIAC3_2
>  > +
>  > +config CPU_ONLY_K8
>  > +	bool
>  > +	depends on CPU_K8 && !CPU_INTEL && !CPU_K6 && !CPU_K7 && !X86_ELAN && !CPU_CRUSOE && !CPU_WINCHIP && !CPU_CYRIXIII && !CPU_VIAC3_2
>  > +
>  > +config CPU_ONLY_WINCHIP
>  > +	bool
>  > +	depends on CPU_WINCHIP && !CPU_INTEL && !CPU_K6 && !CPU_K7 && !CPU_K8 && !X86_ELAN && !CPU_CRUSOE && !CPU_CYRIXIII && !CPU_VIAC3_2
>  > +	default y
> 
> These are hurrendous.  Each time we add support for a new CPU we
> have to update each and every one of these. This won't fly,
> someone *WILL* miss one. We've had this sort of thing happen before,
> and its an accident waiting to happen.

Agreed


>  > --- linux-2.6.0-test5-cpu/arch/i386/mm/init.c.old	2003-09-13 14:18:04.000000000 +0200
>  > +++ linux-2.6.0-test5-cpu/arch/i386/mm/init.c	2003-09-13 14:23:26.000000000 +0200
>  > @@ -436,8 +436,12 @@
>  >  	if (!mem_map)
>  >  		BUG();
>  >  #endif
>  > -	
>  > +
>  > +#ifdef CONFIG_CPU_686
>  >  	bad_ppro = ppro_with_ram_bug();
>  > +#else
>  > +	bad_ppro = 0;
>  > +#endif
>  >  
> 
> If we boot a 386 kernel on a ppro with that bug, this goes bang.

Echo my first comment.  I think it's fair to make this stuff
fine-grained -- as long as present behavior is preserved.  So IMO
fine-grained "I really want this cpu, and this cpu only" stuff really
requires a dependency on CONFIG_EMBEDDED.  When !CONFIG_EMBEDDED, for
example, it would define CONFIG_CPU_686 to ensure the required 686
pieces were in place.

I like the general direction of Adrian's patch, and think that moving in
this direction will provide a lot of hidden maintenance _benefits_ after
the initial pain...  But.  Adrian's patch is a tough thing to get right,
and IMO requires a lot of testing.


>  >  static void __init init_ifs(void)
>  >  {
>  > +
>  > +#if defined(CONFIG_CPU_K6)
>  >  	amd_init_mtrr();
>  > +#endif
>  > +
>  > +#if defined(CONFIG_CPU_586)
>  >  	cyrix_init_mtrr();
>  > +#endif
>  > +
>  > +#if defined(CONFIG_CPU_WINCHIP) || defined(CONFIG_CPU_CYRIXIII) || defined(CONFIG_CPU_VIAC3_2)
>  >  	centaur_init_mtrr();
>  > +#endif
>  > +
> 
> For the handful of bytes saved in the mtrr driver, I'm more concerned
> about ifdef noise, and the fact that we don't have a compile once-run
> everywhere MTRR driver anymore unless you pick your options right

The arch/i386/kernel/cpu stuff is so modular, code like the above just
screams for an ->init_mtrr() hook in there.  drivers/char/hw_random.c
(portably) depends on VIA RNG's xstore instruction, which implies a
dependency on code and settings in arch/i386/*.  So, there's nothing
fundamentally wrong with sticking your fingers in there, IMO...

	Jeff




  parent reply	other threads:[~2003-09-13 18:22 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-13 12:51 RFC: [2.6 patch] better i386 CPU selection Adrian Bunk
2003-09-13 14:20 ` Kevin P. Fleming
2003-09-13 17:10   ` Adrian Bunk
2003-09-13 16:11 ` Dave Jones
2003-09-13 16:41   ` Adrian Bunk
2003-09-13 17:21     ` Dave Jones
2003-09-13 18:22       ` Adrian Bunk
2003-09-13 18:35         ` Dave Jones
2003-09-13 21:52           ` Adrian Bunk
2003-09-13 18:21   ` Jeff Garzik [this message]
2003-09-13 18:37     ` Dave Jones
2003-09-13 18:53       ` Jeff Garzik
2003-09-13 20:32         ` Alan Cox
2003-09-13 22:07         ` Adrian Bunk
2003-09-13 22:33           ` Jeff Garzik
2003-09-13 18:47     ` Alan Cox
  -- strict thread matches above, loose matches on Subject: below --
2003-09-14  8:55 John Bradford
2003-09-14  8:52 John Bradford
     [not found] <viay.6qh.11@gated-at.bofh.it>
     [not found] ` <vli4.2Ml.15@gated-at.bofh.it>
     [not found]   ` <vnjR.5Sn.5@gated-at.bofh.it>
     [not found]     ` <vnD7.6jK.1@gated-at.bofh.it>
     [not found]       ` <vnMX.6x0.17@gated-at.bofh.it>
     [not found]         ` <vqKS.2NP.29@gated-at.bofh.it>
2003-09-14  0:07           ` Andi Kleen
2003-09-14  0:10             ` David Lang
2003-09-13 11:04 Mikael Pettersson
2003-09-13 11:02 Mikael Pettersson
2003-09-13 11:13 ` Adrian Bunk
2003-09-12 21:38 Mikael Pettersson
2003-09-12 23:23 ` Adrian Bunk
2003-09-16 12:42 ` Maciej W. Rozycki
2003-09-12 20:09 Mikael Pettersson
2003-09-12 22:51 ` Adrian Bunk
2003-09-07 21:47 Mikael Pettersson
2003-09-07 21:46 Mikael Pettersson
2003-09-07 21:56 ` Adrian Bunk
2003-09-07 16:47 Mikael Pettersson
2003-09-07 17:43 ` Jamie Lokier
2003-09-07 18:09   ` Alan Cox
2003-09-08  8:17     ` Rogier Wolff
2003-09-08 12:36       ` Alan Cox
2003-09-10 14:17       ` Pavel Machek
2003-09-11  6:28     ` Adrian Bunk
2003-09-11 11:04       ` Dave Jones
2003-09-12 20:41         ` Adrian Bunk
2003-09-11 12:10       ` Maciej W. Rozycki
2003-09-12 19:07         ` Adrian Bunk
2003-09-16 12:34           ` Maciej W. Rozycki
2003-09-11 14:25       ` Alan Cox
2003-09-13 10:37         ` Adrian Bunk
2003-09-07 17:51 ` Adrian Bunk
2003-09-07 11:28 Adrian Bunk
2003-09-07 11:46 ` Jan-Benedict Glaw
2003-09-07 13:17   ` Adrian Bunk
2003-09-07 13:48     ` Jan-Benedict Glaw
2003-09-07 12:42 ` Sam Ravnborg
2003-09-07 12:51   ` Adrian Bunk
2003-09-07 12:42 ` Robert Schwebel
2003-09-07 13:00   ` Adrian Bunk
2003-09-07 13:14     ` Robert Schwebel
2003-09-08 15:26       ` Tom Rini
2003-09-07 17:31     ` Alan Cox
2003-09-07 17:48       ` Robert Schwebel
2003-09-07 18:04         ` Alan Cox
2003-09-07 18:26           ` Robert Schwebel
2003-09-07 19:17             ` Alan Cox
2003-09-07 19:17             ` Alan Cox
2003-09-07 17:25 ` Alan Cox
2003-09-11  6:19   ` Adrian Bunk
2003-09-08  0:46 ` Rusty Russell
2003-09-08 14:29   ` Adrian Bunk
2003-09-09  1:11     ` Rusty Russell
2003-09-11  6:22       ` Adrian Bunk

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=20030913182159.GA10047@gtf.org \
    --to=jgarzik@pobox.com \
    --cc=bunk@fs.tum.de \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.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