View | Details | Raw Unified | Return to bug 207120 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (-1 / +1 lines)
Lines 3-9 Link Here
3
3
4
PORTNAME=	htop
4
PORTNAME=	htop
5
PORTVERSION=	2.0.0
5
PORTVERSION=	2.0.0
6
PORTREVISION=	1
6
PORTREVISION=	2
7
CATEGORIES=	sysutils
7
CATEGORIES=	sysutils
8
8
9
MAINTAINER=	gaod@hychen.org
9
MAINTAINER=	gaod@hychen.org
(-)files/patch-freebsd__FreeBSDProcessList.c (-3 / +32 lines)
Lines 1-6 Link Here
1
--- freebsd/FreeBSDProcessList.c.orig	2016-02-13 00:37:56.160832000 +0800
1
--- freebsd/FreeBSDProcessList.c.orig	2016-02-10 12:48:39.000000000 -0800
2
+++ freebsd/FreeBSDProcessList.c	2016-02-13 00:38:19.671290000 +0800
2
+++ freebsd/FreeBSDProcessList.c	2016-02-13 13:42:40.759431578 -0800
3
@@ -477,8 +477,8 @@
3
@@ -84,6 +84,8 @@
4
 static int MIB_kern_cp_times[2];
5
 static int kernelFScale;
6
 
7
+// XXX hack
8
+static unsigned long long int Global_totalMem;
9
 
10
 ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) {
11
    FreeBSDProcessList* fpl = xCalloc(1, sizeof(FreeBSDProcessList));
12
@@ -301,6 +303,8 @@
13
    //pl->totalMem *= pageSizeKb;
14
    sysctl(MIB_hw_physmem, 2, &(pl->totalMem), &len, NULL, 0);
15
    pl->totalMem /= 1024;
16
+   // XXX hack
17
+   Global_totalMem = pl->totalMem;
18
 
19
    sysctl(MIB_vm_stats_vm_v_active_count, 4, &(fpl->memActive), &len, NULL, 0);
20
    fpl->memActive *= pageSizeKb;
21
@@ -477,8 +481,9 @@
4
       }
22
       }
5
 
23
 
6
       // from FreeBSD source /src/usr.bin/top/machine.c
24
       // from FreeBSD source /src/usr.bin/top/machine.c
Lines 8-13 Link Here
8
-      proc->m_resident = kproc->ki_rssize * pageSizeKb;
26
-      proc->m_resident = kproc->ki_rssize * pageSizeKb;
9
+      proc->m_size = kproc->ki_size / 1024 / pageSizeKb;
27
+      proc->m_size = kproc->ki_size / 1024 / pageSizeKb;
10
+      proc->m_resident = kproc->ki_rssize;
28
+      proc->m_resident = kproc->ki_rssize;
29
+      proc->percent_mem = (proc->m_resident * PAGE_SIZE_KB) / (double)(Global_totalMem) * 100.0;
11
       proc->nlwp = kproc->ki_numthreads;
30
       proc->nlwp = kproc->ki_numthreads;
12
       proc->time = (kproc->ki_runtime + 5000) / 10000;
31
       proc->time = (kproc->ki_runtime + 5000) / 10000;
13
 
32
 
33
@@ -487,9 +492,6 @@
34
          // system idle process should own all CPU time left regardless of CPU count
35
          if ( strcmp("idle", kproc->ki_comm) == 0 ) {
36
             isIdleProcess = true;
37
-         } else {
38
-            if (cpus > 1)
39
-               proc->percent_cpu = proc->percent_cpu / (double) cpus;
40
          }
41
       }
42
       if (isIdleProcess == false && proc->percent_cpu >= 99.8) {

Return to bug 207120