From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 18185 invoked from network); 28 Nov 2022 14:17:33 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 28 Nov 2022 14:17:33 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 693EC41BBC; Tue, 29 Nov 2022 00:17:28 +1000 (AEST) Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by minnie.tuhs.org (Postfix) with ESMTPS id 4CDE341BBB for ; Tue, 29 Nov 2022 00:17:24 +1000 (AEST) Received: by mail-ej1-f53.google.com with SMTP id fy37so26095216ejc.11 for ; Mon, 28 Nov 2022 06:17:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=13pTmVo+JulT2m9nAcgZX6pBrB5B1c0Q56VH5CKbc4I=; b=ujF/qQv3HW2d7Wvju36v8o9Kvm8169y2sVlSYnmbg9jTLQ/HtKZjzL7mss/lZQ7vTp AP148A8T506/dDLtvp7ZKIxEiE8/KBVz8mWixnEhZnpT8g0/NZXwc3A9mXJaIPPRJitY JeQMX1QkDRER2mSwDPh5VKFHZJnTx6nttXYh6YjKtTFQcUhLLZhcLOYGoS3iweHYEK3h TmdsJGitaTYQkB5VLsBCYbyc5C/smmFUDc+pJnEID/4tFzyhW3giQWlE5EI7dwc50jGo irv8WXYeHz8TWXW+SstwYQ0N8MEuJEX3l0JQqw8QzNW9wzcEPGR264zi51StBFY4VNXP ychw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=13pTmVo+JulT2m9nAcgZX6pBrB5B1c0Q56VH5CKbc4I=; b=HnxNY+IPfma00JAW/kF0Ld6+pWG4o37YGQZFJhh07MLZyUZ9f4fJbgxTS4TZZbbgu1 mk2zUE54UkKnKmMP6XEi/sA5iOK8AyBGNqDGrsiyR7UdW6H3p7dfCsQVP0zWJqOTSSsu Usy5zFQy1Obsd1ri+3c8uPz0FEccV0jNQ5jd830Ksif3IA/INF1SGAg4Di4q6PQwWyn0 3zpO2JD2nhU3HJ1lbM10yUb4awCy56lB9ZZpZX0ZxQHmbvjs41juYDCtwvao7MLT2hJ4 IQVnvao9Ov0RgIEN4cOBIeIJREgq+jw6VRY+P8UHpz2kx9hwpn5AzR9F/7b9egah4ttv UYww== X-Gm-Message-State: ANoB5pmz3GHtaPFYnDwX5JlR18V2X/DOXWky5pxbg+bib4Eni17r798V zHqGj8dF05GkJURc8YlOFpcSnYJaDlbwQBBzrIkyKA== X-Google-Smtp-Source: AA0mqf7gNcImNowpaZZnmf0Z718qHOtWFyvIfiJHbGDZeKdx2OgC3ipZqrWQhW2eVSPRoso4aUWiR1uuGgO4MdC+Bb4= X-Received: by 2002:a17:907:206f:b0:7bb:cc6b:86d6 with SMTP id qp15-20020a170907206f00b007bbcc6b86d6mr16599860ejb.252.1669644982799; Mon, 28 Nov 2022 06:16:22 -0800 (PST) MIME-Version: 1.0 References: <7C8CADAB-65AA-4841-AFA1-569A9651E56D@planet.nl> In-Reply-To: From: Warner Losh Date: Mon, 28 Nov 2022 07:16:11 -0700 Message-ID: To: Clem Cole Content-Type: multipart/alternative; boundary="00000000000019e3bd05ee888445" Message-ID-Hash: BSGCAHDLAIVRYHASXQJU6Y64RKNTRQV2 X-Message-ID-Hash: BSGCAHDLAIVRYHASXQJU6Y64RKNTRQV2 X-MailFrom: wlosh@bsdimp.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tuhs.tuhs.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Paul Ruizendaal , The Eunuchs Hysterical Society X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: Early multiprocessor Unix List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --00000000000019e3bd05ee888445 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Nov 28, 2022, 7:07 AM Clem Cole wrote: > As far as I know, the first non-commercial work was done at the Naval Pos= t > Grad school with V6. I have never seen the code for it, only a paper, so= I > don't know too much about it to comment. > I tried to find the code a couple of years ago, but no joy. And the timing suggested he may have started with/used V5, since the paper is dated June 75 and V6 was released in May 75. Warner A few years later (1980), Goble's work became the Purdue Vax [ > https://en.wikipedia.org/wiki/George_H._Goble] - which used a > master-slave configuration. He spliced a second 780 CPU onto the SMB and, > with some interesting work, allowed the second CPU to run user code. Thi= s > was extremely effective for their usage case -- timesharing of students. > If we don't have the code on TUHS, we should probably dig it up, as it wa= s > widely distributed. The other thing he did was splice an 11/40 onto the U= BA > of the same system for debugging - which was a pretty cool hack. He foun= d > a couple of interesting BSD kernel issues, including a famous CVE using h= is > real-time monitor -- there is a USENIX paper on that tool that is work > checking out. > > The first commercial MP Unix was the Masscomp MC500/MP, which was > originally developed as Goble-style Master/Slave and released in RTU 2.0. > A year later, with RTU 3.0 and the release of the MC5000 family, it was > fully SMP. > > After that, several SMP UNIX started to appear. Each uses its own lock > scheme. If you are interested, I recommend getting a copy of Schimmel's > book: 'Unix on Modern Processors' which discusses many (most) of the > challenges. > > > =E1=90=A7 > > On Mon, Nov 28, 2022 at 8:25 AM Paul Ruizendaal wrote: > >> The discussion about the 3B2 triggered another question in my head: what >> were the earliest multi-processor versions of Unix and how did they rela= te? >> >> My current understanding is that the earliest one is a dual-CPU VAX >> system with a modified 4BSD done at Purdue. This would have been late 19= 81, >> early 1982. I think one CPU was acting as master and had exclusive kerne= l >> access, the other CPU would only run user mode code. >> >> Then I understand that Keith Kelleman spent a lot of effort to make Unix >> run on the 3B2 in a SMP setup, essentially going through the source and >> finding all critical sections and surrounding those with spinlocks. This >> would be around 1983, and became part of SVr3. I suppose that the =E2=80= =9Cspl()=E2=80=9D >> calls only protected critical sections that were shared between the main >> thread and interrupt sequences, so that a manual review was necessary to >> consider each kernel data structure for parallel access issues in the ca= se >> of 2 CPU=E2=80=99s. >> >> Any other notable work in this area prior to 1985? >> >> How was the SMP implementation in SVr3 judged back in its day? >> >> Paul > > --00000000000019e3bd05ee888445 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable



A few years l= ater (1980), Goble's work became the Purdue Vax [https://en.wikipedia.org/wiki/George_H._Goble] - which used a = master-slave configuration. He spliced a second 780 CPU onto the SMB and, w= ith some interesting work, allowed the second CPU to run user code.=C2=A0 T= his was extremely effective for their usage case -- timesharing of students= .=C2=A0 If we don't have the code on TUHS, we should probably=C2=A0dig = it up, as it was widely distributed. The other thing he did was splice an 1= 1/40 onto the UBA of the same system for debugging - which was a pretty coo= l hack.=C2=A0 He found a couple of interesting BSD kernel issues, including= a famous CVE using his real-time monitor -- there is a USENIX paper on tha= t tool that is work checking out.

The first commerci= al=C2=A0MP Unix was the Masscomp MC500/MP, which was originally developed a= s Goble-style Master/Slave and released in RTU 2.0.=C2=A0 A year later, wit= h RTU 3.0 and the release of the MC5000 family, it was fully SMP.
<= br>
After that, several SMP UNIX started to appear.=C2=A0 =C2=A0Eac= h uses its own lock scheme.=C2=A0 =C2=A0If you are interested, I recommend = getting a copy of Schimmel's book: 'Unix on Modern Processors' = which discusses many (most) of the challenges.


=3D""=E1=90=A7

On Mon, Nov 28, 2022 at 8:25 AM Paul Ruizenda= al <pnr@planet.nl> wrote:
The discussion about the 3B2 triggered another qu= estion in my head: what were the earliest multi-processor versions of Unix = and how did they relate?

My current understanding is that the earliest one is a dual-CPU VAX system = with a modified 4BSD done at Purdue. This would have been late 1981, early = 1982. I think one CPU was acting as master and had exclusive kernel access,= the other CPU would only run user mode code.

Then I understand that Keith Kelleman spent a lot of effort to make Unix ru= n on the 3B2 in a SMP setup, essentially going through the source and findi= ng all critical sections and surrounding those with spinlocks. This would b= e around 1983, and became part of SVr3. I suppose that the =E2=80=9Cspl()= =E2=80=9D calls only protected critical sections that were shared between t= he main thread and interrupt sequences, so that a manual review was necessa= ry to consider each kernel data structure for parallel access issues in the= case of 2 CPU=E2=80=99s.

Any other notable work in this area prior to 1985?

How was the SMP implementation in SVr3 judged back in its day?

Paul
--00000000000019e3bd05ee888445--