Document amd_energy driver with all chips supported by it. Cc: Guenter Roeck <linux@xxxxxxxxxxxx> Signed-off-by: Naveen Krishna Chatradhi <nchatrad@xxxxxxx> --- Documentation/hwmon/amd_energy.rst | 78 ++++++++++++++++++++++++++++++++++++++ Documentation/hwmon/index.rst | 1 + 2 files changed, 79 insertions(+) create mode 100644 Documentation/hwmon/amd_energy.rst diff --git a/Documentation/hwmon/amd_energy.rst b/Documentation/hwmon/amd_energy.rst new file mode 100644 index 000000000000..516694d3c1e0 --- /dev/null +++ b/Documentation/hwmon/amd_energy.rst @@ -0,0 +1,78 @@ +Kernel driver amd_energy +========================== + +Supported chips: + +* AMD Family 17h Processors + + Prefix: 'amd_energy' + + Addresses used: RAPL MSRs + + Datasheets: + + - Processor Programming Reference (PPR) for + AMD Family 17h Model 01h, Revision B1 Processors + - Preliminary Processor Programming Reference (PPR) for + AMD Family 17h Model 31h, Revision B0 Processors + +Author: Naveen Krishna Chatradhi <nchatrad@xxxxxxx> + +Description +----------- + +The Energy driver exposes the energy counters that are +reported via the Running Average Power Limit (RAPL) +Model-specific Registers (MSRs) via the hardware monitor +(HWMON) sysfs interface. + +1. Power, Energy and Time Units + * MSR_RAPL_POWER_UNIT/ C001_0299: + -> 32-bit(RO), Configured in BIOS + -> shared with all cores in the socket + + * A sysfs entry "energy_units" is created to show the + [ESU] energy units in joules + +2. Energy consumed by each Core + * MSR_CORE_ENERGY_STATUS/ C001_029A: + -> 32-bitRO, Accumulator, core-level power reporting + + * A sysfs entry "core_energy%d_input" for each core is + created to show the core energy counter value. + +3. Energy consumed by Socket + * MSR_PACKAGE_ENERGY_STATUS/ C001_029B: + -> 32-bitRO, Accumulator, socket-level power reporting, + -> shared with all cores in socket + + * A sysfs entry "socket_energy%d_input" for each socket + is created to show the socket energy counter value. + +Energy Caluclation: + +Energy information (in Joules) is based on the multiplier, +1/2^ESU; where ESU is an unsigned integer read from +MSR_RAPL_POWER_UNIT register. Default value is 10000b, +indicating energy status unit is 15.3 micro-Joules increment. + +These registers are updated every 1ms and cleared on +reset of the system. + +Users calculate power for a given domain by calculating + dEnergy/dTime for that domain. + +Sysfs attributes +---------------- + +======================= ================================= + +core_energy[N]_input Measured input core energy + [one sysfs entry for each core] + +socket_energy[N]_input Measured input socket energy + [one sysfs entry for each socket] + +energy_units ESU Energy Status Units. + +======================= ================================== diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst index 8ef62fd39787..fc4b89810e67 100644 --- a/Documentation/hwmon/index.rst +++ b/Documentation/hwmon/index.rst @@ -39,6 +39,7 @@ Hardware Monitoring Kernel Drivers adt7470 adt7475 amc6821 + amd_energy asb100 asc7621 aspeed-pwm-tacho -- 2.16.4