feat(users/multi): bootstrap home-manager configuration for whitby
Change-Id: Iad3024a5a640d33377cfae436134fda9f358397b Reviewed-on: https://cl.tvl.fyi/c/depot/+/1703 Tested-by: BuildkiteCI Reviewed-by: multi <depot@in-addr.xyz>
This commit is contained in:
parent
5e58c8bc28
commit
5851f672ac
15 changed files with 3677 additions and 0 deletions
|
|
@ -0,0 +1,119 @@
|
|||
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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue