9.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(第一个)标记。目前,这只由资源组使用。