I've got mine today :-)
Scraping the RPi forum reveals that actually loading the right kernel image
is not the problem. The GPU can load the right kernel
depending on hardware (currently they can load an ARMv6 and ARMv7 image).
You could already also switch the CPU in the AArch64 mode:
https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=137963The bad news: their proprietary kernel parts are 32 bit only
and they don't want invest their time to fix that. I don't believe you could
switch the CPU to AArch64 just for the Go runtime, also unless somebody
puts his C hat on and fixes their kernel, RPi3 remains just about 30% faster
AAarch32 RPi2 :(
RPi3:go-tip version
go version devel +596df24 Thu Mar 3 09:09:16 2016 +0000 linux/arm
Board: 4 x ARMv7 cores available, ondemand governor (Pi3 rev 1.2, BCM2837 SoC with 1GB RAM by Sony)
Memory: 1008MB (split 976MB ARM, 32MB GPU) plus 953MB Swap
HW Block: | ARM | Core | H264 | SDRAM |
Min Freq: | 600MHz | 250MHz | 0MHz | 450MHz |
Max Freq: | 1200MHz | 400MHz | 300MHz | 450MHz |
Voltages: | 0, 1.3625V | +1, 1.2250V |
Other: temp_limit=85
Firmware: Feb 25 2016 14:25:47, version dea971b793dd6cf89133ede5a8362eb77e4f4ade (clean) (release)
cd /opt/gotip/src
git clean -fdx ..
export GOROOT_BOOTSTRAP=/opt/go16
/usr/bin/time -v ./all.bash
...
##### ../misc/cgo/testshared
ok _/opt/gotip/misc/cgo/testshared 74.534s
##### ../test/bench/go1
ok _/opt/gotip/test/bench/go1 12.125s
ALL TESTS PASSED
Command being timed: "./all.bash"
User time (seconds): 4362.70
System time (seconds): 262.92
Percent of CPU this job got: 310%
Elapsed (wall clock) time (h:mm:ss or m:ss): 24:48.00
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 321084
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 310
Minor (reclaiming a frame) page faults: 23412638
Voluntary context switches: 3680464
Involuntary context switches: 2845769
Swaps: 0
File system inputs: 199648
File system outputs: 631912
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
RPi2:
Board: 4 x ARMv7 cores available, ondemand governor (Pi2 Model B rev 1.1, BCM2836 SoC with 1GB RAM by Sony)
Memory: 1008MB (split 976MB ARM, 32MB GPU) plus 953MB Swap
HW Block: | ARM | Core | H264 | SDRAM |
Min Freq: | 600MHz | 250MHz | 0MHz | 483MHz |
Max Freq: | 1000MHz | 500MHz | 300MHz | 483MHz |
Voltages: | 0, 1.3125V | +2, 1.2500V |
Other: temp_limit=85
Firmware: Feb 25 2016 14:25:47, version dea971b793dd6cf89133ede5a8362eb77e4f4ade (clean) (release)
...
##### ../misc/cgo/testshared
ok _/opt/gotip/misc/cgo/testshared 116.848s
##### ../test/bench/go1
ok _/opt/gotip/test/bench/go1 23.867s
ALL TESTS PASSED
Command being timed: "./all.bash"
User time (seconds): 6233.10
System time (seconds): 505.62
Percent of CPU this job got: 315%
Elapsed (wall clock) time (h:mm:ss or m:ss): 35:35.45
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 317840
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 492
Minor (reclaiming a frame) page faults: 23409604
Voluntary context switches: 4294535
Involuntary context switches: 3438746
Swaps: 0
File system inputs: 286568
File system outputs: 632328
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0