diff options
| -rw-r--r-- | schulung_tools/sleep_wake/README | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/schulung_tools/sleep_wake/README b/schulung_tools/sleep_wake/README index b18efa9..5e4da5c 100644 --- a/schulung_tools/sleep_wake/README +++ b/schulung_tools/sleep_wake/README @@ -1,19 +1,27 @@ #!/bin/sh -sudo trace-cmd record -e sched:* -e timer:* -e syscalls:* chrt -f 98 /bin/sleep 2 +sudo trace-cmd record \ + -e syscalls:sys_enter_nanosleep \ + -e timer:hrtimer_start \ + -e sched:sched_switch \ + -e irq_vectors:local_timer_entry \ + -e timer:hrtimer_expire_entry \ + -e sched:sched_wakeup \ + -e syscalls:sys_exit_nanosleep \ + chrt -f 98 /bin/sleep 2 -# Notice the chain of events: +# Notice the chain of events (and their latencies!): # -# sys_enter_nanosleep -# hrtimer_init -# hrtimer_start -# sched_switch -# ... -# hrtimer_cancel -# hrtimer_expire_entry -# sched_wakeup -# hrtimer_expire_exit -# sched_switch -# sys_exit_nanosleep +# sys_enter_nanosleep (call to clock_nanosleep()) +# hrtimer_start (hrtimer set) +# sched_switch (go to sleep) +# +# ... about 2 seconds later ... +# +# local_timer_entry (cpu in irq vector) +# hrtimer_expire_entry (hrtimer callback) +# sched_wakeup (wake the sleeping task) +# sched_switch (task scheduled) +# sys_exit_nanosleep (return from clock_nanosleep()) kernelshark |
