htop: import illumos fixes from OmniOS CE

This commit is contained in:
nia 2024-02-26 09:31:51 +00:00
parent 253c061ab4
commit 524ff3bf3a
8 changed files with 200 additions and 25 deletions

View File

@ -1,6 +1,11 @@
$NetBSD: distinfo,v 1.24 2024/02/18 01:51:01 fox Exp $
$NetBSD: distinfo,v 1.25 2024/02/26 09:31:51 nia Exp $
BLAKE2s (htop-3.3.0.tar.gz) = 49b573cab35804cb6e0c437af78e9311e00d719e66724222252980cf4b869f99
SHA512 (htop-3.3.0.tar.gz) = 4c03bd183d97ec84010472ea52ff6e210e6d211c813d0ab52bacef16d7e4eef9483e65279fb0a846dcdb532ad19eb1c1c39bad9dd8b103d36aeb51cb5d28e23a
Size (htop-3.3.0.tar.gz) = 406012 bytes
SHA1 (patch-solaris_Platform.h) = c23c6cf20607dd69e626be716337471fffd70d86
SHA1 (patch-solaris_Platform.c) = 0388d962692ce071e587a9a6a9f809051e817ef8
SHA1 (patch-solaris_SolarisMachine.c) = 8a25f831b674a2bb2342d70052c78edf3602c81f
SHA1 (patch-solaris_SolarisMachine.h) = 76d744d0189a7849b2d655e2343569e33609f367
SHA1 (patch-solaris_SolarisProcess.c) = 5d9725eccbd3a5cf857575f309ec86519adb433e
SHA1 (patch-solaris_SolarisProcess.h) = a1cc8f29f008e9a21cc79a524f78d9cd91bcd36c
SHA1 (patch-solaris_SolarisProcessTable.c) = 951b595cce2e6c460a16e46e8a26a6c2329607e0

View File

@ -0,0 +1,38 @@
$NetBSD: patch-solaris_Platform.c,v 1.3 2024/02/26 09:31:52 nia Exp $
PR created upstream:
https://github.com/htop-dev/htop/pull/1371
From 4b87af0663f83ed90f044f975e519409c92b8bd9 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omnios.org>
Date: Thu, 11 Jan 2024 17:44:34 +0000
Subject: [PATCH] fixes for illumos/Solaris platforms
--- solaris/Platform.c.orig 2024-01-10 09:54:15.000000000 +0000
+++ solaris/Platform.c
@@ -220,7 +220,7 @@ double Platform_setCPUValues(Meter* this
v[CPU_METER_NICE] = cpuData->nicePercent;
v[CPU_METER_NORMAL] = cpuData->userPercent;
- if (super->settings->detailedCPUTime) {
+ if (host->settings->detailedCPUTime) {
v[CPU_METER_KERNEL] = cpuData->systemPercent;
v[CPU_METER_IRQ] = cpuData->irqPercent;
this->curItems = 4;
@@ -258,13 +258,13 @@ void Platform_setSwapValues(Meter* this)
}
void Platform_setZfsArcValues(Meter* this) {
- const SolarisMachine* shost = (SolarisMachine*) this->host;
+ const SolarisMachine* shost = (const SolarisMachine*) this->host;
ZfsArcMeter_readStats(this, &shost->zfs);
}
void Platform_setZfsCompressedArcValues(Meter* this) {
- const SolarisMachine* shost = (SolarisMachine*) this->host;
+ const SolarisMachine* shost = (const SolarisMachine*) this->host;
ZfsCompressedArcMeter_readStats(this, &shost->zfs);
}

View File

@ -1,23 +0,0 @@
$NetBSD: patch-solaris_Platform.h,v 1.1 2022/05/16 12:14:22 jperkin Exp $
Remove unwanted and breaking includes.
--- solaris/Platform.h.orig 2022-05-01 06:31:20.000000000 +0000
+++ solaris/Platform.h
@@ -17,16 +17,12 @@ in the source distribution for its full
* Since ncruses macros use the ERR macro, we can not use another name.
*/
#undef ERR
-#include <libproc.h>
#undef ERR
#define ERR (-1)
#include <signal.h>
#include <stdbool.h>
-#include <sys/mkdev.h>
-#include <sys/proc.h>
-#include <sys/types.h>
#include "Action.h"
#include "BatteryMeter.h"

View File

@ -0,0 +1,33 @@
$NetBSD: patch-solaris_SolarisMachine.c,v 1.1 2024/02/26 09:31:52 nia Exp $
PR created upstream:
https://github.com/htop-dev/htop/pull/1371
From 4b87af0663f83ed90f044f975e519409c92b8bd9 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omnios.org>
Date: Thu, 11 Jan 2024 17:44:34 +0000
Subject: [PATCH] fixes for illumos/Solaris platforms
--- solaris/SolarisMachine.c.orig 2024-01-10 09:54:15.000000000 +0000
+++ solaris/SolarisMachine.c
@@ -57,7 +57,7 @@ static void SolarisMachine_updateCPUcoun
if (s != super->activeCPUs) {
change = true;
- hsuper->activeCPUs = s;
+ super->activeCPUs = s;
}
if (change) {
@@ -310,6 +310,10 @@ Machine* Machine_new(UsersTable* usersTa
CRT_fatalError("Cannot get pagesize by sysconf(_SC_PAGESIZE)");
this->pageSizeKB = this->pageSize / 1024;
+ this->kd = kstat_open();
+ if (!this->kd)
+ CRT_fatalError("Cannot open kstat handle");
+
SolarisMachine_updateCPUcount(this);
return super;

View File

@ -0,0 +1,21 @@
$NetBSD: patch-solaris_SolarisMachine.h,v 1.1 2024/02/26 09:31:52 nia Exp $
PR created upstream:
https://github.com/htop-dev/htop/pull/1371
From 4b87af0663f83ed90f044f975e519409c92b8bd9 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omnios.org>
Date: Thu, 11 Jan 2024 17:44:34 +0000
Subject: [PATCH] fixes for illumos/Solaris platforms
--- solaris/SolarisMachine.h.orig 2024-01-10 09:54:15.000000000 +0000
+++ solaris/SolarisMachine.h
@@ -19,6 +19,7 @@ in the source distribution for its full
#include <sys/uio.h>
#include "Hashtable.h"
+#include "Machine.h"
#include "UsersTable.h"
#include "zfs/ZfsArcStats.h"

View File

@ -0,0 +1,21 @@
$NetBSD: patch-solaris_SolarisProcess.c,v 1.1 2024/02/26 09:31:52 nia Exp $
PR created upstream:
https://github.com/htop-dev/htop/pull/1371
From 4b87af0663f83ed90f044f975e519409c92b8bd9 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omnios.org>
Date: Thu, 11 Jan 2024 17:44:34 +0000
Subject: [PATCH] fixes for illumos/Solaris platforms
--- solaris/SolarisProcess.c.orig 2024-01-10 09:54:15.000000000 +0000
+++ solaris/SolarisProcess.c
@@ -15,7 +15,6 @@ in the source distribution for its full
#include <unistd.h>
#include <sys/syscall.h>
-#include "Process.h"
#include "ProcessTable.h"
#include "CRT.h"

View File

@ -0,0 +1,21 @@
$NetBSD: patch-solaris_SolarisProcess.h,v 1.1 2024/02/26 09:31:52 nia Exp $
PR created upstream:
https://github.com/htop-dev/htop/pull/1371
From 4b87af0663f83ed90f044f975e519409c92b8bd9 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omnios.org>
Date: Thu, 11 Jan 2024 17:44:34 +0000
Subject: [PATCH] fixes for illumos/Solaris platforms
--- solaris/SolarisProcess.h.orig 2024-01-10 09:54:15.000000000 +0000
+++ solaris/SolarisProcess.h
@@ -20,6 +20,7 @@ in the source distribution for its full
#define ERR (-1)
#include "Machine.h"
+#include "Process.h"
typedef struct SolarisProcess_ {

View File

@ -0,0 +1,59 @@
$NetBSD: patch-solaris_SolarisProcessTable.c,v 1.1 2024/02/26 09:31:52 nia Exp $
PR created upstream:
https://github.com/htop-dev/htop/pull/1371
From 4b87af0663f83ed90f044f975e519409c92b8bd9 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omnios.org>
Date: Thu, 11 Jan 2024 17:44:34 +0000
Subject: [PATCH] fixes for illumos/Solaris platforms
--- solaris/SolarisProcessTable.c.orig 2024-01-10 09:54:15.000000000 +0000
+++ solaris/SolarisProcessTable.c
@@ -24,6 +24,7 @@ in the source distribution for its full
#include "CRT.h"
#include "solaris/Platform.h"
+#include "solaris/SolarisMachine.h"
#include "solaris/SolarisProcess.h"
@@ -112,8 +113,8 @@ static int SolarisProcessTable_walkproc(
// Setup process list
ProcessTable* pt = (ProcessTable*) listptr;
- SolarisProcessTable* spt = (SolarisProcessTable*) listptr;
- Machine* host = pt->host;
+ const Machine* host = pt->super.host;
+ const SolarisMachine* shost = (const SolarisMachine*) host;
id_t lwpid_real = _lwpsinfo->pr_lwpid;
if (lwpid_real > 1023) {
@@ -133,7 +134,7 @@ static int SolarisProcessTable_walkproc(
const Settings* settings = host->settings;
// Common code pass 1
- proc->show = false;
+ proc->super.show = false;
sproc->taskid = _psinfo->pr_taskid;
sproc->projid = _psinfo->pr_projid;
sproc->poolid = _psinfo->pr_poolid;
@@ -171,7 +172,7 @@ static int SolarisProcessTable_walkproc(
sproc->realpid = _psinfo->pr_pid;
sproc->lwpid = lwpid_real;
sproc->zoneid = _psinfo->pr_zoneid;
- sproc->zname = SolarisProcessTable_readZoneName(spt->kd, sproc);
+ sproc->zname = SolarisProcessTable_readZoneName(shost->kd, sproc);
SolarisProcessTable_updateExe(_psinfo->pr_pid, proc);
Process_updateComm(proc, _psinfo->pr_fname);
@@ -218,7 +219,7 @@ static int SolarisProcessTable_walkproc(
pt->totalTasks += proc->nlwp + 1;
}
}
- proc->show = !(settings->hideKernelThreads && proc->isKernelThread);
+ proc->super.show = !(settings->hideKernelThreads && proc->isKernelThread);
} else { // We are not in the master LWP, so jump to the LWP handling code
proc->percent_cpu = ((uint16_t)_lwpsinfo->pr_pctcpu / (double)32768) * (double)100.0;
Process_updateCPUFieldWidths(proc->percent_cpu);