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) { |