aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dlm/dlmmaster.c
diff options
context:
space:
mode:
authorSunil Mushran <sunil.mushran@oracle.com>2009-02-26 18:00:43 -0500
committerMark Fasheh <mfasheh@suse.com>2009-04-03 14:39:21 -0400
commit2041d8fdcec7603401829f60810c1dbd5e96c043 (patch)
treeb11697962ccdec9556e66e6c261ecff33d1fb468 /fs/ocfs2/dlm/dlmmaster.c
parent67ae1f0604da3bcf3ed6dec59ac71d07e54a404c (diff)
ocfs2/dlm: Track number of mles
The lifetime of a mle is limited to the duration of the lockres mastery process. While typically this lifetime is fairly short, we have noticed the number of mles explode under certain circumstances. This patch tracks the number of each different types of mles and should help us determine how best to speed up the mastery process. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/dlm/dlmmaster.c')
-rw-r--r--fs/ocfs2/dlm/dlmmaster.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
index 604552ebb46..acfc9288d5c 100644
--- a/fs/ocfs2/dlm/dlmmaster.c
+++ b/fs/ocfs2/dlm/dlmmaster.c
@@ -325,6 +325,9 @@ static void dlm_init_mle(struct dlm_master_list_entry *mle,
325 mle->u.mlename.hash = dlm_lockid_hash(name, namelen); 325 mle->u.mlename.hash = dlm_lockid_hash(name, namelen);
326 } 326 }
327 327
328 atomic_inc(&dlm->mle_tot_count[mle->type]);
329 atomic_inc(&dlm->mle_cur_count[mle->type]);
330
328 /* copy off the node_map and register hb callbacks on our copy */ 331 /* copy off the node_map and register hb callbacks on our copy */
329 memcpy(mle->node_map, dlm->domain_map, sizeof(mle->node_map)); 332 memcpy(mle->node_map, dlm->domain_map, sizeof(mle->node_map));
330 memcpy(mle->vote_map, dlm->domain_map, sizeof(mle->vote_map)); 333 memcpy(mle->vote_map, dlm->domain_map, sizeof(mle->vote_map));
@@ -467,6 +470,8 @@ static void dlm_mle_release(struct kref *kref)
467 /* detach the mle from the domain node up/down events */ 470 /* detach the mle from the domain node up/down events */
468 __dlm_mle_detach_hb_events(dlm, mle); 471 __dlm_mle_detach_hb_events(dlm, mle);
469 472
473 atomic_dec(&dlm->mle_cur_count[mle->type]);
474
470 /* NOTE: kfree under spinlock here. 475 /* NOTE: kfree under spinlock here.
471 * if this is bad, we can move this to a freelist. */ 476 * if this is bad, we can move this to a freelist. */
472 kmem_cache_free(dlm_mle_cache, mle); 477 kmem_cache_free(dlm_mle_cache, mle);