diff options
author | cy <cy@FreeBSD.org> | 2016-02-14 11:07:00 +0800 |
---|---|---|
committer | cy <cy@FreeBSD.org> | 2016-02-14 11:07:00 +0800 |
commit | 9c4efa54054df4ae21a1d2cab3a3cc91bcb0e98c (patch) | |
tree | 63ace72e26f8b43b5badbdb89639aeeff08b9c16 /sysutils | |
parent | be92566f4c39176a9881928694c4b719e4481065 (diff) | |
download | freebsd-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/Makefile | 2 | ||||
-rw-r--r-- | sysutils/htop/files/patch-freebsd__FreeBSDProcessList.c | 35 |
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) { |