How to make task run on different cores?

Adam Lackorzynski adam at
Tue Jun 11 23:07:01 CEST 2013


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

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                 adam at

More information about the l4-hackers mailing list