9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: jmk@plan9.bell-labs.com
To: 9fans@cse.psu.edu
Subject: Re: [9fans] archmp
Date: Wed, 24 Nov 2004 00:18:17 -0500	[thread overview]
Message-ID: <ff40be23b3e4122f64070e6c29a870ff@plan9.bell-labs.com> (raw)
In-Reply-To: <7DD37218104E31429E79EB0BB136800E11C4E5@vargas.ntdom.cupdx>

On Tue Nov 23 23:45:12 EST 2004, BHuntsman@mail2.cu-portland.edu wrote:
> ... was looking through the files archmp.c, apic.c, and mp.c.(386 only)
> Interestingly, they appear in Inferno too.  Native Inferno can run with SMP?
>
> Is there any documentation on how the mp system works?
> (I know I could always just read the sources, but I'd appreciate someone
> pointing me in the right direction...)  How do we get all the CPU's
> initialized, and can we start/stop them individually after boot?  Also,
> are there MP sources for other cpu types?
>
> Thanks all!
>
> -Ben
>

Plan 9 was designed to run on multiprocessors from the start, MP is not
a bolt-on bag on the side, so 'how the mp system works' is really just how
Plan 9 works. The code in the PC-specific files you mention is mostly to 
to parse the configuration information supplied by the BIOS as to how
many processors there are and how interrupts are routed. The remainder of
the code starts up the processors and deals with the interupt hardware
(a different interrupt controller, the APIC, is used on x86 MP systems).
The fact that the system is inherently designed to run on multiprocessors
means that the architecture-specific code is pretty well isolated to
dealing with startup and interrupts.

The first 'real' Plan 9 fileserver and cpuserver ran on SGI Power series
machines, 2 and 4 processors respectively. Later, the SGI Challenge was
used as a cpuserver. The x86 code is the only MP code available under the
current licence that I am aware of; it's pretty old now too.

--jim


  parent reply	other threads:[~2004-11-24  5:18 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-24  4:44 Benjamin Huntsman
2004-11-24  4:55 ` Russ Cox
2004-11-24  5:18 ` jmk [this message]
2004-11-24  5:45 jmk
2004-11-24  5:54 Benjamin Huntsman
2004-11-24 16:02 ` jmk
2004-11-24  5:55 Benjamin Huntsman
2004-11-24  7:05 ` geoff
2004-11-24  9:25 ` Christopher Nielsen

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=ff40be23b3e4122f64070e6c29a870ff@plan9.bell-labs.com \
    --to=jmk@plan9.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /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).