The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Clem Cole <clemc@ccc.com>
To: Noel Chiappa <jnc@mercury.lcs.mit.edu>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] core
Date: Sat, 16 Jun 2018 14:59:27 -0400	[thread overview]
Message-ID: <CAC20D2PRmftgpZatQAd4+NPQSK1YEv6ZocOKoCrLsjO408ktVw@mail.gmail.com> (raw)
In-Reply-To: <20180616133716.2302F18C0A7@mercury.lcs.mit.edu>

[-- Attachment #1: Type: text/plain, Size: 8352 bytes --]

below...

On Sat, Jun 16, 2018 at 9:37 AM, Noel Chiappa <jnc@mercury.lcs.mit.edu>
wrote:
>
>
> I can't speak to the motivations of everyone who repeats these stories,
> but my
> professional career has been littered with examples of poor vision from
> technical colleagues (some of whom should have known better), against
> which I
> (in my role as an architect, which is necessarily somewhere where
> long-range
> thinking is - or should be - a requirement) have struggled again and again
> -
> sometimes successfully, more often, not.
>
​Amen, although sadly many of us if not all of us have a few of these
stories.  In fact, I'm fighting another one of these battles right now.🤔
My experience is that more often than not, it's less a failure to see what
a successful future might bring, and often one of well '*we don't need to
do that now/costs too much/we don't have the time*.'

That said, DEC was the epitome of the old line about perfection being the
enemy of success.    I like to say to my colleagues, pick the the things
that are going to really matter.  Make those perfect and bet the company on
them.  But think in terms of what matters.   As you point out, address size
issues are killers and you need to get those right at time t0.

Without saying too much, many firms like my own, think in terms of
computation (math libraries, cpu kernels), but frankly if I can not get the
data to/from CPU's functional units, or the data is stored in the wrong
place, or I have much of the main memory tied up in the OS managing
different types of user memory; it doesn't matter [HPC customers in
particular pay for getting a job done -- they really don't care how -- just
get it done and done fast].

To me, it becomes a matter of 'value' -- our HW folks know a crappy
computational system will doom the device, so that is what they put there
effort into building.   My argument has often been that the messaging
systems, memory hierarchy and house keeping are what you have to get right
at this point.  No amount of SW will fix HW that is lacking the right
support in those places (not that lots of computes are bad, but they are
actually not the big issue in the HPC when yet get down to it these days).



>
> Let's start with the UNIBUS. Why does it have only 18 address lines? (I
> have
> this vague memory of a quote from Gordon Bell admitting that was a mistake,
> but I don't recall exactly where I saw it.)

​I think it was part of the same paper where he made the observation that
the greatest mistake an architecture can have is too few address bits.​
 My understanding is that the problem was that UNIBUS was perceived as an
I/O bus and as I was pointing out, the folks creating it/running the team
did not value it, so in the name of 'cost', more bits was not considered
important.

I used to know and work with the late Henk Schalke, who ran Unibus (HW)
engineering at DEC for many years.    Henk was notoriously frugal (we might
even say 'cheap'), so I can imagine that he did not want to spend on
anything that he thought was wasteful.   Just like I retold the
Amdahl/Brooks story of the 8-bit byte and Amdahl thinking Brooks was nuts;
I don't know for sure, but I can see that without someone really arguing
with Henk as to why 18 bits was not 'good enough.' I can imagine the
conversation going something like:  Someone like me saying: *"Henk, 18 bits
is not going to cut it."*   He might have replied something like:   *"Bool
sheet *[a dutchman's way of cursing in English], *we already gave you two
more bit than you can address* (actually he'd then probably stop mid
sentence and translate in his head from Dutch to English - which was always
interesting when you argued with him).

Note: I'm not blaming Henk, just stating that his thinking was very much
that way, and I suspect he was not not alone.  Only someone like Gordon and
the time could have overruled it, and I don't think the problems were
foreseen as Noel notes.




>
> And a major one from the very start of my career: the decision to remove
> the
> variable-length addresses from IPv3 and substitute the 32-bit addresses of
> IPv4.
>
​I always wondered about the back story on that one.  I do seem to remember
that there had been a proposal for variable-length addresses at one point;
but never knew why it was not picked.   As you say, I was certainly way to
junior to have been part of that discussion.  We just had some of the
document from you guys and we were told to try to implement it.​  My guess
is this is an example of folks thinking, length addressing was wasteful.
 32-bits seemed infinite in those days and no body expected the network to
scale to the size it is today and will grow to in the future [I do remember
before Noel and team came up with ARP, somebody quipped that Xerox
Ethernet's 48-bits were too big and IP's 32-bit was too small.  The
original hack I did was since we used 3Com board and they all shared the
upper 3 bytes of the MAC address to map the lower 24 to the IP address - we
were not connecting to the global network so it worked.  Later we used a
look up table, until the ARP trick was created].



>
> One place where I _did_ manage to win was in adding subnetting support to
> hosts (in the Host Requirements WG); it was done the way I wanted, with the
> result that when CIDR came along, even though it hadn't been forseen at the
> time we did subnetting, it required _no_ hosts changes of any kind.

​Amen and thank you.​




> But
> ​ ​
> mostly I lost. :-(
>
​I know the feeling.  To many battles that in hindsight you think - darn if
they had only listened.    FWIW: if you try to mess with Intel OPA2 fabric
these days there is a back story.  A few years ago I had a quite a battle
with the HW folks, but I won that one.   The SW cannot tell the difference
between on-die or off-die, so the OS does not have the manage it.   Huge
difference in OS performance and space efficiency.   But I suspect that
there are some HW folks that spit on the floor when I come in the room.
We'll see if I am proven to be right in the long run; but at 1M cores I
don't want to think of the OS mess to manage two different types of memory
for the message system.​



>
> So, is poor vision common? All too common.

Indeed.   But to be fair, you can also end up with being like DEC and often
late to the market.​


M
​y example is of Alpha (and 64-bits vs 32-bit).   No attempt to support
32-bit was really done because​ 64-bit was the future.  Sr folks considered
32-bit mode was wasteful.  The argument was that adding it was not only
technically not a good idea, but it would suck up engineering resources to
implement it in both HW and SW.  Plus, we coming from the VAX so folks had
to recompile all the code anyway (god forbid that the SW might not be
64-bit clean mind you).  [VMS did a few hacks, but Tru64 stayed 'clean.']
 Similarly (back to UNIX theme for this mailing list) Tru64 was a rewrite
of OSF/1 - but hardly any OSF code was left in the DEC kernel by the time
it shipped.  Each subsystem was rewritten/replaced to 'make it perfect'
 [always with a good argument mind you, but never looking at the long term
issues].    Those two choices cost 3 years in market acceptance.   By the
time, Alphas hit the street it did not matter. I think in both cases would
have been allowed Alpha to be better accepted if DEC had shipped earlier
with a few hacks, but them improved Tru64 as a better version was developed
(*i.e.* replace the memory system, the I/O system, the TTY handler, the FS
just to name a few that got rewritten from OSF/1 because folks thought they
were 'weak').

The trick in my mind, is to identify the real technical features you can
not fix later and get those right at the beginning.   Then place the bet on
those features, and develop as fast as you can and do the best with them as
you you are able given your constraints.  Then slowly over time improve the
things that mattered less at the beginning as you have a review stream.
 If you wait for perfection, you get something like Alpha which was a great
architecture (particularly compared to INTEL*64) - but in the end, did not
matter.

Clem
ᐧ

[-- Attachment #2: Type: text/html, Size: 13046 bytes --]

  reply	other threads:[~2018-06-16 19:00 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-16 13:37 Noel Chiappa
2018-06-16 18:59 ` Clem Cole [this message]
2018-06-17 12:15 ` Derek Fawcus
2018-06-17 17:33 ` Theodore Y. Ts'o
2018-06-17 19:50   ` Jon Forrest
2018-06-18 14:56   ` Clem Cole
2018-06-18 12:36 ` Tony Finch
  -- strict thread matches above, loose matches on Subject: below --
2018-06-21 22:44 Nelson H. F. Beebe
2018-06-21 23:07 ` Grant Taylor via TUHS
2018-06-21 23:38   ` Toby Thain
2018-06-21 17:40 Noel Chiappa
2018-06-21 17:07 Nelson H. F. Beebe
2018-06-21 13:46 Doug McIlroy
2018-06-21 16:13 ` Tim Bradshaw
2018-06-20 20:11 Doug McIlroy
2018-06-20 23:53 ` Tim Bradshaw
2018-06-19 12:23 Noel Chiappa
2018-06-19 12:58 ` Clem Cole
2018-06-19 13:53   ` John P. Linderman
2018-06-21 14:09 ` Paul Winalski
2018-06-19 11:50 Doug McIlroy
     [not found] <20180618121738.98BD118C087@mercury.lcs.mit.edu>
2018-06-18 21:13 ` Johnny Billquist
2018-06-18 17:56 Noel Chiappa
2018-06-18 18:51 ` Clem Cole
2018-06-18 14:51 Noel Chiappa
2018-06-18 14:58 ` Warner Losh
     [not found] <mailman.1.1529287201.13697.tuhs@minnie.tuhs.org>
2018-06-18  5:58 ` Johnny Billquist
2018-06-18 12:39   ` Ronald Natalie
2018-06-17 21:18 Noel Chiappa
2018-06-17 17:58 Noel Chiappa
2018-06-18  9:16 ` Tim Bradshaw
2018-06-18 15:33   ` Tim Bradshaw
2018-06-17 14:36 Noel Chiappa
2018-06-17 15:58 ` Derek Fawcus
2018-06-16 22:57 Noel Chiappa
     [not found] <mailman.1.1529175600.3826.tuhs@minnie.tuhs.org>
2018-06-16 22:14 ` Johnny Billquist
2018-06-16 22:38   ` Arthur Krewat
2018-06-17  0:15   ` Clem cole
2018-06-17  1:50     ` Johnny Billquist
2018-06-17 10:33       ` Ronald Natalie
2018-06-20 16:55       ` Paul Winalski
2018-06-20 21:35         ` Johnny Billquist
2018-06-20 22:24           ` Paul Winalski
2018-06-16 13:49 Noel Chiappa
2018-06-16 14:10 ` Clem Cole
2018-06-16 14:34   ` Lawrence Stewart
2018-06-16 15:28     ` Larry McVoy
2018-06-16 14:10 ` Steve Nickolas
2018-06-16 14:13   ` William Pechter
2018-06-16 12:58 Doug McIlroy
2018-06-20 11:10 ` Dave Horsfall
2018-06-16 12:51 Noel Chiappa
2018-06-16 13:11 ` Clem cole
2018-06-15 15:25 Noel Chiappa
2018-06-15 23:05 ` Dave Horsfall
2018-06-15 23:22   ` Lyndon Nerenberg
2018-06-16  6:36     ` Dave Horsfall
2018-06-16 19:07       ` Clem Cole
2018-06-18  9:25         ` Tim Bradshaw
2018-06-19 20:45           ` Peter Jeremy
2018-06-19 22:55             ` David Arnold
2018-06-20  5:04               ` Peter Jeremy
2018-06-20  5:41                 ` Warner Losh
2018-06-15 11:19 A. P. Garcia
2018-06-15 13:50 ` Steffen Nurpmeso
2018-06-15 14:21 ` Clem Cole
2018-06-15 15:11   ` John P. Linderman
2018-06-15 15:21     ` Larry McVoy
2018-06-16  1:08   ` Greg 'groggy' Lehey
2018-06-16  2:00     ` Nemo Nusquam
2018-06-16  2:17     ` John P. Linderman
2018-06-16  3:06     ` Clem cole
2018-06-20 10:06 ` Dave Horsfall

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=CAC20D2PRmftgpZatQAd4+NPQSK1YEv6ZocOKoCrLsjO408ktVw@mail.gmail.com \
    --to=clemc@ccc.com \
    --cc=jnc@mercury.lcs.mit.edu \
    --cc=tuhs@tuhs.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).