C.6. Glock 跟踪点
跟踪点也用于确认对缓冲控制的修正,方法是将其与 blktrace 输出结果一同使用,同时要了解磁盘布局。这样就有可能检查任何给出的 I/O 是否已使用正确的锁定发出或者完成,且目前尚无竟态出现。
gfs2_glock_state_change
跟踪点是最需要了解的一个。它跟踪 glock 的每次状态更改,从创建之初直到到使用 gfs2_glock_put
降级,以及最后使用 NL 取消传输锁定。总是在状态更改发生前设定 I(锁定的)glock 标签,直到最后完成后才会清除。在状态更改期间绝不会有任何分配的拥有者(H glock 拥有者标签)。如果有任何排队的拥有者,他们总是出于 W(等待中)专题。当状态更改完成后,可在清除 I glock 标签前为拥有者分配标签,这是最后的操作。
gfs2_demote_rq
跟踪点一直跟踪本地和远程降级请求。假设在该节点在还有足够的内存,本地降级请求很少见,同时大多数经常由卸载或者偶尔的内存回收产生。远程降级请求数是节点间就某个具体内节点或者资源组进行竞争的指数。
当为拥有者分配一个锁定后会调用
gfs2_promote
,这发生在状态更改的最后阶段,或者由于 glock 状态已被缓存到适当的形式的锁定而可以立即分配的锁定请求中。如果该拥有者是这个 glock 的第一个使用者,那么为那个拥有者设定 f(第一)标签。目前只在资源组中使用。