[comp.os.minix] Amoeba on Token Ring

HELMER%SDNET.BITNET@vm1.nodak.edu (Guy Helmer) (05/25/89)

We have the PCs on campus at Dakota State College networked using IBM
Token Ring adapters. The possibility of using Amoeba under Minix
seems like it would be a great way to explore multiprocessing, and
it seems like it would serve well as a way to get to our Vax, via
something like a 386 Minix gateway.  I haven't looked too carefully
at the Amoeba source, so I am asking if anyone knows whether Token
Ring adapter support would be difficult to implement and if anyone
has tried it yet.

-- Guy Helmer                                      BITNET: HELMER@SDNET
   Dakota State College                            AT&T: (605) 256-5315
   Madison, SD  57042                                    (605) 256-6411

scc@cl.cam.ac.uk (Stephen Crawley) (05/27/89)

Amoeba on a token ring would be difficult.  Amoeba transaction protocol
(TP) relies on (bletch) broadcast to locate an Amoeba service (actually a 
port) on the network.  On an ethernet this will work, though you get 
problems you have lots of amoeba nodes chattering away.

Token rings (and slotted rings) do not support physical broadcasts.  This 
is ONE of the reasons that Amoeba TP is unpopular around here.  A few
months ago I was talking to CWI people about a broadcast-less version 
of TP, but that project got put to one side.

-- Steve

cire@dustbin.cisco.com (Eric B. Decker) (05/29/89)

In article <760@scaup.cl.cam.ac.uk> scc@cl.cam.ac.uk (Stephen Crawley) writes:

   Path: hercules!joyce!ames!hc!lll-winken!uunet!mcvax!ukc!cam-cl!scc
   From: scc@cl.cam.ac.uk (Stephen Crawley)
   Newsgroups: comp.os.minix
   Date: 26 May 89 21:21:25 GMT
   References: <16240@louie.udel.EDU>
   Sender: news@cl.cam.ac.uk
   Organization: U of Cambridge Comp Lab, UK
   Lines: 11
   Posted: Fri May 26 22:21:25 1989

   Amoeba on a token ring would be difficult.  Amoeba transaction protocol
   (TP) relies on (bletch) broadcast to locate an Amoeba service (actually a 
   port) on the network.  On an ethernet this will work, though you get 
   problems you have lots of amoeba nodes chattering away.

   Token rings (and slotted rings) do not support physical broadcasts.  This 
   is ONE of the reasons that Amoeba TP is unpopular around here.  A few
   months ago I was talking to CWI people about a broadcast-less version 
   of TP, but that project got put to one side.

   -- Steve

How do you figure that?  Token Rings at least the IBM and IEEE 802.5
versions sure do support broadcast.  Not that I agree with server
rendezvous using broadcasts in general.  But saying Token Rings don't
support physical broadcasts must therefore be an over-generalization.
I figure you must be talking about some other implementation of Token 
Ring.

The IBM/IEEE 802.5 Token Ring supports various flavors of group/multicast
addresses.  The first is broadcast.  A Token Ring interface is required
to recognize either 0xC000FFFFFFFF or 0xFFFFFFFFFFFF as the broadcast
address and accept the packet.  The former is for backward compatibility
with early IBM implementations (so I figure) and the later to simplify
some of the problems with Token Ring and Ethernets coexisting and 
inter-operating.

Another class of group address is the Group.  This is analogous to
multicast addresses on Ethernets.  This allows an arbritrary address
within limits to be assigned to the interface.  My big bitch with this
one is the chipset I happen to be using only gives you one.  Drag city.
Group addresses are in the range 0xC00080000000 to 0xC000FFFFFFFE.

The last class and certainly an interesting one is the Functional
address.  This is a bit significant address.  That is you can
set you address to say 0xC000 0088 4000 and you will nab packets with the
destination addresses of 0xC00000800000, 0xC00000080000, or 
0xC00000084000.  You get the packet if any of the bits in the destination
address are also turned on in your functional address.

The Group or Functional address would be real great for server type
rendezvous.  The Functional would allow defining groups of servers.

Hope that clears some of the fog.

-c
--
cire|eric

Eric B. Decker
Token Ring Development
cisco Systems - engineering
Menlo Park, California

email:	cire@cisco.com
uSnail: 1360 Willow Rd.,  Menlo Park, CA  94025
Phone : (415) 326-1941

scc@cl.cam.ac.uk (Stephen Crawley) (05/30/89)

In <16240@louie.udel.EDU> cire@dustbin.cisco.com (Eric B. Decker) writes:
> How do you figure that?  Token Rings at least the IBM and IEEE 802.5
> versions sure do support broadcast.

I stand corrected.  I was generalising from my knowledge of rings 
(e.g. Cambridge Ring, CFR, etc) that do not support broadcast.

So Amoeba on a token ring may be feasible.  But don't blame me if your
token ring bogs down with floods of broadcast packets :-).  

Seriously, in the "real" amoeba TP driver and the Amoeba/UNIX version, there
is a pathological case where you see a lot of server locate broadcasts on
the net.  When the server does not have enough threads listening, a client
request can arrive when the server is not ready.  This causes the TP driver
to drop/reject the packet, and the client's TP driver issues a locate.
This will often happen when you have a single client thread trying to
send a stream of data to a single server thread.  

One time, someone at Cambridge doing something like this with a handful 
of client/server pairs managed to bring our ethernet to its knees.  My
workstation was spending 100% of its time fending off Amoeba broadcasts.

-- Steve

sater@cs.vu.nl (Hans van Staveren) (05/31/89)

In article <762@scaup.cl.cam.ac.uk> scc@cl.cam.ac.uk (Stephen Crawley) writes:
>
>So Amoeba on a token ring may be feasible.  But don't blame me if your
>token ring bogs down with floods of broadcast packets :-).  
>
>One time, someone at Cambridge doing something like this with a handful 
>of client/server pairs managed to bring our ethernet to its knees.  My
>workstation was spending 100% of its time fending off Amoeba broadcasts.
>
>-- Steve

I do not like to react as hurt in my feelings, but there is no way that the
current Amoeba software will ever generate a broadcast storm. There is special
code to prevent, even in pathological cases like fast client and slow server,
the occurence of more than ~20 broadcasts per second. I do not say that this
is very little, but it only occurs in pretty strange cases, and it will most
certainly not bring an Ethernet to it's knees.

Our installation here runs some 40 Amoeba poolprocessors, mostly 68020's,
on the same Ethernet as lots of Sun's and various other stuff. Had it been 
that bad someone would certainly have complained to me.
 
	 Hans van Staveren
	 Vrije Universiteit
	 Amsterdam, Holland

scc@cl.cam.ac.uk (Stephen Crawley) (06/05/89)

In <2674@sater.cs.vu.nl> Hans van Staveren writes:
>I do not like to react as hurt in my feelings, but there is no way that the
>current Amoeba software will ever generate a broadcast storm. There is special
>code to prevent, even in pathological cases like fast client and slow server,
>the occurence of more than ~20 broadcasts per second. I do not say that this
>is very little, but it only occurs in pretty strange cases, and it will most
>certainly not bring an Ethernet to it's knees.

The special code that Hans described to me as code to limit the Amoeba TP 
driver to sending at most one locate broadcast per (10Hz) clock tick.  In 
other words a single kernel can in theory emit 10 broadcast packets per 
second.  I cannot see how this makes a broadcast storm impossible!  Sure a 
single machine won't do it, but if you write a distributed application that 
does a lot of communication between a number of machines ... watch out!

The pathological cases that Hans talks about that are not at all unusual if 
you naively try to use Amoeba TP as a "universal" transport protocol as some 
of the the Amoeba proponents claim you can do.  For example if you try to 
build a niave byte stream on top of TP.  This is exactly how the CWI supplied 
amoeba runtime libraries implement stdio streams!  I remember being boggled by 
how slow single character writes to an unbuffered stream were.  Now I think I 
know why.]

>Our installation here runs some 40 Amoeba poolprocessors, mostly 68020's,
>on the same Ethernet as lots of Sun's and various other stuff. Had it been 
>that bad someone would certainly have complained to me.

Hans:

How many Xerox InterLisp machines do you have?  Machines like Suns have decent 
ethernet interfaces and fast processors and can tolerate a surprisingly high 
broadcast rate.  A Xerox 6085 / 1186 has a wimpy ethernet interface and a slow 
processor and is badly effected by a relatively low broadcast rate.  My 
workstation is a 6085 ...

Also, what sort of parallel applications are you running on your 40 pool 
processors?  Were they written by novices or by people (like you) who knew all 
about the pitfalls of locates?