C.6. Обработчики событий glock

Обработчики событий glock помогают провести анализ вывода blktrace, отследить состояние кэша, убедиться, что запросы ввода-вывода обрабатываются в подходящем режиме блокировки, и проверить уровень конкуренции блокировок.
gfs2_glock_state_change является одним из ключевых обработчиков: он следит за изменением состояния glock с момента создания и до его освобождения. В свою очередь, освобождение glock, которое знаменуется переходом из режима NL в незаблокированное состояние, контролируется обработчиком gfs2_glock_put. Как уже говорилось, на время изменения состояния устанавливается флаг «l» (locked), который предотвращает попытки перехвата блокировки. Остальные запросы будут ожидать в состоянии «W». После успешного изменения состояния блокировку можно будет перехватить.
gfs2_demote_rq отслеживает запросы снижения режима блокировки (локальные и удаленные). Если на узле достаточно памяти, то локальные запросы будут появляться редко и чаще всего будут иметь отношение к umount и операциям освобождения памяти, в то время как количество удаленных запросов напрямую отражает уровень конкуренции за доступ к inode или группе ресурсов.
Если блокировка предоставлена успешно, генерируется событие gfs2_promote. Обычно это происходит на последних стадиях изменения состояния glock или по запросу блокировки, которую можно установить сразу в силу того, что glock уже кэширует ее в подходящем режиме. Первый запрос, перехвативший glock, будет отмечен флагом «F» (First).