home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume20 / aixmon / patch01 < prev    next >
Encoding:
Text File  |  1991-07-17  |  4.1 KB  |  128 lines

  1. Newsgroups: comp.sources.misc
  2. From: Jussi Maki <jmaki@vipunen.hut.fi>
  3. Subject:  v20i095:  aixmon - AIX3.1 system monitor v1.04, Patch01
  4. Message-ID: <1991Jul12.042116.13118@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 873374fe2cde8903dc88cbd4dffd7620
  6. Date: Fri, 12 Jul 1991 04:21:16 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Jussi Maki <jmaki@vipunen.hut.fi>
  10. Posting-number: Volume 20, Issue 95
  11. Archive-name: aixmon/patch01
  12. Patch-To: aixmon: Volume 20, Issue 94
  13. Environment: AIX3.1
  14.  
  15. Here's a patch in "diff -lc" format to fix a problem 
  16. with monitor-program in showing top cpu processes.
  17.  
  18. ----------------------------------clip here- ------------------------------
  19. *** top.c.old    Wed Jul 10 20:19:34 1991
  20. --- top.c    Thu Jul 11 10:14:18 1991
  21. ***************
  22. *** 4,9 ****
  23. --- 4,13 ----
  24.   ** THIS PROGRAM AND MODIFY IT AS LONG AS YOU KEEP ORIGINAL
  25.   ** COPYRIGHTS.
  26.   **/
  27. + /*
  28. + ** modified 910710:  changed top_calcsortinfo() to work correctly
  29. + ** modified 910711:  version 1.04 to 1.04.2
  30. + */
  31.   
  32.   #include <procinfo.h>
  33.   #include <curses.h>
  34. ***************
  35. *** 145,170 ****
  36.   {
  37.     int i,j;
  38.     double cpusum=0.0;
  39. !   /* Oops,this must be changed in 1.04 (non-beta) :-)
  40. !    * I mean that to check if some processes are deletet between two samples
  41. !    */
  42.     for (i=0; i<nproc2; i++) { 
  43.       if (proc2[i].pi_pid == proc1[i].pi_pid) { 
  44.         j=i;
  45. !       procsortinfo[i].cputime =  user2[i].ui_ru.ru_utime.tv_sec
  46.       + user2[i].ui_ru.ru_utime.tv_usec*1.0e-6
  47.       + user2[i].ui_ru.ru_stime.tv_sec
  48.       + user2[i].ui_ru.ru_stime.tv_usec*1.0e-6;
  49.         procsortinfo[i].deltacputime = procsortinfo[i].cputime 
  50.       - (user1[j].ui_ru.ru_utime.tv_sec
  51.          + user1[j].ui_ru.ru_utime.tv_usec*1.0e-6
  52.          + user1[j].ui_ru.ru_stime.tv_sec
  53.          + user1[j].ui_ru.ru_stime.tv_usec*1.0e-6);
  54. !       procsortinfo[i].index = i;
  55. !       cpusum += procsortinfo[i].deltacputime;
  56.       }
  57.     }
  58.     qsort(procsortinfo,nproc2,sizeof(struct procsortinfo),cmp_deltacputime);
  59.     return(cpusum);
  60.   }
  61. --- 149,200 ----
  62.   {
  63.     int i,j;
  64.     double cpusum=0.0;
  65. !   int procfound;
  66. !   
  67. !   /* lets try finding same process to calculate time process got from cpu */
  68.     for (i=0; i<nproc2; i++) { 
  69. +     procfound=0;
  70.       if (proc2[i].pi_pid == proc1[i].pi_pid) { 
  71.         j=i;
  72. !       procfound=1;
  73. !     } else {
  74. !       for (j=i+1; j++; j<nproc1) {
  75. !     if (proc2[i].pi_pid == proc1[j].pi_pid) {
  76. !       procfound=1;
  77. !       break;
  78. !     }
  79. !     if (proc2[i].pi_pid < proc1[j].pi_pid) {
  80. !       break;
  81. !     }
  82. !       }
  83. !       if (!procfound)
  84. !     for (j=i-1; j--; j>=0) {
  85. !       if (proc2[i].pi_pid == proc1[j].pi_pid) {
  86. !         procfound=1;
  87. !         break;
  88. !       }
  89. !       if (proc2[i].pi_pid > proc1[j].pi_pid) {
  90. !         break;
  91. !       }
  92. !     }
  93. !     }
  94. !     procsortinfo[i].cputime =  user2[i].ui_ru.ru_utime.tv_sec
  95.       + user2[i].ui_ru.ru_utime.tv_usec*1.0e-6
  96.       + user2[i].ui_ru.ru_stime.tv_sec
  97.       + user2[i].ui_ru.ru_stime.tv_usec*1.0e-6;
  98. +     if (procfound) {
  99.         procsortinfo[i].deltacputime = procsortinfo[i].cputime 
  100.       - (user1[j].ui_ru.ru_utime.tv_sec
  101.          + user1[j].ui_ru.ru_utime.tv_usec*1.0e-6
  102.          + user1[j].ui_ru.ru_stime.tv_sec
  103.          + user1[j].ui_ru.ru_stime.tv_usec*1.0e-6);
  104. !     } else {  /* previous process was not found so it must be new */
  105. !       procsortinfo[i].deltacputime = procsortinfo[i].cputime;
  106.       }
  107. +     procsortinfo[i].index = i;
  108. +     cpusum += procsortinfo[i].deltacputime;
  109.     }
  110.     qsort(procsortinfo,nproc2,sizeof(struct procsortinfo),cmp_deltacputime);
  111.     return(cpusum);
  112.   }
  113.  
  114.  
  115. --------------------------------patchend here ------------------------------
  116. Jussi Maki                                 | Internet: jmaki@vipunen.hut.fi
  117. Helsinki University of Technology, Finland | Bitnet:   jmaki@fingate.bitnet
  118. Computing Centre                           | Voice:    + 358 - 0 - 451 4317
  119. Systems Support Division                   | Telefax:  + 358 - 0 - 464 788
  120. exit 0 # Just in case...
  121. -- 
  122. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  123. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  124. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  125. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  126.