 7c74d2bc5a
			
		
	
	
	7c74d2bc5a
	
	
	
		
			
			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>
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 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__ */
 |