Hi, as a nob kernel hacker I want to capture in the rt-class the following events: task gets preempted, task gets blocked, task wakes up from being blocked, task tick. I got the following questions:


1. When a rt-task is about to be preempted in the rt-class the task_preempt_curr_rt(..) is called, is this correct?

2. When a rt-task is running in the CPU the function task_tick_rt(..) is called every tick, 1 tick = 1ns by default. Is this correct?

3. When a rt-task gets blocked the function dequeue_task_rt(..) is called, is this correct?

4. When a rt-task wakes up from being blocked, either enqueue_task_rt(..) or requeue_task_rt(..) is called, is this correct?

5. If i want to account for CPU-time in a rt-task, which clock to use? will sched_clock() be a good choice?


I'm pretty sure about 1 and 2, but not so sure about 3, 4 and 5, any help is welcome.

Thanks.