components/top/patches/04.percent_cpu.patch
author david.comay@oracle.com
Mon, 20 Jul 2015 13:39:58 -0700
branchs11-update
changeset 4678 47c0c76602fd
parent 3870 37ef66e7f75b
permissions -rw-r--r--
20957828 swift Makefile has typo for COMPONENT_BUGDB 21277670 openstack-common.p5m needs mysql and iniparse dependencies
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3870
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     1
#
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     2
# Community BugDB: 	sf.net/tracker
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     3
# Community BugID: 	3602141
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     4
# Community BugURL:	https://sourceforge.net/tracker/?func=detail&aid=3602141&group_id=72892&atid=536042
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     5
#
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     6
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     7
--- top-3.8beta1/machine/m_sunos5.c.orig	Thu Jan 24 12:29:40 2013
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     8
+++ top-3.8beta1/machine/m_sunos5.c	Thu Jan 24 12:37:11 2013
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
     9
@@ -149,10 +149,10 @@
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    10
  * These values are weighted over one minute whereas top output prefers
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    11
  * a near-instantaneous measure of cpu utilization.  So we choose to
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    12
  * ignore pr_pctcpu: we calculate our own cpu percentage and store it in
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    13
- * one of the spare slots in the prinfo structure.
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    14
+ * oldpct field.
638
d348d0ea7b75 7101665 top crashes in getptable
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    15
  */
3870
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    16
+#define percent_cpu(pp)	(((struct oldproc *)hash_lookup_pid(prochash, pp->pr_pid))->oldpct)
638
d348d0ea7b75 7101665 top crashes in getptable
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    17
 
d348d0ea7b75 7101665 top crashes in getptable
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    18
-#define percent_cpu(pp) (*(double *)dbl_align(&pp->pr_filler[0]))
d348d0ea7b75 7101665 top crashes in getptable
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    19
 
d348d0ea7b75 7101665 top crashes in getptable
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    20
 /* definitions for indices in the nlist array */
d348d0ea7b75 7101665 top crashes in getptable
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    21
 #define X_V			 0
3870
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    22
@@ -1965,6 +1965,7 @@
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    23
 	    op->fd_psinfo = -1;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    24
 	    op->fd_lpsinfo = -1;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    25
 	    op->oldtime = 0.0;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    26
+	    op->oldpct = 0.0;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    27
 	}
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    28
 
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    29
 	/* do we have a cached file? */
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    30
@@ -2021,13 +2022,13 @@
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    31
 	 */
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    32
 	if (lasttime.tv_sec > 0)
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    33
 	{
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    34
-	    percent_cpu(currproc) =
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    35
+            op->oldpct =
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    36
 		(TIMESPEC_TO_DOUBLE(currproc->pr_time) - op->oldtime) / timediff;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    37
 	}
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    38
 	else
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    39
 	{
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    40
 	    /* first screen -- no difference is possible */
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    41
-	    percent_cpu(currproc) = 0.0;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    42
+            op->oldpct = 0.0;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    43
 	}
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    44
 
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    45
 	/* save data for next time */
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    46
@@ -2134,7 +2135,7 @@
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    47
 		    /* calculate percent cpu for just this thread */
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    48
 		    if (lasttime.tv_sec > 0)
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    49
 		    {
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    50
-			percent_cpu(currproc) =
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    51
+			op->oldpct =
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    52
 			    (TIMESPEC_TO_DOUBLE(lwpp->pr_time) - op->oldtime) /
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    53
 			    timediff;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    54
 		    }
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    55
@@ -2141,13 +2142,13 @@
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    56
 		    else
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    57
 		    {
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    58
 			/* first screen -- no difference is possible */
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    59
-			percent_cpu(currproc) = 0.0;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    60
+			op->oldpct = 0.0;
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    61
 		    }
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    62
 
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    63
 		    dprintf("getptable: %d.%d: time %.0f, state %d, pctcpu %.2f\n",
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    64
 			    currproc->pr_pid, lwpp->pr_lwpid,
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    65
 			    TIMESPEC_TO_DOUBLE(currproc->pr_time),
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    66
-			    currproc->px_state, percent_cpu(currproc));
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    67
+			    currproc->px_state, op->oldpct);
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    68
 		}
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    69
 
37ef66e7f75b 16186020 top doesn't build (and may be broken anyway) on lucky build 13
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 638
diff changeset
    70
 		/* save data for next time */