How to make task run on different cores?
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Tue Jun 11 23:07:01 CEST 2013
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
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list