Hi,
On Mon Jun 10, 2013 at 23:05:53 +0800, Chao-Jui Chang wrote:
I start up 4 L4Linux on intel core2quad platform. In jdb, I can see 4 vmlinuz on the task list (command 's' in jdb). Next, I run 4 benchmarks, one in each L4Linux, but the experiment result shows that the 4 benchmark are running on the same core. The kernel seems not scheduling them to different cpu cores.
Yes, not on its own.
I have enabled "Enable multi processor support" option in fiasco config menu and the jdb shows there are 4 cores:
*** Cut start ***
CPU 0 [f000d2a0]: IRQ ENTRY CPU 1 [f0022451]: Maskable Interrupt CPU 2 [f0022451]: Maskable Interrupt CPU 3 [f0022451]: Maskable Interrupt
jdb: g *** Cut end ***
But the running benchmarks are not showing on the task list(command 's' in jdb), is it normal? I remember in ARM L4Linux, the task list will show 'vmlinuz', 'sh', 'benchmark', ...,etc.
Should be the same whether its x86 or arm, there's no difference in this regard.
For core placement, add scheduler = L4.Env.user_factory:create(L4.Proto.Scheduler, 0x18, 0x8, cpumask), to the environment of L4Linux start call (also have a look at l4/conf/examples/x86-fb.cfg). E.g. to place on core 2 make cpumask a 4, and so on.
Adam