-
Notifications
You must be signed in to change notification settings - Fork 8
razvanlupusoru/Intel-RAPL-via-Sysfs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
* intel_rapl_power.c - Sysfs entries for Running Average Power Limit interfaces * Copyright (c) 2011 Razvan A. Lupusoru <razvan.lupusoru@gmail.com> * For documentation on Platform Specific Power Management Support using RAPL * please consult the Intel 64 and IA-32 Architectures Software Developer's * Manual Volume 3 Section 14.7 (as of April 2011) INFORMATION ABOUT RAPL • MSR_PKG_POWER_LIMIT allows a software agent to define power limitation for the package domain. Power limitation is defined in terms of average power usage (Watts) over a time window specified in MSR_PKG_POWER_LIMIT. Two power limits can be specified, corresponding to time windows of different sizes. Each power limit provides independent clamping control that would permit the processor cores to go below OS-requested state to meet the power limits. A lock mechanism allow the soft- ware agent to enforce power limit settings. Once the lock bit is set, the power limit settings are static and un-modifiable until next RESET. • MSR_PKG_ENERGY_STATUS is a read-only MSR. It reports the actual energy use for the package domain. This MSR is updated every ~1msec. It has a wraparound time of around 60 secs when power consumption is high, and may be longer otherwise. • MSR_PKG_POWER_INFO is a read-only MSR. It reports the package power range information for RAPL usage. This MSR provides maximum/minimum values (derived from electrical specification), thermal specification power of the package domain. It also provides the largest possible time window for software to program the RAPL interface. • Power Units : Power related information (in Watts) is based on the multiplier, 1/ 2^PU; where PU is an unsigned integer with default value of 0011b, indicating power unit is in 1/8 Watts increment. • Energy Status Units : Energy related information (in Joules) is based on the multiplier, 1/ 2^ESU; where ESU is an unsigned integer with default value of 10000b, indicating energy status unit is in 15.3 micro-Joules increment. • Time Units : Time related information (in Seconds) is based on the multiplier, 1/ 2^TU; where TU is an unsigned integer with default value of 1010b, indicating time unit is in 976 micro-seconds increment. SYSFS ENTRIES The following sysfs entries are created in /sys/kernel/cpu_power_info - total_energy_millijoules Associated with MSR_PKG_ENERGY_STATUS MSR. Value is read-only. Returns the actual energy use for the package domain in millijoules. The value is updated ~1msec. It has a wraparound time of around 60 secs when power consumption is high, and may be longer otherwise. - current_power_milliwatts Associated with MSR_PKG_ENERGY_STATUS MSR. Value is read-only. Returns the current power usage in milliwatts. The value is updated ~1sec. - thermal_spec_power_watts Associated with MSR_PKG_POWER_INFO MSR. Value is read-only. Returns the thermal specification power of the package domain in watts. - minimum_power_watts Associated with MSR_PKG_POWER_INFO MSR. Value is read-only. Returns the minimum power derived from the electrical spec of the package domain in watts. - maximum_power_watts Associated with MSR_PKG_POWER_INFO MSR. Value is read-only. Returns the maximum power derived from the electrical spec of the package domain in watts. - maximum_time_window_milliseconds Associated with MSR_PKG_POWER_INFO MSR. Value is read-only. Returns the largest acceptable value (in milliseconds) to program the time window of the MSR_PKG_POWER_LIMIT MSR. - power_limit_lock Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. If enabled, all write attempts to the MSR are ignored until the next reset. 0 = disabled ; 1 = enabled - power_limit_1 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Sets the average power usage limit of the package domain corresponding to time window #1. The unit of this field is specified by the “Power Units” from section above. - power_limit_2 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Sets the average power usage limit of the package domain corresponding to time window #2. The unit of this field is specified by the “Power Units” from section above. - enable_limit_1 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Can enable/disable power limit #1. 0 = disabled ; 1 = enabled - enable_limit_2 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Can enable/disable power limit #2. 0 = disabled ; 1 = enabled - clamping_limit_1 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Sets the time window which allows going below OS-requested P/T state setting. The unit of this field is specified by the "Time Units” from section above. - clamping_limit_2 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Sets the time window which allows going below OS-requested P/T state setting. The unit of this field is specified by the "Time Units” from section above. - time_window_power_limit_1 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Indicates the length of time window over which the power limit #1. The numeric value is 7 bits long and is represented by the product of 2^Y *F; where F is a single-digit decimal floating- point value between 1.0 and 1.3 with the fraction digit represented by the two higher order bits, Y is an unsigned integer represented by the five lower order bits. The unit of this field is specified by the “Time Units” from section above. - time_window_power_limit_2 Associated with MSR_PKG_POWER_LIMIT MSR. Value is read/write. Indicates the length of time window over which the power limit #2. The numeric value is 7 bits long and is represented by the product of 2^Y *F; where F is a single-digit decimal floating- point value between 1.0 and 1.3 with the fraction digit represented by the two higher order bits, Y is an unsigned integer represented by the five lower order bits. The unit of this field is specified by the “Time Units” from section above.
About
Sysfs entries for Running Average Power Limit interfaces
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published