From: tianzy Date: Wed, 5 Nov 2008 09:20:02 +0000 (+0000) Subject: Branch HEAD X-Git-Tag: v1_9_100~30 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=fd95e5f425172ac934cfc0434288328351bcbd55 Branch HEAD fix panic on debug_daemon b=15878 i=shadow i=zhenyu.xu --- diff --git a/libcfs/libcfs/tracefile.c b/libcfs/libcfs/tracefile.c index 6913c44..eaebd77 100644 --- a/libcfs/libcfs/tracefile.c +++ b/libcfs/libcfs/tracefile.c @@ -835,7 +835,9 @@ int trace_daemon_command(char *str) tracefile_write_lock(); if (strcmp(str, "stop") == 0) { - trace_stop_thread(); + tracefile_write_unlock(); + trace_stop_thread(); + tracefile_write_lock(); memset(tracefile, 0, sizeof(tracefile)); } else if (strncmp(str, "size=", 5) == 0) { @@ -1029,6 +1031,25 @@ static int tracefiled(void *arg) cfs_filp_close(filp); put_pages_on_daemon_list(&pc); + if (!list_empty(&pc.pc_pages)) { + int i; + + printk(KERN_ALERT "Lustre: trace pages aren't empty\n"); + printk(KERN_ERR "total cpus(%d): ", num_possible_cpus()); + for (i = 0; i < num_possible_cpus(); i++) + if (cpu_online(i)) + printk(KERN_ERR "%d(on) ", i); + else + printk(KERN_ERR "%d(off) ", i); + printk(KERN_ERR "\n"); + + i = 0; + list_for_each_entry_safe(tage, tmp, &pc.pc_pages, + linkage) + printk(KERN_ERR "page %d belongs to cpu %d\n", + ++i, tage->cpu); + printk(KERN_ERR "There are %d pages unwritten\n", i); + } __LASSERT(list_empty(&pc.pc_pages)); } complete(&tctl->tctl_stop);