【发布时间】:2009-05-11 15:18:16
【问题描述】:
我想知道当上下文切换发生时,是否有人知道有关 Linux 中时间戳计数器的更多详细信息?到目前为止,我的观点是,TSC 值在每个时钟周期内仅增加 1,无论是在内核模式下还是在用户模式下都是独立的。我现在使用 TSC 测量了一个应用程序的性能,它产生了 5 个 Mio 时钟周期的性能结果。然后,我对调度程序进行了一些更改,这意味着上下文切换需要更长的时间,例如2 个 Mio 循环而不是 500.000 个循环。有趣的是,当再次测量原始应用程序的性能时,它仍然需要 5 个 Mio 周期......所以我想知道为什么它没有花费更长的时间,因为上下文切换现在需要将近 2 个 Mio 时钟周期? (并且在应用程序执行期间至少出现 3 个上下文)。
时间戳计数器在内核模式期间是否以某种方式停用?还是在比赛切换时保存了 TSC 的内容?谢谢,如果有人能指出可能是什么问题!
【问题讨论】: