Hello Daniel,
On 01/14/2011 12:52 AM, Daniel Waddington - SISA wrote:
Hi,
Has anyone managed to get Pistachio+Genode with SMP+ia32 running? We have managed to get Pistachio+Genode+ia32 without SMP working fine.
that's nice to hear!
As soon as we compile SMP it goes into an endless loop.
Any ideas?
Well, I'm not sure what you exactly mean by 'it goes into an endless loop'. Do you mean the kernel or Genode's core? Do you have some serial output, or can you even enter the kernel-debugger?
In fact we normally only use the single-processor version of pistachio. Nevertheless, we've tested SMP support today, and there seems to be a general problem with SMP in the current version of pistachio. We got different races sometimes even before 'core' (Genode's roottask) got started.
In older versions of pistachio, SMP support seems to work, but there we got minor problems with the old mapping-database. Possibly the SMP version doesn't use the new mapping database implementation, at least in the version we've tested (from 08.01.2010). Probably, Genode can easily be reworked to use the old mapping semantic, but it has known stability problems.
I think a better way is to solve the presumptive, current SMP support problem in pistachio directly. You might ask the pistachio developers for help[1]. Maybe you can reproduce the SMP problems with a tiny example application?
Once, the pistachio port of Genode (formerly known as Bastei) was done by Julian Stecklina[2] as study work, he successfully implemented rudimentary SMP support into the cpu-session interface of Genode. So at least at that point SMP worked with the predecessor of Genode together, but that experimental code isn't part of Genode today.
Do you plan to extend Genode's cpu-session interface to support an explicit cpu-migration of threads, or do you want to do load-balance somehow implicitly?
Thanks Daniel Waddington
You're welcome.
regards Stefan Kalkowski
[1] http://l4ka.org/maillist.php [2] http://os.inf.tu-dresden.de/papers_ps/jstecklina-beleg.pdf