summaryrefslogtreecommitdiffstats
path: root/netbsd
diff options
context:
space:
mode:
authorfraggerfox <santhosh.raju@gmail.com>2021-04-17 08:41:50 +0530
committerBenBE <BenBE@geshi.org>2021-06-26 12:18:37 +0200
commitddcfb179b4a3972d19e655cb1a8668e460d8617f (patch)
treeeece542c1e5266bb3b0b9958592a030a1bff721b /netbsd
parentb900e70e8049da1e1a400af49226e1f4e71580b8 (diff)
Remove unwanted code, updates the comments
Diffstat (limited to 'netbsd')
-rw-r--r--netbsd/NetBSDProcess.c3
-rw-r--r--netbsd/NetBSDProcessList.c96
2 files changed, 7 insertions, 92 deletions
diff --git a/netbsd/NetBSDProcess.c b/netbsd/NetBSDProcess.c
index 7858fa5b..53fdb3de 100644
--- a/netbsd/NetBSDProcess.c
+++ b/netbsd/NetBSDProcess.c
@@ -199,10 +199,9 @@ void Process_delete(Object* cast) {
}
static void NetBSDProcess_writeField(const Process* this, RichString* str, ProcessField field) {
- //const NetBSDProcess* op = (const NetBSDProcess*) this;
char buffer[256]; buffer[255] = '\0';
int attr = CRT_colors[DEFAULT_COLOR];
- //int n = sizeof(buffer) - 1;
+
switch (field) {
// add NetBSD-specific fields here
default:
diff --git a/netbsd/NetBSDProcessList.c b/netbsd/NetBSDProcessList.c
index efaa2478..e6a0e6b1 100644
--- a/netbsd/NetBSDProcessList.c
+++ b/netbsd/NetBSDProcessList.c
@@ -102,7 +102,7 @@ static void NetBSDProcessList_scanMemoryInfo(ProcessList* pl) {
pl->totalMem = uvmexp.npages * pageSizeKB;
- // These calculations have been taken from sys/miscfs/procfs
+ // These calculations have been taken from NetBSD's top(1)
// They need review for testing the correctness
//pl->freeMem = uvmexp.free * pageSizeKB;
pl->buffersMem = uvmexp.filepages * pageSizeKB;
@@ -111,62 +111,11 @@ static void NetBSDProcessList_scanMemoryInfo(ProcessList* pl) {
pl->totalSwap = uvmexp.swpages * pageSizeKB;
pl->usedSwap = uvmexp.swpginuse * pageSizeKB;
-
-// const int uvmexp_mib[] = { CTL_VM, VM_UVMEXP };
-// struct uvmexp uvmexp;
-// size_t size_uvmexp = sizeof(uvmexp);
-//
-// if (sysctl(uvmexp_mib, 2, &uvmexp, &size_uvmexp, NULL, 0) < 0) {
-// CRT_fatalError("uvmexp sysctl call failed");
-// }
-//
-// pl->totalMem = uvmexp.npages * pageSizeKB;
-// pl->usedMem = (uvmexp.npages - uvmexp.free - uvmexp.paging) * pageSizeKB;
-//
-// // Taken from NetBSD systat/iostat.c, top/machine.c and uvm_sysctl(9)
-// const int bcache_mib[] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
-// struct bcachestats bcstats;
-// size_t size_bcstats = sizeof(bcstats);
-//
-// if (sysctl(bcache_mib, 3, &bcstats, &size_bcstats, NULL, 0) < 0) {
-// CRT_fatalError("cannot get vfs.bcachestat");
-// }
-//
-// pl->cachedMem = bcstats.numbufpages * pageSizeKB;
-//
-// /*
-// * Copyright (c) 1994 Thorsten Lockert <tholo@sigmasoft.com>
-// * All rights reserved.
-// *
-// * Taken almost directly from OpenBSD's top(1)
-// *
-// * Originally released under a BSD-3 license
-// * Modified through htop developers applying GPL-2
-// */
-// int nswap = swapctl(SWAP_NSWAP, 0, 0);
-// if (nswap > 0) {
-// struct swapent swdev[nswap];
-// int rnswap = swapctl(SWAP_STATS, swdev, nswap);
-//
-// /* Total things up */
-// unsigned long long int total = 0, used = 0;
-// for (int i = 0; i < rnswap; i++) {
-// if (swdev[i].se_flags & SWF_ENABLE) {
-// used += (swdev[i].se_inuse / (1024 / DEV_BSIZE));
-// total += (swdev[i].se_nblks / (1024 / DEV_BSIZE));
-// }
-// }
-//
-// pl->totalSwap = total;
-// pl->usedSwap = used;
-// } else {
-// pl->totalSwap = pl->usedSwap = 0;
-// }
}
static char* NetBSDProcessList_readProcessName(kvm_t* kd, const struct kinfo_proc2* kproc, int* basenameEnd) {
/*
- * Like OpenBSD's top(1), we try to fall back to the command name
+ * Like NetBSD's top(1), we try to fall back to the command name
* (argv[0]) if we fail to construct the full command.
*/
char** arg = kvm_getargv2(kd, kproc, 500);
@@ -202,7 +151,7 @@ static char* NetBSDProcessList_readProcessName(kvm_t* kd, const struct kinfo_pro
}
/*
- * Taken from OpenBSD's ps(1).
+ * Borrowed with modifications from NetBSD's top(1).
*/
static double getpcpu(const struct kinfo_proc2* kp) {
if (fscale == 0)
@@ -217,7 +166,7 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) {
bool hideUserlandThreads = settings->hideUserlandThreads;
int count = 0;
int nlwps = 0;
-
+
const struct kinfo_proc2* kprocs = kvm_getproc2(this->kd, KERN_PROC_ALL, 0, sizeof(struct kinfo_proc2), &count);
for (int i = 0; i < count; i++) {
@@ -225,7 +174,6 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) {
bool preExisting = false;
Process* proc = ProcessList_getProcess(&this->super, kproc->p_pid, &preExisting, NetBSDProcess_new);
- //NetBSDProcess* fp = (NetBSDProcess*) proc;
proc->show = ! ((hideKernelThreads && Process_isKernelThread(proc)) || (hideUserlandThreads && Process_isUserlandThread(proc)));
@@ -248,20 +196,18 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) {
proc->comm = NetBSDProcessList_readProcessName(this->kd, kproc, &proc->basenameOffset);
}
}
-
+
proc->m_virt = kproc->p_vm_vsize;
proc->m_resident = kproc->p_vm_rssize;
proc->percent_mem = (proc->m_resident * pageSizeKB) / (double)(this->super.totalMem) * 100.0;
proc->percent_cpu = CLAMP(getpcpu(kproc), 0.0, this->super.cpuCount * 100.0);
- //proc->nlwp = kproc->p_numthreads;
+ proc->nlwp = kproc->p_nlwps;
proc->nice = kproc->p_nice - 20;
proc->time = 100 * (kproc->p_rtime_sec + ((kproc->p_rtime_usec + 500000) / 1000000));
proc->priority = kproc->p_priority - PZERO;
struct kinfo_lwp* klwps = kvm_getlwps(this->kd, kproc->p_pid, kproc->p_paddr, sizeof(struct kinfo_lwp), &nlwps);
- proc->nlwp = nlwps;
-
switch (kproc->p_realstat) {
case SIDL: proc->state = 'I'; break;
case SACTIVE:
@@ -285,21 +231,6 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) {
case SDEAD: proc->state = 'D'; break;
default: proc->state = '?';
}
-
-// switch (kproc->p_stat) {
-// case SIDL: proc->state = 'I'; break;
-// case SRUN: proc->state = 'R'; break;
-// case SSLEEP: proc->state = 'S'; break;
-// case SSTOP: proc->state = 'T'; break;
-// case SZOMB: proc->state = 'Z'; break;
-// case SDEAD: proc->state = 'D'; break;
-// case SONPROC: proc->state = 'P'; break;
-// default: proc->state = '?';
-// }
-//
-// if (Process_isKernelThread(proc)) {
-// this->super.kernelThreads++;
-// }
this->super.totalTasks++;
// SRUN ('R') means runnable, not running
@@ -330,20 +261,11 @@ static void kernelCPUTimesToHtop(const u_int64_t* times, CPUData* cpu) {
unsigned long long sysAllTime = times[CP_INTR] + times[CP_SYS];
- // XXX Not sure if CP_SPIN should be added to sysAllTime.
- // See https://github.com/openbsd/src/commit/531d8034253fb82282f0f353c086e9ad827e031c
- #ifdef CP_SPIN
- sysAllTime += times[CP_SPIN];
- #endif
-
cpu->totalPeriod = saturatingSub(totalTime, cpu->totalTime);
cpu->userPeriod = saturatingSub(times[CP_USER], cpu->userTime);
cpu->nicePeriod = saturatingSub(times[CP_NICE], cpu->niceTime);
cpu->sysPeriod = saturatingSub(times[CP_SYS], cpu->sysTime);
cpu->sysAllPeriod = saturatingSub(sysAllTime, cpu->sysAllTime);
- #ifdef CP_SPIN
- cpu->spinPeriod = saturatingSub(times[CP_SPIN], cpu->spinTime);
- #endif
cpu->intrPeriod = saturatingSub(times[CP_INTR], cpu->intrTime);
cpu->idlePeriod = saturatingSub(times[CP_IDLE], cpu->idleTime);
@@ -352,9 +274,6 @@ static void kernelCPUTimesToHtop(const u_int64_t* times, CPUData* cpu) {
cpu->niceTime = times[CP_NICE];
cpu->sysTime = times[CP_SYS];
cpu->sysAllTime = sysAllTime;
- #ifdef CP_SPIN
- cpu->spinTime = times[CP_SPIN];
- #endif
cpu->intrTime = times[CP_INTR];
cpu->idleTime = times[CP_IDLE];
}
@@ -371,9 +290,6 @@ static void NetBSDProcessList_scanCPUTime(NetBSDProcessList* this) {
avg[CP_USER] += cpu->userTime;
avg[CP_NICE] += cpu->niceTime;
avg[CP_SYS] += cpu->sysTime;
- #ifdef CP_SPIN
- avg[CP_SPIN] += cpu->spinTime;
- #endif
avg[CP_INTR] += cpu->intrTime;
avg[CP_IDLE] += cpu->idleTime;
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy