Current status of genode golang port

Alexander Tormasov a.tormasov at
Thu Nov 4 18:32:43 CET 2021

Implemented experimental stack switch for current genode 21.08/gcc10.3 (by opaque structure Thread rewriting) during setcontext()
Works  for many CPU, with gcc optimization turned on (tested on 4) on NOVA and linux x86_64, sometimes works on sel4 

To run need 2 repos:
(Need to checkout 21.08 branch)
(Need to checkout 21.08experimental)

I successfully run some tests with channels/async goroutines - some of them (Like Hanoi towers or barber serving) inside

All of them commented out - you can compile any between «package main» lines, or try your own

More details in

Note 1: As pointed by Use, I know that potentially it could fail if you try to acquire genode resources/caps directly from go code, while all tests and anything backend by libc port should work.

Note 2: sel4 problem: on my working copy it works always, while fresh rebuild fail during golang stack unwind - because of guard page «edge»  access. Still not able to debug…
Question: how to print call stack from page fault?
Error message below, I need to understand a reason, not just place - I know it inside function

Warning: page-fault, pager_object: pd='init -> test-go' thread='ep' ip=0x112938f pf-addr=0x403ff008


More information about the users mailing list