C.6. Tracepoints do Glock
Os tracepoints também são projetados para serem capazes de confirmar a exatidão do controle de cache, combinando-os com o resultado do blktrace e o conhecimento da disposição em disco. Em seguida, é possível verificar se qualquer I /O foi emitido e concluído sob o bloqueio correto, e que nenhum traço esteja presente.
O tracepoint
gfs2_glock_state_change
é o mais importante de se entender. Ele rastreia cada mudança de estado do glock a partir da criação inicial até o final do rebaixamento que finaliza com o gfs2_glock_put
e o final NL para desbloquear a transição. A bandeira l (locked) do glock é sempre definida antes da mudança de estado ocorrer e não será explicada até que ela seja finalizada. Não existem holders obtidos (a bandeira glock holder H) durante uma mudança de estado. Caso existam holders em fila, eles estarão sempre em W (waiting). Quando a mudança de estado estiver concluída, os holders podem receber direitos, o que é o final da operação antes da bandeira do glock l ser removida.
O tracepoint
gfs2_demote_rq
mantém o controle de pedidos de rebaixamento local e remoto. Assumindo que não há memória suficiente no nó, os pedidos de rebaixamento local raramente serão vistos, e na maioria das vezes serão criados por umount ou pela recuperação de memória ocasional. O número de pedidos de rebaixamento remoto é uma medida de luta entre nós por um inode em particular ou grupo de recursos.
Quando um holder recebe um bloqueio, o
gfs2_promote
é chamado, isto ocorre a medida que as estapas finais de uma mudança de estado se aproximam, ou ainda quando um bloqueio é requisitado, o qual pode ser obtido imediatamente devido ao estado do glock estar realizando um cache de um bloqueio de um modo apropriado. Se o holder for o primeiro a receber para este glock, então a bandeira f (flag) será definida neste holder. Isto é utilizado atualmente somente pelos grupos de recurso.