ocfs2: add uuid to ocfs2 thread name for problem analysis
authorJoseph Qi <joseph.qi@huawei.com>
Fri, 6 Nov 2015 02:44:13 +0000 (18:44 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Nov 2015 03:34:48 +0000 (19:34 -0800)
A node can mount multiple ocfs2 volumes.  And if thread names are same for
each volume/domain, it will bring inconvenience when analyzing problems
because we have to identify which volume/domain the messages belong to.

Since thread name will be printed to messages, so add volume uuid or dlm
name to thread name can benefit problem analysis.

Signed-off-by: Joseph Qi <joseph.qi@huawei.com>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Gang He <ghe@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ocfs2/dlm/dlmdomain.c
fs/ocfs2/dlm/dlmrecovery.c
fs/ocfs2/dlm/dlmthread.c
fs/ocfs2/dlmglue.c
fs/ocfs2/journal.c

index 6918f30d02cd7631634804389ce0f3deade524e2..2ee7fe747cea4408182aee7c45e8baa37ceaeae1 100644 (file)
@@ -1866,6 +1866,7 @@ static int dlm_join_domain(struct dlm_ctxt *dlm)
        int status;
        unsigned int backoff;
        unsigned int total_backoff = 0;
+       char wq_name[O2NM_MAX_NAME_LEN];
 
        BUG_ON(!dlm);
 
@@ -1895,7 +1896,8 @@ static int dlm_join_domain(struct dlm_ctxt *dlm)
                goto bail;
        }
 
-       dlm->dlm_worker = create_singlethread_workqueue("dlm_wq");
+       snprintf(wq_name, O2NM_MAX_NAME_LEN, "dlm_wq-%s", dlm->name);
+       dlm->dlm_worker = create_singlethread_workqueue(wq_name);
        if (!dlm->dlm_worker) {
                status = -ENOMEM;
                mlog_errno(status);
index 58eaa5c0d387051301a089f0d234d4b69bf18d51..9e4f862d20fe1749dc11f6d023793fccbed0069a 100644 (file)
@@ -205,7 +205,7 @@ int dlm_launch_recovery_thread(struct dlm_ctxt *dlm)
        mlog(0, "starting dlm recovery thread...\n");
 
        dlm->dlm_reco_thread_task = kthread_run(dlm_recovery_thread, dlm,
-                                               "dlm_reco_thread");
+                       "dlm_reco-%s", dlm->name);
        if (IS_ERR(dlm->dlm_reco_thread_task)) {
                mlog_errno(PTR_ERR(dlm->dlm_reco_thread_task));
                dlm->dlm_reco_thread_task = NULL;
index 2e5e6d5fffe8d8b0458498fcf89c5ee845e20848..c5f6c241ecd7d3e71006ad71cfcb1b2134e47221 100644 (file)
@@ -493,7 +493,8 @@ int dlm_launch_thread(struct dlm_ctxt *dlm)
 {
        mlog(0, "Starting dlm_thread...\n");
 
-       dlm->dlm_thread_task = kthread_run(dlm_thread, dlm, "dlm_thread");
+       dlm->dlm_thread_task = kthread_run(dlm_thread, dlm, "dlm-%s",
+                       dlm->name);
        if (IS_ERR(dlm->dlm_thread_task)) {
                mlog_errno(PTR_ERR(dlm->dlm_thread_task));
                dlm->dlm_thread_task = NULL;
index 1c91103c13339aca31b51f7b45de4a8beb05e3bb..20276e340339b64d4ca9c2533e97430801d287a4 100644 (file)
@@ -2998,7 +2998,8 @@ int ocfs2_dlm_init(struct ocfs2_super *osb)
        }
 
        /* launch downconvert thread */
-       osb->dc_task = kthread_run(ocfs2_downconvert_thread, osb, "ocfs2dc");
+       osb->dc_task = kthread_run(ocfs2_downconvert_thread, osb, "ocfs2dc-%s",
+                       osb->uuid_str);
        if (IS_ERR(osb->dc_task)) {
                status = PTR_ERR(osb->dc_task);
                osb->dc_task = NULL;
index 04d6303f39a74b1768d812a9fdc7952722a49df5..13534f4fe5b51d0c009ad684be46518de65a85d8 100644 (file)
@@ -1090,7 +1090,7 @@ int ocfs2_journal_load(struct ocfs2_journal *journal, int local, int replayed)
        /* Launch the commit thread */
        if (!local) {
                osb->commit_task = kthread_run(ocfs2_commit_thread, osb,
-                                              "ocfs2cmt");
+                               "ocfs2cmt-%s", osb->uuid_str);
                if (IS_ERR(osb->commit_task)) {
                        status = PTR_ERR(osb->commit_task);
                        osb->commit_task = NULL;
@@ -1507,7 +1507,7 @@ void ocfs2_recovery_thread(struct ocfs2_super *osb, int node_num)
                goto out;
 
        osb->recovery_thread_task =  kthread_run(__ocfs2_recovery_thread, osb,
-                                                "ocfs2rec");
+                       "ocfs2rec-%s", osb->uuid_str);
        if (IS_ERR(osb->recovery_thread_task)) {
                mlog_errno((int)PTR_ERR(osb->recovery_thread_task));
                osb->recovery_thread_task = NULL;