![Thomas Renninger](/assets/img/avatar_default.png)
Before, checking for offlined CPUs was done dirty and it was checked whether topology parsing returned -1 values. But this is a valid case on a Xen (and possibly other) kernels. Do proper online/offline checking, also take CONFIG_HOTPLUG_CPU option into account (no /sys/devices/../cpuX/online file). Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
31 lines
1 KiB
C
31 lines
1 KiB
C
#ifndef __CPUPOWER_HELPERS_SYSFS_H__
|
|
#define __CPUPOWER_HELPERS_SYSFS_H__
|
|
|
|
#define PATH_TO_CPU "/sys/devices/system/cpu/"
|
|
#define MAX_LINE_LEN 255
|
|
#define SYSFS_PATH_MAX 255
|
|
|
|
extern unsigned int sysfs_read_file(const char *path, char *buf, size_t buflen);
|
|
|
|
extern int sysfs_is_cpu_online(unsigned int cpu);
|
|
|
|
extern unsigned long sysfs_get_idlestate_latency(unsigned int cpu,
|
|
unsigned int idlestate);
|
|
extern unsigned long sysfs_get_idlestate_usage(unsigned int cpu,
|
|
unsigned int idlestate);
|
|
extern unsigned long long sysfs_get_idlestate_time(unsigned int cpu,
|
|
unsigned int idlestate);
|
|
extern char *sysfs_get_idlestate_name(unsigned int cpu,
|
|
unsigned int idlestate);
|
|
extern char *sysfs_get_idlestate_desc(unsigned int cpu,
|
|
unsigned int idlestate);
|
|
extern int sysfs_get_idlestate_count(unsigned int cpu);
|
|
|
|
extern char *sysfs_get_cpuidle_governor(void);
|
|
extern char *sysfs_get_cpuidle_driver(void);
|
|
|
|
extern int sysfs_get_sched(const char *smt_mc);
|
|
extern int sysfs_set_sched(const char *smt_mc, int val);
|
|
|
|
#endif /* __CPUPOWER_HELPERS_SYSFS_H__ */
|