Threading woes

Taru Karttunen taruti at ...102...
Fri Sep 7 14:39:11 CEST 2012


Has anyone tested Genode with a large number of threads on different
platforms/kernels? Does it make more sense to just use 1:1 threading or
have userlevel soft threads (M:N) with the Genode implementation?

It seems that many platforms have currently quite low thread maximums.

Threads consume ram in core, but cpu session does not support upgrading
the ram amount. This can be fixed quite easily.

However a much more harder limitation is found in
base-foc/src/core/include/platform_pd.h on Fiasco.OC which defines
"THREAD_MAX = (1 << 6)" (64). Now this can be raised
to e.g. 256. But not very high since there is

1) an array of threads with static size
2) the memory layout selected

With these fixes one can spawn inside one process:
Around 43 threads on Nova.
Around 100 threads no Fiasco.OC.

Has anyone else hacked on this? What is the reasonable way forward?
- Taru Karttunen

More information about the users mailing list