Greetings all,

I am working on a real time power pc embedded system which uses xenomai. I am 
presently noticing a CPU utilization which I am not able to explain. Will 
highly appreciate your opinion on the problem described below.

I'm summarizing my understanding. Pl feel free to correct me.
I'm using /proc/xenomai/stat to get the CPU util. I'm assuming that the ROOT 
thread captures the %CPU spent in Linux/secnodary and each xenomai thread 
listed, captures the %CPU in primary domain. If a thread transitions to the 
secondary, then I'm assuming that the %util in secondary domain will get 
accounted against ROOT and the actual % usage in primary will get accounted 
against the thread.

I'm starting a xenomai thread using rt_task_spawn. 
        rt_task_spawn(&task2, "Task 2 ", STACK_SIZE, 11, 0, task2_func, NULL);

The thread invoking rt_task_spawn, sleeps for a long long time without doing 
anything, or I can pause it.

The xenomai task does rt_printfs periodically.

With this setup, I was hoping to see 0% CPU util for the linux task in top.

Contrary to this expectation, I notice CPU util as high as 3.1% when I top the 
linux process:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 7988 root      20   0  4940 4376 3688 S  3.1  0.8   0:01.65 a.out      

The CPU % varies based on the activity I do in the primary domain. i.e. more 
rt_printfs more %CPU in both primary and secondary.


If the linux process is sleeping, why do I see a CPU util against the process? 
Why is the CPU % util vary based on the activity I do in the primary domain?

Thanks for taking the time to look at the question.

Would highly appreciate your inputs.

Warm Rgds,
Xenomai-core mailing list

Reply via email to