I'm a beginer in the Xenomai world.
I'm working on the Xenomai kernel in order to minimize the power
consumption, for my university final project
To do that I'm trying to implement OTE (one time extension).
For OTE, I need to know if tasks are in the ready queue that I can do
However I have also to know when the next periodic task will wake up to
know the available time that I can use to extends the current task.
But I didn't find this information.
I try this following things in the schedule function xnpod_schedule (pod.c):
To get the next timer that will wake up :
To get the date of the next wake up :
Then I compare this date with the date of the next ingoing task (except
the root task) with xnarch_get_cpu_tsc()
But the results aren't convincing :
Jul 1 11:13:23 rt-nocia kernel: [ 252.872275] now: 263916522565
Jul 1 11:13:23 rt-nocia kernel: [ 252.872285] Name thread out : trivial2
Jul 1 11:13:23 rt-nocia kernel: [ 252.872292] Name thread in : ROOT/0
Jul 1 11:13:23 rt-nocia kernel: [ 252.872297] nb in queue 0
Jul 1 11:13:23 rt-nocia kernel: [ 252.872303] next event *263920282098*
Jul 1 11:13:23 rt-nocia kernel: [ 252.872317]
Jul 1 11:13:24 rt-nocia kernel: [ 253.879348] now: *264923529578*
Jul 1 11:13:24 rt-nocia kernel: [ 253.879362] Name thread out : ROOT/0
Jul 1 11:13:24 rt-nocia kernel: [ 253.879369] Name thread in : trivial
Jul 1 11:13:24 rt-nocia kernel: [ 253.879374] nb in queue 1
The next event is 263920282098 and when the task is scheduling, the
current time is 264923529578.
Maybe it's because I have to get the second timer ?
Thanks in advance for any help!
Xenomai-core mailing list