now you can run http web server based on golang in genode 21.11
Alexander Tormasov
a.tormasov at innopolis.ru
Wed Dec 22 16:03:15 CET 2021
>
> The initial delay of the seL4 version possibly depends on the amount of
> physical memory used. At boot time, physical memory gets converted into
> seL4 kernel objects in [1] (if I remember right). To see the effect, you
> may try tweaking the Qemu's -m argument.
not sure - delay time too big.
Initially I think that it related to probe of big ranges of addresses used by attach_at() during allocator arena initialisation (I already send a letter with question about difference between seL4 and NOVA memory and receive answer, thanks). Anyway, I found that this part run relatively fast, so, not a case (while I need to remove error messages about failed allocation attempt).
Now start of sel4 golang code requires literally 2-3 minutes even for 512M ram for qemu, while for the same qemu and same code NOVA run in seconds.
I don’t able to check this with current version - seems that this is specifics golang runtime. Still suspect timers/etc.
Anyway, this could be a combination of timer and genode scheduler which is not that tailored for such workload, as I suspect.
Will continue check after finalising of porting for arm64, most of it done.
For aarch64 it is not clear for me what to do with so called aarch64 extensions which handled differently in libc sources [2] (has traditional structure ucontext for generic registers and floating point ones), and for glibc aarch64 [1] which have somehow similar structure for generic registers and just additional page attached to context where it put some magic and additional fields and fill by other FP registers.
I choose to move closer to libc structure to minimise changes in related structures while have some doubts about different dialects of ARM64 supported. I run it only inside qemu.
[1] https://github.com/bminor/glibc/blob/master/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
[2] https://github.com/freebsd/freebsd-src/blob/master/sys/arm64/include/ucontext.h
More information about the users
mailing list