From 591ea45177a9d64daf6e7b91864f82664925cc8b Mon Sep 17 00:00:00 2001 From: jacob Date: Tue, 9 Nov 2004 18:31:45 +0000 Subject: [PATCH] b=4922 r=adilger - add pid to ldlm debugging output (4922) --- lustre/ChangeLog | 1 + lustre/include/linux/lustre_dlm.h | 22 ++++++++++++++-------- lustre/ldlm/ldlm_lock.c | 5 +++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 95e485a..027fab1 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -8,6 +8,7 @@ tbd Cluster File Systems, Inc. - reorganization of lov code - single portals codebase - Infiniband NAL + - add pid to ldlm debugging output (4922) tbd Cluster File Systems, Inc. * version 1.2.8 diff --git a/lustre/include/linux/lustre_dlm.h b/lustre/include/linux/lustre_dlm.h index 36740b9..8692e5c 100644 --- a/lustre/include/linux/lustre_dlm.h +++ b/lustre/include/linux/lustre_dlm.h @@ -246,6 +246,8 @@ struct ldlm_lock { /* Server-side-only members */ struct list_head l_pending_chain; /* callbacks pending */ unsigned long l_callback_timeout; + + __u32 l_pid; /* pid which created this lock */ }; #define LDLM_PLAIN 10 @@ -304,14 +306,15 @@ do { \ CDEBUG(level, "### " format \ " ns: \?\? lock: %p/"LPX64" lrc: %d/%d,%d mode: %s/%s "\ "res: \?\? rrc=\?\? type: \?\?\? flags: %x remote: " \ - LPX64" expref: %d\n" , ## a, lock, \ + LPX64" expref: %d pid: %u\n" , ## a, lock, \ lock->l_handle.h_cookie, atomic_read(&lock->l_refc), \ lock->l_readers, lock->l_writers, \ ldlm_lockname[lock->l_granted_mode], \ ldlm_lockname[lock->l_req_mode], \ lock->l_flags, lock->l_remote_handle.cookie, \ lock->l_export ? \ - atomic_read(&lock->l_export->exp_refcount) : -99); \ + atomic_read(&lock->l_export->exp_refcount) : -99, \ + lock->l_pid); \ break; \ } \ if (lock->l_resource->lr_type == LDLM_EXTENT) { \ @@ -319,7 +322,7 @@ do { \ " ns: %s lock: %p/"LPX64" lrc: %d/%d,%d mode: %s/%s " \ "res: "LPU64"/"LPU64" rrc: %d type: %s ["LPU64"->"LPU64\ "] (req "LPU64"->"LPU64") flags: %x remote: "LPX64 \ - " expref: %d\n" , ## a, \ + " expref: %d pid: %u\n" , ## a, \ lock->l_resource->lr_namespace->ns_name, lock, \ lock->l_handle.h_cookie, atomic_read(&lock->l_refc), \ lock->l_readers, lock->l_writers, \ @@ -334,7 +337,8 @@ do { \ lock->l_req_extent.start, lock->l_req_extent.end, \ lock->l_flags, lock->l_remote_handle.cookie, \ lock->l_export ? \ - atomic_read(&lock->l_export->exp_refcount) : -99); \ + atomic_read(&lock->l_export->exp_refcount) : -99, \ + lock->l_pid); \ break; \ } \ if (lock->l_resource->lr_type == LDLM_FLOCK) { \ @@ -342,7 +346,7 @@ do { \ " ns: %s lock: %p/"LPX64" lrc: %d/%d,%d mode: %s/%s " \ "res: "LPU64"/"LPU64" rrc: %d type: %s pid: %d " \ "["LPU64"->"LPU64"] flags: %x remote: "LPX64 \ - " expref: %d\n" , ## a, \ + " expref: %d pid: %u\n" , ## a, \ lock->l_resource->lr_namespace->ns_name, lock, \ lock->l_handle.h_cookie, atomic_read(&lock->l_refc), \ lock->l_readers, lock->l_writers, \ @@ -357,14 +361,15 @@ do { \ lock->l_policy_data.l_flock.end, \ lock->l_flags, lock->l_remote_handle.cookie, \ lock->l_export ? \ - atomic_read(&lock->l_export->exp_refcount) : -99); \ + atomic_read(&lock->l_export->exp_refcount) : -99, \ + lock->l_pid); \ break; \ } \ { \ CDEBUG(level, "### " format \ " ns: %s lock: %p/"LPX64" lrc: %d/%d,%d mode: %s/%s " \ "res: "LPU64"/"LPU64" rrc: %d type: %s flags: %x " \ - "remote: "LPX64" expref: %d\n" , ## a, \ + "remote: "LPX64" expref: %d pid: %u\n" , ## a, \ lock->l_resource->lr_namespace->ns_name, \ lock, lock->l_handle.h_cookie, \ atomic_read (&lock->l_refc), \ @@ -377,7 +382,8 @@ do { \ ldlm_typename[lock->l_resource->lr_type], \ lock->l_flags, lock->l_remote_handle.cookie, \ lock->l_export ? \ - atomic_read(&lock->l_export->exp_refcount) : -99); \ + atomic_read(&lock->l_export->exp_refcount) : -99, \ + lock->l_pid); \ } \ } while (0) diff --git a/lustre/ldlm/ldlm_lock.c b/lustre/ldlm/ldlm_lock.c index 86550e9..f690752 100644 --- a/lustre/ldlm/ldlm_lock.c +++ b/lustre/ldlm/ldlm_lock.c @@ -753,6 +753,7 @@ struct ldlm_lock *ldlm_lock_create(struct ldlm_namespace *ns, lock->l_blocking_ast = blocking; lock->l_completion_ast = completion; lock->l_glimpse_ast = glimpse; + lock->l_pid = current->pid; if (lvb_len) { lock->l_lvb_len = lvb_len; @@ -1140,9 +1141,9 @@ void ldlm_lock_dump(int level, struct ldlm_lock *lock, int pos) return; } - CDEBUG(level, " -- Lock dump: %p/"LPX64" (rc: %d) (pos: %d)\n", + CDEBUG(level, " -- Lock dump: %p/"LPX64" (rc: %d) (pos: %d) (pid: %d)\n", lock, lock->l_handle.h_cookie, atomic_read(&lock->l_refc), - pos); + pos, lock->l_pid); if (lock->l_conn_export != NULL) obd = lock->l_conn_export->exp_obd; if (lock->l_export && lock->l_export->exp_connection) { -- 1.8.3.1