diff options
Diffstat (limited to 'users/multi/pkgs/htop/zfs-arc-cache/0001-Linux-consider-ZFS-ARC-to-be-cache.patch')
-rw-r--r-- | users/multi/pkgs/htop/zfs-arc-cache/0001-Linux-consider-ZFS-ARC-to-be-cache.patch | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/users/multi/pkgs/htop/zfs-arc-cache/0001-Linux-consider-ZFS-ARC-to-be-cache.patch b/users/multi/pkgs/htop/zfs-arc-cache/0001-Linux-consider-ZFS-ARC-to-be-cache.patch deleted file mode 100644 index 50b2abd2b803..000000000000 --- a/users/multi/pkgs/htop/zfs-arc-cache/0001-Linux-consider-ZFS-ARC-to-be-cache.patch +++ /dev/null @@ -1,119 +0,0 @@ -From d1dadae5674222a0134092b3313383e088deda89 Mon Sep 17 00:00:00 2001 -From: multiplexd <multi@in-addr.xyz> -Date: Sat, 9 May 2020 20:13:09 +0100 -Subject: [PATCH] Linux: consider ZFS ARC to be cache - ---- - ProcessList.c | 1 + - ProcessList.h | 1 + - linux/LinuxProcessList.c | 27 +++++++++++++++++++++++++++ - linux/LinuxProcessList.h | 4 ++++ - linux/Platform.c | 5 +++-- - 5 files changed, 36 insertions(+), 2 deletions(-) - -diff --git a/ProcessList.c b/ProcessList.c -index 7482b03..7083957 100644 ---- a/ProcessList.c -+++ b/ProcessList.c -@@ -67,6 +67,7 @@ typedef struct ProcessList_ { - unsigned long long int totalSwap; - unsigned long long int usedSwap; - unsigned long long int freeSwap; -+ unsigned long long int arcSize; - - int cpuCount; - -diff --git a/ProcessList.h b/ProcessList.h -index 572d484..65029f1 100644 ---- a/ProcessList.h -+++ b/ProcessList.h -@@ -61,6 +61,7 @@ typedef struct ProcessList_ { - unsigned long long int totalSwap; - unsigned long long int usedSwap; - unsigned long long int freeSwap; -+ unsigned long long int arcSize; - - int cpuCount; - -diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c -index 5f38540..507ebd2 100644 ---- a/linux/LinuxProcessList.c -+++ b/linux/LinuxProcessList.c -@@ -104,6 +104,10 @@ typedef struct LinuxProcessList_ { - #define PROCSTATFILE PROCDIR "/stat" - #endif - -+#ifndef ARCSTATFILE -+#define ARCSTATFILE PROCDIR "/spl/kstat/zfs/arcstats" -+#endif -+ - #ifndef PROCMEMINFOFILE - #define PROCMEMINFOFILE PROCDIR "/meminfo" - #endif -@@ -962,6 +966,29 @@ static inline void LinuxProcessList_scanMemoryInfo(ProcessList* this) { - this->cachedMem = this->cachedMem + sreclaimable - shmem; - this->usedSwap = this->totalSwap - swapFree; - fclose(file); -+ -+ file = fopen(ARCSTATFILE, "r"); -+ if (file == NULL && errno != ENOENT) { -+ CRT_fatalError("Cannot open " ARCSTATFILE); -+ } -+ -+ if (file != NULL) { -+ // skip the first two lines -+ fgets(buffer, sizeof buffer, file); -+ fgets(buffer, sizeof buffer, file); -+ -+ unsigned long long int arcsize = 0; -+ while (fgets(buffer, sizeof buffer, file)) { -+ #define tryRead(label, variable) do { if (String_startsWith(buffer, label) && sscanf(buffer + strlen(label), " %*d %llu", variable)) { break; } } while(0) -+ if (buffer[0] == 's') tryRead("size", &arcsize); -+ } -+ -+ this->arcSize = arcsize / 1024; -+ -+ fclose(file); -+ } else { -+ this->arcSize = 0; -+ } - } - - static inline double LinuxProcessList_scanCPUTime(LinuxProcessList* this) { -diff --git a/linux/LinuxProcessList.h b/linux/LinuxProcessList.h -index f30b487..8f2edbb 100644 ---- a/linux/LinuxProcessList.h -+++ b/linux/LinuxProcessList.h -@@ -77,6 +77,10 @@ typedef struct LinuxProcessList_ { - #define PROCSTATFILE PROCDIR "/stat" - #endif - -+#ifndef ARCSTATFILE -+#define ARCSTATFILE PROCDIR "/spl/kstat/zfs/arcstats" -+#endif -+ - #ifndef PROCMEMINFOFILE - #define PROCMEMINFOFILE PROCDIR "/meminfo" - #endif -diff --git a/linux/Platform.c b/linux/Platform.c -index ab90ca7..fb78c4c 100644 ---- a/linux/Platform.c -+++ b/linux/Platform.c -@@ -200,11 +200,12 @@ void Platform_setMemoryValues(Meter* this) { - long int usedMem = pl->usedMem; - long int buffersMem = pl->buffersMem; - long int cachedMem = pl->cachedMem; -- usedMem -= buffersMem + cachedMem; -+ long int arcSize = pl->arcSize; -+ usedMem -= buffersMem + cachedMem + arcSize; - this->total = pl->totalMem; - this->values[0] = usedMem; - this->values[1] = buffersMem; -- this->values[2] = cachedMem; -+ this->values[2] = cachedMem + arcSize; - } - - void Platform_setSwapValues(Meter* this) { --- -2.20.1 - |