[Orca-checkins] r404 - in trunk/orca: data_gatherers/orcallator lib/SE/3.2.1 lib/SE/3.3 lib/SE/3.3.1

dmberezin at hotmail.com dmberezin at hotmail.com
Wed Nov 17 15:34:09 PST 2004


Author: dmberezin at hotmail.com
Date: Wed Nov 17 15:32:25 2004
New Revision: 404

Modified:
   trunk/orca/data_gatherers/orcallator/orcallator.se
   trunk/orca/lib/SE/3.2.1/orca_process_class.se
   trunk/orca/lib/SE/3.2.1/workinfo_class.se
   trunk/orca/lib/SE/3.3.1/orca_process_class.se
   trunk/orca/lib/SE/3.3.1/workinfo_class.se
   trunk/orca/lib/SE/3.3/orca_process_class.se
   trunk/orca/lib/SE/3.3/workinfo_class.se
Log:
Fix a thread counting bug in orca_process_class.se

* lib/SE/3.2.1/orca_process_class.se
* lib/SE/3.3.1/orca_process_class.se
* lib/SE/3.3/orca_process_class.se
  Fix a bug where highest thread id was reported as current number of threads.
  Support both current thread count and contributing thread count.
  Add lwp_max variable.
  The original version of orca_process_class.se is from SEToolkit 3.3.1.

* lib/SE/3.2.1/workinfo_class.se
* lib/SE/3.3.1/workinfo_class.se
* lib/SE/3.3/workinfo_class.se
  Add support for maximum thread id, introduced in orca_process_class.se
  Include orca_process_class.se instead of process_class.se

* data_gatherers/orcallator/orcallator.se
  (measure_workload): Add support for maximum thread id, introduced in
  orca_process_class.se


Modified: trunk/orca/data_gatherers/orcallator/orcallator.se
==============================================================================
--- trunk/orca/data_gatherers/orcallator/orcallator.se	(original)
+++ trunk/orca/data_gatherers/orcallator/orcallator.se	Wed Nov 17 15:32:25 2004
@@ -2429,6 +2429,7 @@
   for (refresh$(ww); ww.number != -1; refresh$(ww)) {
     put_output(sprintf("%s_cnt", ww.w.name), sprintf("%4d", ww.w.count));
     put_output(sprintf("%s_lwpcnt", ww.w.name), sprintf("%4d", ww.w.info.lwp_count));
+    put_output(sprintf("%s_lwpmax", ww.w.name), sprintf("%4d", ww.w.info.lwp_max));
 
     if (ww.w.cnt == 0) {
       millisecs_per_switch = ww.w.info.vcontexts + ww.w.info.icontexts;

Modified: trunk/orca/lib/SE/3.2.1/orca_process_class.se
==============================================================================
--- trunk/orca/lib/SE/3.2.1/orca_process_class.se	(original)
+++ trunk/orca/lib/SE/3.2.1/orca_process_class.se	Wed Nov 17 15:32:25 2004
@@ -222,6 +222,7 @@
   ulong   icontexts;      // in-ditto
   ulong   charios;        // characters in and out/interval
   ulong   lwp_count;      // number of lwps for the process
+  ulong   lwp_max;        // number of contributing lwps for the process
   int     uid;            // current uid
   long    ppid;           // parent pid
   int     bindpset;       // processor set binding
@@ -543,6 +544,7 @@
           rpi.n_pr_time = PS.pr_time;
           rpi.o_pr_ctime = rpi.n_pr_ctime;
           rpi.n_pr_ctime = PS.pr_ctime;
+          rpi.lwp_count = PS.pr_nlwp;
           rpi.gencnt = gen;
           struct_empty(rpi, pp);
           nproc++;
@@ -799,7 +801,8 @@
       priority = rpi.pr_pri;
       niceness = rpi.pr_nice;
       sched_class = rpi.pr_clname;
-      lwp_count = NU.pr_count;
+      lwp_max = NU.pr_count;
+      lwp_count = rpi.lwp_count;
       ppid = rpi.pr_ppid;
       bindpset = rpi.pr_bindpset;
       fname = rpi.pr_fname;

Modified: trunk/orca/lib/SE/3.2.1/workinfo_class.se
==============================================================================
--- trunk/orca/lib/SE/3.2.1/workinfo_class.se	(original)
+++ trunk/orca/lib/SE/3.2.1/workinfo_class.se	Wed Nov 17 15:32:25 2004
@@ -90,7 +90,7 @@
 #include <dirent.se>
 #include <fcntl.se>
 #include <proc.se>
-#include <process_class.se>
+#include <orca_process_class.se>
 #include <pwd.se>
 
 struct work_info_t {
@@ -324,6 +324,7 @@
             wi[i].info.priority += pp.priority;
             wi[i].info.niceness += pp.niceness;
           }
+          wi[i].info.lwp_max += pp.lwp_max;
           wi[i].info.lwp_count += pp.lwp_count;
           wi[i].count++;
           if (firstmatch == 1 && i > 0) {         // First match only counts

Modified: trunk/orca/lib/SE/3.3.1/orca_process_class.se
==============================================================================
--- trunk/orca/lib/SE/3.3.1/orca_process_class.se	(original)
+++ trunk/orca/lib/SE/3.3.1/orca_process_class.se	Wed Nov 17 15:32:25 2004
@@ -222,6 +222,7 @@
   ulong   icontexts;      // in-ditto
   ulong   charios;        // characters in and out/interval
   ulong   lwp_count;      // number of lwps for the process
+  ulong   lwp_max;        // number of contributing lwps for the process
   int     uid;            // current uid
   long    ppid;           // parent pid
   int     bindpset;       // processor set binding
@@ -543,6 +544,7 @@
           rpi.n_pr_time = PS.pr_time;
           rpi.o_pr_ctime = rpi.n_pr_ctime;
           rpi.n_pr_ctime = PS.pr_ctime;
+          rpi.lwp_count = PS.pr_nlwp;
           rpi.gencnt = gen;
           struct_empty(rpi, pp);
           nproc++;
@@ -799,7 +801,8 @@
       priority = rpi.pr_pri;
       niceness = rpi.pr_nice;
       sched_class = rpi.pr_clname;
-      lwp_count = NU.pr_count;
+      lwp_max = NU.pr_count;
+      lwp_count = rpi.lwp_count;
       ppid = rpi.pr_ppid;
       bindpset = rpi.pr_bindpset;
       fname = rpi.pr_fname;

Modified: trunk/orca/lib/SE/3.3.1/workinfo_class.se
==============================================================================
--- trunk/orca/lib/SE/3.3.1/workinfo_class.se	(original)
+++ trunk/orca/lib/SE/3.3.1/workinfo_class.se	Wed Nov 17 15:32:25 2004
@@ -90,7 +90,7 @@
 #include <dirent.se>
 #include <fcntl.se>
 #include <proc.se>
-#include <process_class.se>
+#include <orca_process_class.se>
 #include <pwd.se>
 
 struct work_info_t {
@@ -324,6 +324,7 @@
             wi[i].info.priority += pp.priority;
             wi[i].info.niceness += pp.niceness;
           }
+          wi[i].info.lwp_max += pp.lwp_max;
           wi[i].info.lwp_count += pp.lwp_count;
           wi[i].count++;
           if (firstmatch == 1 && i > 0) {         // First match only counts

Modified: trunk/orca/lib/SE/3.3/orca_process_class.se
==============================================================================
--- trunk/orca/lib/SE/3.3/orca_process_class.se	(original)
+++ trunk/orca/lib/SE/3.3/orca_process_class.se	Wed Nov 17 15:32:25 2004
@@ -222,6 +222,7 @@
   ulong   icontexts;      // in-ditto
   ulong   charios;        // characters in and out/interval
   ulong   lwp_count;      // number of lwps for the process
+  ulong   lwp_max;        // number of contributing lwps for the process
   int     uid;            // current uid
   long    ppid;           // parent pid
   int     bindpset;       // processor set binding
@@ -543,6 +544,7 @@
           rpi.n_pr_time = PS.pr_time;
           rpi.o_pr_ctime = rpi.n_pr_ctime;
           rpi.n_pr_ctime = PS.pr_ctime;
+          rpi.lwp_count = PS.pr_nlwp;
           rpi.gencnt = gen;
           struct_empty(rpi, pp);
           nproc++;
@@ -799,7 +801,8 @@
       priority = rpi.pr_pri;
       niceness = rpi.pr_nice;
       sched_class = rpi.pr_clname;
-      lwp_count = NU.pr_count;
+      lwp_max = NU.pr_count;
+      lwp_count = rpi.lwp_count;
       ppid = rpi.pr_ppid;
       bindpset = rpi.pr_bindpset;
       fname = rpi.pr_fname;

Modified: trunk/orca/lib/SE/3.3/workinfo_class.se
==============================================================================
--- trunk/orca/lib/SE/3.3/workinfo_class.se	(original)
+++ trunk/orca/lib/SE/3.3/workinfo_class.se	Wed Nov 17 15:32:25 2004
@@ -90,7 +90,7 @@
 #include <dirent.se>
 #include <fcntl.se>
 #include <proc.se>
-#include <process_class.se>
+#include <orca_process_class.se>
 #include <pwd.se>
 
 struct work_info_t {
@@ -324,6 +324,7 @@
             wi[i].info.priority += pp.priority;
             wi[i].info.niceness += pp.niceness;
           }
+          wi[i].info.lwp_max += pp.lwp_max;
           wi[i].info.lwp_count += pp.lwp_count;
           wi[i].count++;
           if (firstmatch == 1 && i > 0) {         // First match only counts



More information about the Orca-checkins mailing list