On 03/15/2012 08:49 PM, Ronny Meeus wrote: > 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?
I am afraid you will have to wait for Philippe to have time to answer you. I am a bit ignorant about the psos API, but most importantly completely ignorant of the mercury. I am working on forge, but mostly with cobalt. -- Gilles. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core