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
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.
Xenomai-core mailing list