Menu Close

8.6. Glock 追踪点

追踪点也被设计为能够通过将缓存控制与 blktrace 输出合并,并了解磁盘布局来确认缓存控制的正确性。然后可以检查是否在正确锁定下发布并完成任意给定的 I/O,并且没有竞争。

gfs2_glock_state_change 追踪点是要理解的最重要的一点。它跟踪 glock 每次从初始创建到最终降级的状态更改,该演示以 gfs2_glock_put 结束,最终 NL 被解锁转换。l (locked) glock 标志总是在状态更改发生前设置,且只有在完成更改后才会清除。在状态更改过程中,不会有未允许的拥有者(H glock 拥有者标志)。如果有排队的拥有者,他们将总是处于 W(等待)状态。当完成了状态更改后,允许拥有者可能是清除 l glock 标签前的最后操作。

gfs2_demote_rq 追踪点会跟踪降级请求,包括本地和远程的降级请求。假设节点上有足够的内存,本地降级请求将很少出现,最常见的是由 umount 创建,或者偶尔内存被重新声明。远程降级请求数量是节点针对特定内节点或资源组间争用的指标。

gfs2_glock_lock_time 追踪点提供了请求到 DLM 所需时间的信息。阻塞(b)标志被加入到 glock 中,专门用于与这个追踪点结合使用。

当为拥有者授予锁定时,会调用 gfs2_promote,这是作为状态更改的最后阶段,或者请求锁定时,可能会因为 glock 状态已缓存合适的模式而立即授予该拥有者。如果拥有者是授予这个 glock 的第一个拥有者,那么就会在该拥有者中设定 f(第一个)标记。目前,这只由资源组使用。