9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Richard Miller <9fans@hamnavoe.com>
To: 9fans@9fans.net
Subject: 9pi update, Raspberry Pi 4, and go
Date: Fri, 22 May 2020 15:06:06 +0100	[thread overview]
Message-ID: <ee9f5bf0dc0d82a5b81744c3246cb241@hamnavoe.com> (raw)

I've updated the 9pi kernels on 9p.io (in /n/sources/contrib/miller/9pi[24],
source in /n/sources/contrib/miller/9/bcm).  The main change is a kmap
implementation so that large Raspberry Pi 4 boards can use the full 4GB of RAM
with a 32-bit kernel.  I've also eliminated a coherence bug which would render
a Pi4 catatonic (ie no interrupt response) under heavy loads involving lots of
floating point.  This was a subtle problem with the dynamic generation of arm
coprocessor instructions borrowed from the teg2 port, which was inefficient
and fragile and didn't quite cope with the more aggressive out-of-order
execution of the cortex-a72.  My solution was to replace the whole of coproc.c
with a few hard-coded coprocessor access instructions in l.s; not many are
actually needed.

Two other changes affect all Raspberry Pi models: A *kernelpercent value can
be given in cmdline.txt (and the default is reduced to 10 from 20, with a
maximum of 256MB).  And a small tweak to the SD driver avoids floods of error
messages when you swap SD cards.

The 9pi.img.gz SD card image has also been updated.  Besides the new kernels,
and a long overdue rebuild of the lookman(1) index, I've included a full
go language distribution.  If you regard this as unwelcome bloatware, just
delete /sys/lib/go1.14 (and also /sys/lib/tls/ca.pem and /rc/bin/git, which
are required for the "go get" command to work).

The go command and packages have been built with GOARM=7 so they won't work
on the old first generation Raspberry Pi.  If this is a problem for anyone,
contact me off list for a set of GOARM=6 binaries.


                 reply	other threads:[~2020-05-22 14:06 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=ee9f5bf0dc0d82a5b81744c3246cb241@hamnavoe.com \
    --to=9fans@hamnavoe.com \
    --cc=9fans@9fans.net \
    /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).