aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils
diff options
context:
space:
mode:
authorcy <cy@FreeBSD.org>2016-02-14 11:07:00 +0800
committercy <cy@FreeBSD.org>2016-02-14 11:07:00 +0800
commit9c4efa54054df4ae21a1d2cab3a3cc91bcb0e98c (patch)
tree63ace72e26f8b43b5badbdb89639aeeff08b9c16 /sysutils
parentbe92566f4c39176a9881928694c4b719e4481065 (diff)
downloadfreebsd-ports-gnome-9c4efa54054df4ae21a1d2cab3a3cc91bcb0e98c.tar.gz
freebsd-ports-gnome-9c4efa54054df4ae21a1d2cab3a3cc91bcb0e98c.tar.zst
freebsd-ports-gnome-9c4efa54054df4ae21a1d2cab3a3cc91bcb0e98c.zip
Make CPU% display the same as ps and top do.
MEM% displays 0.0. Fix that. PR: 207120
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/htop/Makefile2
-rw-r--r--sysutils/htop/files/patch-freebsd__FreeBSDProcessList.c35
2 files changed, 33 insertions, 4 deletions
diff --git a/sysutils/htop/Makefile b/sysutils/htop/Makefile
index 1e6b0334d360..979585224d2d 100644
--- a/sysutils/htop/Makefile
+++ b/sysutils/htop/Makefile
@@ -3,7 +3,7 @@
PORTNAME= htop
PORTVERSION= 2.0.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= sysutils
MAINTAINER= gaod@hychen.org
diff --git a/sysutils/htop/files/patch-freebsd__FreeBSDProcessList.c b/sysutils/htop/files/patch-freebsd__FreeBSDProcessList.c
index 27f7165ab4b1..af92b315bbda 100644
--- a/sysutils/htop/files/patch-freebsd__FreeBSDProcessList.c
+++ b/sysutils/htop/files/patch-freebsd__FreeBSDProcessList.c
@@ -1,6 +1,24 @@
---- freebsd/FreeBSDProcessList.c.orig 2016-02-13 00:37:56.160832000 +0800
-+++ freebsd/FreeBSDProcessList.c 2016-02-13 00:38:19.671290000 +0800
-@@ -477,8 +477,8 @@
+--- freebsd/FreeBSDProcessList.c.orig 2016-02-10 12:48:39.000000000 -0800
++++ freebsd/FreeBSDProcessList.c 2016-02-13 13:42:40.759431578 -0800
+@@ -84,6 +84,8 @@
+ static int MIB_kern_cp_times[2];
+ static int kernelFScale;
+
++// XXX hack
++static unsigned long long int Global_totalMem;
+
+ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) {
+ FreeBSDProcessList* fpl = xCalloc(1, sizeof(FreeBSDProcessList));
+@@ -301,6 +303,8 @@
+ //pl->totalMem *= pageSizeKb;
+ sysctl(MIB_hw_physmem, 2, &(pl->totalMem), &len, NULL, 0);
+ pl->totalMem /= 1024;
++ // XXX hack
++ Global_totalMem = pl->totalMem;
+
+ sysctl(MIB_vm_stats_vm_v_active_count, 4, &(fpl->memActive), &len, NULL, 0);
+ fpl->memActive *= pageSizeKb;
+@@ -477,8 +481,9 @@
}
// from FreeBSD source /src/usr.bin/top/machine.c
@@ -8,6 +26,17 @@
- proc->m_resident = kproc->ki_rssize * pageSizeKb;
+ proc->m_size = kproc->ki_size / 1024 / pageSizeKb;
+ proc->m_resident = kproc->ki_rssize;
++ proc->percent_mem = (proc->m_resident * PAGE_SIZE_KB) / (double)(Global_totalMem) * 100.0;
proc->nlwp = kproc->ki_numthreads;
proc->time = (kproc->ki_runtime + 5000) / 10000;
+@@ -487,9 +492,6 @@
+ // system idle process should own all CPU time left regardless of CPU count
+ if ( strcmp("idle", kproc->ki_comm) == 0 ) {
+ isIdleProcess = true;
+- } else {
+- if (cpus > 1)
+- proc->percent_cpu = proc->percent_cpu / (double) cpus;
+ }
+ }
+ if (isIdleProcess == false && proc->percent_cpu >= 99.8) {