检查Linux中代码的两点之间是否发生了抢占

时间:2015-10-02 11:09:49

标签: linux linux-kernel scheduled-tasks scheduler preemption

我有一个在Linux内核上运行的应用程序(一个简单的C代码)。我正在测量代码的两点之间的时间。我想知道是否有任何其他进程或调度程序本身在这两点之间抢占了我的应用程序。有没有办法找到这个。

1 个答案:

答案 0 :(得分:0)

识别代码中两点之间是否有任何上下文切换的一种方法是使用

  

getrusage(int who,struct rusage * usage)

调用并比较 ru_nvcsw &的值的 ru_nivcsw

   struct rusage {
       ...
       long   ru_nvcsw;         /* voluntary context switches */
       long   ru_nivcsw;        /* involuntary context switches */
   };