On Thu, Mar 8, 2012 at 3:30 PM, Ronny Meeus <ronny.me...@gmail.com> wrote: > Hello > > I'm are using the xenomai-forge pSOS skin (Mercury). > My application is running on a P4040 (Freescale PPC with 4 cores). > Some code snippets are put in this mail but the complete testcode is > also attached. > > I have a test task that just consumes the CPU: > > int run_test = 1; > static void perform_work(u_long counter,u_long b,u_long c,u_long d) > { > int i; > while (run_test) { > for (i=0;i<100000;i++); > (*(unsigned long*)counter)++; > } > while (1) tm_wkafter(1000); > } > > If I create 2 instances of this task with the T_SLICE option set: > > t_create("WORK",10,0,0,0,&tid); > t_start(tid,T_TSLICE, perform_work, args); > > > I see that only 1 task is consuming CPU. > > # taskset 1 ./roundrobin.exe & > # 0"000.543| [main] SCHED_RT priorities => [1 .. 99] > 0"000.656| [main] SCHED_RT.99 reserved for IRQ emulation > 0"000.692| [main] SCHED_RT.98 reserved for scheduler-lock emulation > 0 -> 6602 > 1 -> 0 > > If I adapt the code so that I call in my init the threadobj_start_rr > function, I see that the load is equally distributed over the 2 > threads: > > # taskset 1 ./roundrobin.exe & > # 0"000.557| [main] SCHED_RT priorities => [1 .. 99] > 0"000.672| [main] SCHED_RT.99 reserved for IRQ emulation > 0"000.708| [main] SCHED_RT.98 reserved for scheduler-lock emulation > 0 -> 3290 > 1 -> 3291 > > Here are the questions: > - why is the threadobj_start_rr function not called from the context > of the init of the psos layer. > - why is the roundrobin implemented in this way? If the tasks would be > mapped on the SCHED_RR instead of the SCHED_FF the Linux scheduler > would take care of this. > On the other hand, once the threadobj_start_rr function is called from > my init, and I create the tasks in T_NOTSLICE mode, the time-slicing > is still done. > > Thanks. > > --- > Ronny
Any comments on this? --- Ronny _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core