X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Futils%2Fllanalyze;h=1a58b1661c64848d5b844a016d1d7351e40508f2;hp=40166a52f6552e91d904c8adf148d71b4c21c32e;hb=fcf40559c8a4edb83aef82ef584e5ba4de9ea045;hpb=5eab22aed5fc438a1b1f482c299f89f4050ae5d0 diff --git a/lustre/utils/llanalyze b/lustre/utils/llanalyze index 40166a5..1a58b16 100644 --- a/lustre/utils/llanalyze +++ b/lustre/utils/llanalyze @@ -7,7 +7,6 @@ GetOptions("pid=i" => \$pid, "trace!" => \$trace, "silent!" => \$silent, "rpctrace!" => \$rpctrace, - "lmvtrace!" => \$lmvtrace, "nodlm!" => \$nodlm, "dlm_ns=s" => \$dlm_ns, "noclass!" => \$noclass, @@ -15,6 +14,8 @@ GetOptions("pid=i" => \$pid, "extract_start=s" => \$extract_start, "extract_end=s" => \$extract_end); + + $subsys->{UNDEFINED} = 1 << 0; $subsys->{MDC} = 1 << 1; $subsys->{MDS} = 1 << 2; @@ -25,23 +26,28 @@ $subsys->{LOG} = 1 << 6; $subsys->{LLITE} = 1 << 7; $subsys->{RPC} = 1 << 8; $subsys->{MGMT} = 1 << 9; -$subsys->{PORTALS} = 1 << 10; -$subsys->{SOCKNAL} = 1 << 11; -$subsys->{QSWNAL} = 1 << 12; -$subsys->{PINGER} = 1 << 13; -$subsys->{FILTER} = 1 << 14; -$subsys->{PTLBD} = 1 << 15; -$subsys->{ECHO} = 1 << 16; -$subsys->{LDLM} = 1 << 17; -$subsys->{LOV} = 1 << 18; -$subsys->{GMNAL} = 1 << 19; -$subsys->{PTLROUTER} = 1 << 20; -$subsys->{COBD} = 1 << 21; -$subsys->{IBNAL} = 1 << 22; -$subsys->{SM} = 1 << 23; -$subsys->{ASOBD} = 1 << 24; -$subsys->{LMV} = 1 << 25; -$subsys->{CMOBD} = 1 << 26; +$subsys->{LNET} = 1 << 10; +$subsys->{LND} = 1 << 11; +$subsys->{PINGER} = 1 << 12; +$subsys->{FILTER} = 1 << 13; +# /* 1<< 14 unused */ +$subsys->{ECHO} = 1 << 15; +$subsys->{LDLM} = 1 << 16; +$subsys->{LOV} = 1 << 17; +$subsys->{LQUOTA} = 1 << 18; +$subsys->{OSD} = 1 << 19; +$subsys->{LFSCK} = 1 << 20; +# /* 1<< 21 unused */ +# /* 1<< 22 unused */ +$subsys->{LMV} = 1 << 23; #/* b_new_cmd */ +# /* 1<< 24 unused */ +$subsys->{SEC} = 1 << 25; #/* upcall cache */ +$subsys->{GSS} = 1 << 26; #/* b_new_cmd */ +# /* 1<< 27 unused */ +$subsys->{MGC} = 1 << 28; +$usbsys->{MGS} = 1 << 29; +$subsys->{FID} = 1 << 30; #/* b_new_cmd */ +$subsys->{FLD} = 1 << 31; #/* b_new_cmd */ $masks->{TRACE} = 1 << 0; # /* ENTRY/EXIT markers */ @@ -52,25 +58,34 @@ $masks->{MALLOC} = 1 << 4; # /* print malloc, free information */ $masks->{CACHE} = 1 << 5; # /* cache-related items */ $masks->{INFO} = 1 << 6; # /* general information */ $masks->{IOCTL} = 1 << 7; # /* ioctl related information */ -$masks->{BLOCKS} = 1 << 8; # /* ext2 block allocation */ +$masks->{NETERROR} = 1 << 8; # /* network errors */ $masks->{NET} = 1 << 9; # /* network communications */ $masks->{WARNING} = 1 << 10; # $masks->{BUFFS} = 1 << 11; # $masks->{OTHER} = 1 << 12; # $masks->{DENTRY} = 1 << 13; # -$masks->{PORTALS} = 1 << 14; # /* ENTRY/EXIT markers */ +$masks->{NETTRACE} = 1 << 14; # /* ENTRY/EXIT markers */ $masks->{PAGE} = 1 << 15; # /* bulk page handling */ $masks->{DLMTRACE} = 1 << 16; # $masks->{ERROR} = 1 << 17; # /* CERROR} = ...) == CDEBUG} = D_ERROR, ...) */ $masks->{EMERG} = 1 << 18; # /* CEMERG} = ...) == CDEBUG} = D_EMERG, ...) */ $masks->{HA} = 1 << 19; # /* recovery and failover */ $masks->{RPCTRACE} = 1 << 20; # /* recovery and failover */ +$masks->{VFSTRACE} = 1 << 21; +$masks->{READA} = 1 << 22; #/* read-ahead */ +$masks->{MMAP} = 1 << 23; +$masks->{CONFIG} = 1 << 24; +$masks->{CONSOLE} = 1 << 25; +$masks->{QUOTA} = 1 << 26; +$masks->{SEC} = 1 << 27; +$masks->{LFSCK} = 1 << 28; +$masks->{HSM} = 1 << 29; sub extractpid { $line = shift; # print "$_\n"; - if ($line =~ m/(\d+):(\d+):(\d+):(\d+\.\d+):(\d+):(\d+):.*$/) { + if ($line =~ /(\d+)\:(\d+)\:(\d+\.\d+)\:(\d+\.\d+)\:(\d+)\:(\d+)\:.*/) { return $6; } } @@ -79,27 +94,10 @@ sub extracthostpid { $line = shift; # print "$_\n"; - if ($line =~ m/(\d+):(\d+):(\d+):(\d+\.\d+):(\d+):(\d+):(\d+):.*$/) { + if ($line =~ /(\d+)\:(\d+)\:(\d+\.\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)\:.*/) { return $7; } } -sub extractsubsys -{ - $line = shift; -# print "$_\n"; - if ($line =~ m/(\d+):(\d+):(\d+):(\d+\.\d+):(\d+):(\d+):(\d+):.*$/) { - return hex($1); - } -} - -sub extractmask -{ - $line = shift; -# print "$_\n"; - if ($line =~ m/(\d+):(\d+):(\d+):(\d+\.\d+):(\d+):(\d+):(\d+):.*$/) { - return hex($2); - } -} sub entering_rpc { @@ -173,14 +171,14 @@ sub study_lock $_ = shift; my $rc; - $rc = /completion callback handler START ns: (.*) lock: (.*) lrc: (.*) mode/; + $rc = /client-side enqueue returned a blocked.* ns: (.*) lock: (.*) lrc: (.*) mode/; if ($rc) { $completion_callbacks{$1}->{$2} = $3; # print color("white"); # print "---CP CB START: $1 $2 $3\n"; # print color("reset"); } - $rc = /callback handler finished.* ns: (.*) lock: (.*) lrc: (.*) mode/; + $rc = /client-side enqueue:.* ns: (.*) lock: (.*) lrc: (.*) mode/; if ($rc) { # print color("white"); # print "---CP CB END: $1 $2 $3 deleting $completion_callbacks{$1}->{$2}\n"; @@ -188,8 +186,8 @@ sub study_lock delete $completion_callbacks{$1}->{$2}; } + $rc = /client blocking AST callback handler ns: (.*) lock: (.*) lrc: (.*) mode/; if ($rc) { - $rc = /client blocking AST callback handler START ns: (.*) lock: (.*) lrc: (.*) mode/; $blocking_callbacks{$1}->{$2} = $3; # print color("white"); # print "---BL CB START: $1 $2\n"; @@ -286,28 +284,30 @@ if ($ARGV[1]) { $width = $ARGV[1]; } -print "nodlm $nodlm, nonet $nonet, trace $trace lmvtrace $lmvtrace\n"; +print "nodlm $nodlm, nonet $nonet, trace $trace\n"; print "pid: $pid, dlm_ns: $dlm_ns\n"; +print "rpctrace: $rpctrace\n"; print "extract_start: $extract_start\n"; print "extract_end: $extract_end\n"; while () { - if ($extract_start && $extract_start != LLANAYZE_FOUND) { + if ($extract_start && $extract_start ne "LLANAYZE_FOUND") { next if (index($_, $extract_start, 0) == -1); - $extract_start = LLANAYZE_FOUND; + $extract_start = "LLANAYZE_FOUND"; } if ($extract_end) { - next if ($extract_end == LLANAYZE_FOUND); + next if ($extract_end eq "LLANAYZE_FOUND"); if (index($_, $extract_end, 0) != -1) { - $extract_end = LLANAYZE_FOUND; + $extract_end = "LLANAYZE_FOUND"; } } $linepid = extractpid($_); - $linehpid = extracthostpid($_); - $linesubsys = extractsubsys($_); - $linemask = extractmask($_); + $linemask = getmask($_); + $linesubsys = getsubsys($_); + +# printf "---> mask %x subsys %x\n", $linemask, $linesubsys; if (leaving($_)) { chop $prefix->{$linepid}; @@ -326,8 +326,6 @@ while () { next if ($trace && $linemask != $masks->{TRACE}); next if ($nodlm && ( $linesubsys == $subsys->{LDLM})); - next if ($lmvtrace && - ( $linesubsys != $subsys->{LMV})); next if ($dlm_ns && ( $linesubsys != $subsys->{LDLM})); next if (($found_dlm_ns = index( $_, $dlm_ns, 0)) == -1); @@ -336,11 +334,8 @@ while () { next if ($nonet && ( $linesubsys == $subsys->{RPC} || $linesubsys == $subsys->{NET} || - $linesubsys == $subsys->{PORTALS} || - $linesubsys == $subsys->{SOCKNAL} || - $linesubsys == $subsys->{QSWNAL} || - $linesubsys == $subsys->{IBNAL} || - $linesubsys == $subsys->{GMNAL})); + $linesubsys == $subsys->{LNET} || + $linesubsys == $subsys->{LND})); if(!$entering_rpc) {entering_rpc($_);} if(!$leaving_rpc) {leaving_rpc($_);}