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. ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Taa897d94ceabe83d-M3b7aa475c5c2e32f7adf7a81 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription