Subject: Re: Different speed CPUs show up as same speed
To: John Klos <john@sixgirls.org>
From: Perry E. Metzger <perry@wasabisystems.com>
List: tech-smp
Date: 06/16/2002 23:38:07
John Klos <john@sixgirls.org> writes:
> > No, we're a volunteer project, and we are happy to include whatever
> > support is provided. There is a big difference.
> 
> Your distinction isn't very important.

On the contrary, it is critical. Huge numbers of people who never
contribute code get angry when people who do don't do something they
ask. "Why don't you support feature Z!" they demand.

Well, the answer is, we're a volunteer project. That which is
supported for free is that for which a volunteer provides support. It
appears that most of the MP savvy people don't find the idea of
supporting multiple processor types simultaneously particularly worthy
of their time and effort, but if YOU are willing to do the work, and
the code is clean, then perhaps support will exist.

> Unless someone can
> illustrate a problem with running two different processors,

We've given numerous statements of problems

1) Locking, cache snooping, and other protocols aren't guaranteed to work
   AT ALL between arbitrary processor steppings. If they happen to
   work on your combination, bully for you, but the fact that Intel
   has a compatibility matrix should tell you something.
2) Various kinds of system calibrated loops will fail. This can cause
   serious bad mojo.
3) There can be problems with differing supported instruction sets and
   register sets.

Although you don't feel these are problems, others among us do.

> there's no
> good reason to say it's unsupported. Perhaps, for now, one can say it's
> not specifically supported, but it certainly works, and one can say that
> more testing is a good idea, but it is supported.

No, it isn't supported. "Works for you" and "supported" are
different. "Supported" doesn't mean "will boot and run". "Supported"
means that the bulk of us working on NetBSD will care enough to help
if it doesn't work or stops working. "Supported" also means "we
recommend/encourage this usage".

We don't encourage this bad idea. We say outright it is a bad idea. It
isn't supported. If it "happens to work for you", well fine, but we
aren't going to go out of our way to make sure it will work, or to
make sure it continues to work.

If, for example, you said "hey, the change you just made broke my
differing-CPU MP configuration", I doubt anyone would care enough to
spend time debugging it for you, which is very different from what
would happen if you noted that a supported configuration was
broken. If you then provided a patch that made it work for you again
and it caused no harm to anyone else, it might be accepted -- but it
is unlikely anyone else would bother to create such a patch.

That's what "not supported" means.

So, to be clear, consensus seems to be "different CPUs running in MP
is not supported". Not "will never happen to run". "Not supported".


--
Perry E. Metzger		perry@wasabisystems.com
--
NetBSD: The right OS for your embedded design. http://www.wasabisystems.com/