Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ocfs2/userdlm: Add tracing in userdlm

Make use of the newly added BASTS masklog to trace ASTs and BASTs in userdlm.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>

authored by

Sunil Mushran and committed by
Joel Becker
6fcef3f0 9b915181

+25 -19
+25 -19
fs/ocfs2/dlmfs/userdlm.c
··· 128 128 struct user_lock_res *lockres = user_lksb_to_lock_res(lksb); 129 129 int status; 130 130 131 - mlog(0, "AST fired for lockres %.*s\n", lockres->l_namelen, 132 - lockres->l_name); 131 + mlog(ML_BASTS, "AST fired for lockres %.*s, level %d => %d\n", 132 + lockres->l_namelen, lockres->l_name, lockres->l_level, 133 + lockres->l_requested); 133 134 134 135 spin_lock(&lockres->l_lock); 135 136 ··· 215 214 { 216 215 struct user_lock_res *lockres = user_lksb_to_lock_res(lksb); 217 216 218 - mlog(0, "Blocking AST fired for lockres %.*s. Blocking level %d\n", 219 - lockres->l_namelen, lockres->l_name, level); 217 + mlog(ML_BASTS, "BAST fired for lockres %.*s, blocking %d, level %d\n", 218 + lockres->l_namelen, lockres->l_name, level, lockres->l_level); 220 219 221 220 spin_lock(&lockres->l_lock); 222 221 lockres->l_flags |= USER_LOCK_BLOCKED; ··· 233 232 { 234 233 struct user_lock_res *lockres = user_lksb_to_lock_res(lksb); 235 234 236 - mlog(0, "UNLOCK AST called on lock %.*s\n", lockres->l_namelen, 237 - lockres->l_name); 235 + mlog(ML_BASTS, "UNLOCK AST fired for lockres %.*s, flags 0x%x\n", 236 + lockres->l_namelen, lockres->l_name, lockres->l_flags); 238 237 239 238 if (status) 240 239 mlog(ML_ERROR, "dlm returns status %d\n", status); ··· 303 302 struct ocfs2_cluster_connection *conn = 304 303 cluster_connection_from_user_lockres(lockres); 305 304 306 - mlog(0, "processing lockres %.*s\n", lockres->l_namelen, 307 - lockres->l_name); 305 + mlog(0, "lockres %.*s\n", lockres->l_namelen, lockres->l_name); 308 306 309 307 spin_lock(&lockres->l_lock); 310 308 ··· 321 321 * flag, and finally we might get another bast which re-queues 322 322 * us before our ast for the downconvert is called. */ 323 323 if (!(lockres->l_flags & USER_LOCK_BLOCKED)) { 324 + mlog(ML_BASTS, "lockres %.*s USER_LOCK_BLOCKED\n", 325 + lockres->l_namelen, lockres->l_name); 324 326 spin_unlock(&lockres->l_lock); 325 327 goto drop_ref; 326 328 } 327 329 328 330 if (lockres->l_flags & USER_LOCK_IN_TEARDOWN) { 331 + mlog(ML_BASTS, "lockres %.*s USER_LOCK_IN_TEARDOWN\n", 332 + lockres->l_namelen, lockres->l_name); 329 333 spin_unlock(&lockres->l_lock); 330 334 goto drop_ref; 331 335 } 332 336 333 337 if (lockres->l_flags & USER_LOCK_BUSY) { 334 338 if (lockres->l_flags & USER_LOCK_IN_CANCEL) { 339 + mlog(ML_BASTS, "lockres %.*s USER_LOCK_IN_CANCEL\n", 340 + lockres->l_namelen, lockres->l_name); 335 341 spin_unlock(&lockres->l_lock); 336 342 goto drop_ref; 337 343 } ··· 358 352 if ((lockres->l_blocking == DLM_LOCK_EX) 359 353 && (lockres->l_ex_holders || lockres->l_ro_holders)) { 360 354 spin_unlock(&lockres->l_lock); 361 - mlog(0, "can't downconvert for ex: ro = %u, ex = %u\n", 362 - lockres->l_ro_holders, lockres->l_ex_holders); 355 + mlog(ML_BASTS, "lockres %.*s, EX/PR Holders %u,%u\n", 356 + lockres->l_namelen, lockres->l_name, 357 + lockres->l_ex_holders, lockres->l_ro_holders); 363 358 goto drop_ref; 364 359 } 365 360 366 361 if ((lockres->l_blocking == DLM_LOCK_PR) 367 362 && lockres->l_ex_holders) { 368 363 spin_unlock(&lockres->l_lock); 369 - mlog(0, "can't downconvert for pr: ex = %u\n", 370 - lockres->l_ex_holders); 364 + mlog(ML_BASTS, "lockres %.*s, EX Holders %u\n", 365 + lockres->l_namelen, lockres->l_name, 366 + lockres->l_ex_holders); 371 367 goto drop_ref; 372 368 } 373 369 ··· 377 369 new_level = user_highest_compat_lock_level(lockres->l_blocking); 378 370 lockres->l_requested = new_level; 379 371 lockres->l_flags |= USER_LOCK_BUSY; 380 - mlog(0, "Downconvert lock from %d to %d\n", 381 - lockres->l_level, new_level); 372 + mlog(ML_BASTS, "lockres %.*s, downconvert %d => %d\n", 373 + lockres->l_namelen, lockres->l_name, lockres->l_level, new_level); 382 374 spin_unlock(&lockres->l_lock); 383 375 384 376 /* need lock downconvert request now... */ ··· 438 430 goto bail; 439 431 } 440 432 441 - mlog(0, "lockres %.*s: asking for %s lock, passed flags = 0x%x\n", 442 - lockres->l_namelen, lockres->l_name, 443 - (level == DLM_LOCK_EX) ? "DLM_LOCK_EX" : "DLM_LOCK_PR", 444 - lkm_flags); 433 + mlog(ML_BASTS, "lockres %.*s, level %d, flags = 0x%x\n", 434 + lockres->l_namelen, lockres->l_name, level, lkm_flags); 445 435 446 436 again: 447 437 if (signal_pending(current)) { ··· 609 603 struct ocfs2_cluster_connection *conn = 610 604 cluster_connection_from_user_lockres(lockres); 611 605 612 - mlog(0, "asked to destroy %.*s\n", lockres->l_namelen, lockres->l_name); 606 + mlog(ML_BASTS, "lockres %.*s\n", lockres->l_namelen, lockres->l_name); 613 607 614 608 spin_lock(&lockres->l_lock); 615 609 if (lockres->l_flags & USER_LOCK_IN_TEARDOWN) {