Lines Matching defs:dlm
7 * debug functionality for the dlm
231 * of the format of the lockname that should be outside the purview of the dlm.
232 * We are adding only to make dlm debugging slightly easier.
350 static int debug_purgelist_print(struct dlm_ctxt *dlm, char *buf, int len)
357 "Dumping Purgelist for Domain: %s\n", dlm->name);
359 spin_lock(&dlm->spinlock);
360 list_for_each_entry(res, &dlm->purge_list, purge) {
372 spin_unlock(&dlm->spinlock);
381 struct dlm_ctxt *dlm = inode->i_private;
388 i_size_write(inode, debug_purgelist_print(dlm, buf, PAGE_SIZE - 1));
406 static int debug_mle_print(struct dlm_ctxt *dlm, char *buf, int len)
414 "Dumping MLEs for Domain: %s\n", dlm->name);
416 spin_lock(&dlm->master_lock);
418 bucket = dlm_master_hash(dlm, i);
429 spin_unlock(&dlm->master_lock);
438 struct dlm_ctxt *dlm = inode->i_private;
445 i_size_write(inode, debug_mle_print(dlm, buf, PAGE_SIZE - 1));
544 struct dlm_ctxt *dlm = dl->dl_ctxt;
549 spin_lock(&dlm->track_lock);
553 track_list = &dlm->tracking_list;
556 spin_unlock(&dlm->track_lock);
562 if (&res->tracking == &dlm->tracking_list)
568 spin_unlock(&dlm->track_lock);
614 struct dlm_ctxt *dlm = inode->i_private;
629 dlm_grab(dlm);
630 dl->dl_ctxt = dlm;
662 static int debug_state_print(struct dlm_ctxt *dlm, char *buf, int len)
670 spin_lock(&dlm->spinlock);
672 switch (dlm->dlm_state) {
688 dlm->name, dlm->key, dlm->dlm_locking_proto.pv_major,
689 dlm->dlm_locking_proto.pv_minor);
694 task_pid_nr(dlm->dlm_thread_task), dlm->node_num, state);
699 dlm->num_joins, dlm->joining_node);
703 out += stringify_nodemap(dlm->domain_map, O2NM_MAX_NODES,
709 out += stringify_nodemap(dlm->exit_domain_map, O2NM_MAX_NODES,
715 out += stringify_nodemap(dlm->live_nodes_map, O2NM_MAX_NODES,
722 atomic_read(&dlm->res_cur_count),
723 atomic_read(&dlm->res_tot_count));
726 tot_mles += atomic_read(&dlm->mle_tot_count[i]);
729 cur_mles += atomic_read(&dlm->mle_cur_count[i]);
738 atomic_read(&dlm->mle_cur_count[DLM_MLE_BLOCK]),
739 atomic_read(&dlm->mle_tot_count[DLM_MLE_BLOCK]));
744 atomic_read(&dlm->mle_cur_count[DLM_MLE_MASTER]),
745 atomic_read(&dlm->mle_tot_count[DLM_MLE_MASTER]));
750 atomic_read(&dlm->mle_cur_count[DLM_MLE_MIGRATION]),
751 atomic_read(&dlm->mle_tot_count[DLM_MLE_MIGRATION]));
757 (list_empty(&dlm->dirty_list) ? "Empty" : "InUse"),
758 (list_empty(&dlm->purge_list) ? "Empty" : "InUse"),
759 (list_empty(&dlm->pending_asts) ? "Empty" : "InUse"),
760 (list_empty(&dlm->pending_basts) ? "Empty" : "InUse"));
764 "Purge Count: %d Refs: %d\n", dlm->purge_count,
765 kref_read(&dlm->dlm_refs));
769 "Dead Node: %d\n", dlm->reco.dead_node);
772 if (dlm->reco.state == DLM_RECO_STATE_ACTIVE)
780 task_pid_nr(dlm->dlm_reco_thread_task),
781 dlm->reco.new_master, state);
785 out += stringify_nodemap(dlm->recovery_map, O2NM_MAX_NODES,
791 list_for_each_entry(node, &dlm->reco.node_data, list) {
822 spin_unlock(&dlm->spinlock);
829 struct dlm_ctxt *dlm = inode->i_private;
836 i_size_write(inode, debug_state_print(dlm, buf, PAGE_SIZE - 1));
854 void dlm_debug_init(struct dlm_ctxt *dlm)
858 dlm->dlm_debugfs_subroot, dlm, &debug_state_fops);
862 dlm->dlm_debugfs_subroot, dlm, &debug_lockres_fops);
866 dlm->dlm_debugfs_subroot, dlm, &debug_mle_fops);
870 dlm->dlm_debugfs_subroot, dlm,
875 void dlm_create_debugfs_subroot(struct dlm_ctxt *dlm)
877 dlm->dlm_debugfs_subroot = debugfs_create_dir(dlm->name,
881 void dlm_destroy_debugfs_subroot(struct dlm_ctxt *dlm)
883 debugfs_remove_recursive(dlm->dlm_debugfs_subroot);