|
geopm 3.2.1.dev516+g3137a7fce
GEOPM - Global Extensible Open Power Manager
|
SysfsDriver implementation for the Linux intel_uncore_frequency driver. More...
#include <UncoreFreqSysfsDriver.hpp>


Public Member Functions | |
| UncoreFreqSysfsDriver () | |
| UncoreFreqSysfsDriver (const std::string &uncore_directory) | |
| virtual | ~UncoreFreqSysfsDriver ()=default |
| int | domain_type (const std::string &name) const override |
| Get the PlatformTopo domain type for an named attribute. | |
| std::string | attribute_path (const std::string &name, int domain_idx) override |
| Get the path to the sysfs entry for signal. | |
| std::function< double(const std::string &)> | signal_parse (const std::string &signal_name) const override |
| Get function to convert contents of sysfs file into signal. | |
| std::function< std::string(double)> | control_gen (const std::string &control_name) const override |
| Get a function to convert a control into a sysfs string. | |
| std::string | driver (void) const override |
| std::map< std::string, properties_s > | properties (void) const override |
| Query the meta data about a signal or control. | |
Public Member Functions inherited from geopm::SysfsDriver | |
| SysfsDriver ()=default | |
| virtual | ~SysfsDriver ()=default |
| virtual std::map< std::string, derived_signal_info_s > | derived_signals (void) const |
| Query mapping of derived signal aliases to their metadata and sources. | |
Static Public Member Functions | |
| static std::string | plugin_name (void) |
| static std::unique_ptr< IOGroup > | make_plugin (void) |
Static Public Member Functions inherited from geopm::SysfsDriver | |
| static std::map< std::string, SysfsDriver::properties_s > | parse_properties_json (const std::string &iogroup_name, const std::string &properties_json) |
Additional Inherited Members | |
Static Public Attributes inherited from geopm::SysfsDriver | |
| static constexpr size_t | M_IO_BUFFER_SIZE = 128 |
| Arbitrary buffer size. | |
SysfsDriver implementation for the Linux intel_uncore_frequency driver.
On recent Intel Xeon parts (Granite Rapids, Sierra Forest, Clearwater Forest, and later) the uncore frequency knobs moved from MSRs to the TPMI memory-mapped interface and are exposed to userspace through /sys/devices/system/cpu/intel_uncore_frequency/. This driver maps that sysfs surface onto the generic SysfsIOGroup so that the existing CPU_UNCORE_FREQUENCY_{MAX,MIN}_CONTROL and CPU_UNCORE_FREQUENCY_STATUS aliases keep working on those platforms. Controls are package-scoped: max/min are read from and written to the package_*_die_* fan-out directory, while the current-frequency status is read from a representative uncore* domain in the package.
| geopm::UncoreFreqSysfsDriver::UncoreFreqSysfsDriver | ( | ) |
| geopm::UncoreFreqSysfsDriver::UncoreFreqSysfsDriver | ( | const std::string & | uncore_directory | ) |
|
virtualdefault |
|
overridevirtual |
Get the path to the sysfs entry for signal.
| [in] | name | The name of the signal or control |
| [in] | domain_idx | The index of the domain within the set of domains of the same type on the platform. |
Implements geopm::SysfsDriver.
|
overridevirtual |
Get a function to convert a control into a sysfs string.
Converts from the SI unit control into the text representation required by the device driver.
| [in] | signal_name | The name of the signal. |
Implements geopm::SysfsDriver.
|
overridevirtual |
Get the PlatformTopo domain type for an named attribute.
| [in] | name | The name of the signal or control |
Implements geopm::SysfsDriver.
|
overridevirtual |
|
static |
|
static |
|
overridevirtual |
Query the meta data about a signal or control.
Implements geopm::SysfsDriver.
|
overridevirtual |
Get function to convert contents of sysfs file into signal.
This parsing includes the conversion of the numerical data into SI units.
| [in] | properties_id | The unique identifier of the signal. |
| [in] | content | The string content read from the sysfs file. |
Implements geopm::SysfsDriver.