Skip to content

Commit

Permalink
Use generic data structure (map) for THP configs
Browse files Browse the repository at this point in the history
  • Loading branch information
anjalshireesh committed Jan 19, 2024
1 parent 16e3100 commit d0e70c7
Showing 1 changed file with 10 additions and 19 deletions.
29 changes: 10 additions & 19 deletions health.go
Original file line number Diff line number Diff line change
Expand Up @@ -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" {
Expand Down Expand Up @@ -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
}

Expand Down

0 comments on commit d0e70c7

Please sign in to comment.