home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.misc
- From: Jussi Maki <jmaki@vipunen.hut.fi>
- Subject: v20i095: aixmon - AIX3.1 system monitor v1.04, Patch01
- Message-ID: <1991Jul12.042116.13118@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 873374fe2cde8903dc88cbd4dffd7620
- Date: Fri, 12 Jul 1991 04:21:16 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: Jussi Maki <jmaki@vipunen.hut.fi>
- Posting-number: Volume 20, Issue 95
- Archive-name: aixmon/patch01
- Patch-To: aixmon: Volume 20, Issue 94
- Environment: AIX3.1
-
- Here's a patch in "diff -lc" format to fix a problem
- with monitor-program in showing top cpu processes.
-
- ----------------------------------clip here- ------------------------------
- *** top.c.old Wed Jul 10 20:19:34 1991
- --- top.c Thu Jul 11 10:14:18 1991
- ***************
- *** 4,9 ****
- --- 4,13 ----
- ** THIS PROGRAM AND MODIFY IT AS LONG AS YOU KEEP ORIGINAL
- ** COPYRIGHTS.
- **/
- + /*
- + ** modified 910710: changed top_calcsortinfo() to work correctly
- + ** modified 910711: version 1.04 to 1.04.2
- + */
-
- #include <procinfo.h>
- #include <curses.h>
- ***************
- *** 145,170 ****
- {
- int i,j;
- double cpusum=0.0;
- ! /* Oops,this must be changed in 1.04 (non-beta) :-)
- ! * I mean that to check if some processes are deletet between two samples
- ! */
- for (i=0; i<nproc2; i++) {
- if (proc2[i].pi_pid == proc1[i].pi_pid) {
- j=i;
- ! procsortinfo[i].cputime = user2[i].ui_ru.ru_utime.tv_sec
- + user2[i].ui_ru.ru_utime.tv_usec*1.0e-6
- + user2[i].ui_ru.ru_stime.tv_sec
- + user2[i].ui_ru.ru_stime.tv_usec*1.0e-6;
- procsortinfo[i].deltacputime = procsortinfo[i].cputime
- - (user1[j].ui_ru.ru_utime.tv_sec
- + user1[j].ui_ru.ru_utime.tv_usec*1.0e-6
- + user1[j].ui_ru.ru_stime.tv_sec
- + user1[j].ui_ru.ru_stime.tv_usec*1.0e-6);
- ! procsortinfo[i].index = i;
- ! cpusum += procsortinfo[i].deltacputime;
- }
- }
- -
- qsort(procsortinfo,nproc2,sizeof(struct procsortinfo),cmp_deltacputime);
- return(cpusum);
- }
- --- 149,200 ----
- {
- int i,j;
- double cpusum=0.0;
- ! int procfound;
- !
- ! /* lets try finding same process to calculate time process got from cpu */
- for (i=0; i<nproc2; i++) {
- + procfound=0;
- if (proc2[i].pi_pid == proc1[i].pi_pid) {
- j=i;
- ! procfound=1;
- ! } else {
- ! for (j=i+1; j++; j<nproc1) {
- ! if (proc2[i].pi_pid == proc1[j].pi_pid) {
- ! procfound=1;
- ! break;
- ! }
- ! if (proc2[i].pi_pid < proc1[j].pi_pid) {
- ! break;
- ! }
- ! }
- ! if (!procfound)
- ! for (j=i-1; j--; j>=0) {
- ! if (proc2[i].pi_pid == proc1[j].pi_pid) {
- ! procfound=1;
- ! break;
- ! }
- ! if (proc2[i].pi_pid > proc1[j].pi_pid) {
- ! break;
- ! }
- ! }
- ! }
- !
- ! procsortinfo[i].cputime = user2[i].ui_ru.ru_utime.tv_sec
- + user2[i].ui_ru.ru_utime.tv_usec*1.0e-6
- + user2[i].ui_ru.ru_stime.tv_sec
- + user2[i].ui_ru.ru_stime.tv_usec*1.0e-6;
- + if (procfound) {
- procsortinfo[i].deltacputime = procsortinfo[i].cputime
- - (user1[j].ui_ru.ru_utime.tv_sec
- + user1[j].ui_ru.ru_utime.tv_usec*1.0e-6
- + user1[j].ui_ru.ru_stime.tv_sec
- + user1[j].ui_ru.ru_stime.tv_usec*1.0e-6);
- ! } else { /* previous process was not found so it must be new */
- ! procsortinfo[i].deltacputime = procsortinfo[i].cputime;
- }
- + procsortinfo[i].index = i;
- + cpusum += procsortinfo[i].deltacputime;
- }
- qsort(procsortinfo,nproc2,sizeof(struct procsortinfo),cmp_deltacputime);
- return(cpusum);
- }
-
-
- --------------------------------patchend here ------------------------------
- Jussi Maki | Internet: jmaki@vipunen.hut.fi
- Helsinki University of Technology, Finland | Bitnet: jmaki@fingate.bitnet
- Computing Centre | Voice: + 358 - 0 - 451 4317
- Systems Support Division | Telefax: + 358 - 0 - 464 788
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-