From d0e70c748f517e9cf8ffcb1dbde4c4e7c4552b62 Mon Sep 17 00:00:00 2001 From: Shireesh Anjal Date: Wed, 3 Jan 2024 17:42:10 +0530 Subject: [PATCH] Use generic data structure (map) for THP configs --- health.go | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/health.go b/health.go index e6abc2e..4fed6e4 100644 --- a/health.go +++ b/health.go @@ -396,17 +396,6 @@ type XFSErrorConfig struct { MaxRetries int `json:"max_retries"` } -// THPConfigs - stores transparent huge pages (THP) related configs -type THPConfigs struct { - // /sys/kernel/mm/transparent_hugepage/enabled - Enabled string `json:"enabled"` - // /sys/kernel/mm/transparent_hugepage/defrag - Defrag string `json:"defrag"` - // /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none - MaxPtesNone int `json:"max_ptes_none"` - Error string `json:"error,omitempty"` -} - // GetOSInfo returns linux only operating system's information. func GetOSInfo(ctx context.Context, addr string) OSInfo { if runtime.GOOS != "linux" { @@ -500,28 +489,30 @@ func readIntFromFile(filePath string) (num int, err error) { return strconv.Atoi(strings.TrimSpace(string(data))) } -func getTHPConfigs() THPConfigs { +func getTHPConfigs() map[string]interface{} { + configs := map[string]interface{}{} data, err := os.ReadFile("/sys/kernel/mm/transparent_hugepage/enabled") if err != nil { - return THPConfigs{Error: err.Error()} + return map[string]interface{}{"error": err.Error()} } - configs := THPConfigs{Enabled: strings.TrimSpace(string(data))} + configs["enabled"] = strings.TrimSpace(string(data)) data, err = os.ReadFile("/sys/kernel/mm/transparent_hugepage/defrag") if err != nil { - return THPConfigs{Error: err.Error()} + return map[string]interface{}{"error": err.Error()} } - configs.Defrag = strings.TrimSpace(string(data)) + configs["defrag"] = strings.TrimSpace(string(data)) data, err = os.ReadFile("/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none") if err != nil { - return THPConfigs{Error: err.Error()} + return map[string]interface{}{"error": err.Error()} } - configs.MaxPtesNone, err = strconv.Atoi(strings.TrimSpace(string(data))) + configs["max_ptes_none"], err = strconv.Atoi(strings.TrimSpace(string(data))) if err != nil { - return THPConfigs{Error: err.Error()} + return map[string]interface{}{"error": err.Error()} } + return configs }