~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/hwmon/fam15h_power.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/hwmon/fam15h_power.rst (Version linux-6.11.5) and /Documentation/hwmon/fam15h_power.rst (Version linux-6.8.12)


  1 Kernel driver fam15h_power                          1 Kernel driver fam15h_power
  2 ==========================                          2 ==========================
  3                                                     3 
  4 Supported chips:                                    4 Supported chips:
  5                                                     5 
  6 * AMD Family 15h Processors                         6 * AMD Family 15h Processors
  7                                                     7 
  8 * AMD Family 16h Processors                         8 * AMD Family 16h Processors
  9                                                     9 
 10   Prefix: 'fam15h_power'                           10   Prefix: 'fam15h_power'
 11                                                    11 
 12   Addresses scanned: PCI space                     12   Addresses scanned: PCI space
 13                                                    13 
 14   Datasheets:                                      14   Datasheets:
 15                                                    15 
 16   - BIOS and Kernel Developer's Guide (BKDG) F     16   - BIOS and Kernel Developer's Guide (BKDG) For AMD Family 15h Processors
 17   - BIOS and Kernel Developer's Guide (BKDG) F     17   - BIOS and Kernel Developer's Guide (BKDG) For AMD Family 16h Processors
 18   - AMD64 Architecture Programmer's Manual Vol     18   - AMD64 Architecture Programmer's Manual Volume 2: System Programming
 19                                                    19 
 20 Author: Andreas Herrmann <herrmann.der.user@goo     20 Author: Andreas Herrmann <herrmann.der.user@googlemail.com>
 21                                                    21 
 22 Description                                        22 Description
 23 -----------                                        23 -----------
 24                                                    24 
 25 1) Processor TDP (Thermal design power)            25 1) Processor TDP (Thermal design power)
 26                                                    26 
 27 Given a fixed frequency and voltage, the power     27 Given a fixed frequency and voltage, the power consumption of a
 28 processor varies based on the workload being e     28 processor varies based on the workload being executed. Derated power
 29 is the power consumed when running a specific      29 is the power consumed when running a specific application. Thermal
 30 design power (TDP) is an example of derated po     30 design power (TDP) is an example of derated power.
 31                                                    31 
 32 This driver permits reading of registers provi     32 This driver permits reading of registers providing power information
 33 of AMD Family 15h and 16h processors via TDP a     33 of AMD Family 15h and 16h processors via TDP algorithm.
 34                                                    34 
 35 For AMD Family 15h and 16h processors the foll     35 For AMD Family 15h and 16h processors the following power values can
 36 be calculated using different processor northb     36 be calculated using different processor northbridge function
 37 registers:                                         37 registers:
 38                                                    38 
 39 * BasePwrWatts:                                    39 * BasePwrWatts:
 40     Specifies in watts the maximum amount of p     40     Specifies in watts the maximum amount of power
 41     consumed by the processor for NB and logic     41     consumed by the processor for NB and logic external to the core.
 42                                                    42 
 43 * ProcessorPwrWatts:                               43 * ProcessorPwrWatts:
 44     Specifies in watts the maximum amount of p     44     Specifies in watts the maximum amount of power
 45     the processor can support.                     45     the processor can support.
 46 * CurrPwrWatts:                                    46 * CurrPwrWatts:
 47     Specifies in watts the current amount of p     47     Specifies in watts the current amount of power being
 48     consumed by the processor.                     48     consumed by the processor.
 49                                                    49 
 50 This driver provides ProcessorPwrWatts and Cur     50 This driver provides ProcessorPwrWatts and CurrPwrWatts:
 51                                                    51 
 52 * power1_crit (ProcessorPwrWatts)                  52 * power1_crit (ProcessorPwrWatts)
 53 * power1_input (CurrPwrWatts)                      53 * power1_input (CurrPwrWatts)
 54                                                    54 
 55 On multi-node processors the calculated value      55 On multi-node processors the calculated value is for the entire
 56 package and not for a single node. Thus the dr     56 package and not for a single node. Thus the driver creates sysfs
 57 attributes only for internal node0 of a multi-     57 attributes only for internal node0 of a multi-node processor.
 58                                                    58 
 59 2) Accumulated Power Mechanism                     59 2) Accumulated Power Mechanism
 60                                                    60 
 61 This driver also introduces an algorithm that      61 This driver also introduces an algorithm that should be used to
 62 calculate the average power consumed by a proc     62 calculate the average power consumed by a processor during a
 63 measurement interval Tm. The feature of accumu     63 measurement interval Tm. The feature of accumulated power mechanism is
 64 indicated by CPUID Fn8000_0007_EDX[12].            64 indicated by CPUID Fn8000_0007_EDX[12].
 65                                                    65 
 66 * Tsample:                                         66 * Tsample:
 67         compute unit power accumulator sample      67         compute unit power accumulator sample period
 68                                                    68 
 69 * Tref:                                            69 * Tref:
 70         the PTSC counter period                    70         the PTSC counter period
 71                                                    71 
 72 * PTSC:                                            72 * PTSC:
 73         performance timestamp counter              73         performance timestamp counter
 74                                                    74 
 75 * N:                                               75 * N:
 76         the ratio of compute unit power accumu     76         the ratio of compute unit power accumulator sample period to the
 77         PTSC period                                77         PTSC period
 78                                                    78 
 79 * Jmax:                                            79 * Jmax:
 80         max compute unit accumulated power whi     80         max compute unit accumulated power which is indicated by
 81         MaxCpuSwPwrAcc MSR C001007b                81         MaxCpuSwPwrAcc MSR C001007b
 82                                                    82 
 83 * Jx/Jy:                                           83 * Jx/Jy:
 84         compute unit accumulated power which i     84         compute unit accumulated power which is indicated by
 85         CpuSwPwrAcc MSR C001007a                   85         CpuSwPwrAcc MSR C001007a
 86 * Tx/Ty:                                           86 * Tx/Ty:
 87         the value of performance timestamp cou     87         the value of performance timestamp counter which is indicated
 88         by CU_PTSC MSR C0010280                    88         by CU_PTSC MSR C0010280
 89                                                    89 
 90 * PwrCPUave:                                       90 * PwrCPUave:
 91         CPU average power                          91         CPU average power
 92                                                    92 
 93 i. Determine the ratio of Tsample to Tref by e     93 i. Determine the ratio of Tsample to Tref by executing CPUID Fn8000_0007.
 94                                                    94 
 95         N = value of CPUID Fn8000_0007_ECX[Cpu     95         N = value of CPUID Fn8000_0007_ECX[CpuPwrSampleTimeRatio[15:0]].
 96                                                    96 
 97 ii. Read the full range of the cumulative ener     97 ii. Read the full range of the cumulative energy value from the new
 98     MSR MaxCpuSwPwrAcc.                            98     MSR MaxCpuSwPwrAcc.
 99                                                    99 
100         Jmax = value returned.                    100         Jmax = value returned.
101                                                   101 
102 iii. At time x, SW reads CpuSwPwrAcc MSR and s    102 iii. At time x, SW reads CpuSwPwrAcc MSR and samples the PTSC.
103                                                   103 
104         Jx = value read from CpuSwPwrAcc and T    104         Jx = value read from CpuSwPwrAcc and Tx = value read from PTSC.
105                                                   105 
106 iv. At time y, SW reads CpuSwPwrAcc MSR and sa    106 iv. At time y, SW reads CpuSwPwrAcc MSR and samples the PTSC.
107                                                   107 
108         Jy = value read from CpuSwPwrAcc and T    108         Jy = value read from CpuSwPwrAcc and Ty = value read from PTSC.
109                                                   109 
110 v. Calculate the average power consumption for    110 v. Calculate the average power consumption for a compute unit over
111    time period (y-x). Unit of result is uWatt:    111    time period (y-x). Unit of result is uWatt::
112                                                   112 
113         if (Jy < Jx) // Rollover has occurred     113         if (Jy < Jx) // Rollover has occurred
114                 Jdelta = (Jy + Jmax) - Jx         114                 Jdelta = (Jy + Jmax) - Jx
115         else                                      115         else
116                 Jdelta = Jy - Jx                  116                 Jdelta = Jy - Jx
117         PwrCPUave = N * Jdelta * 1000 / (Ty -     117         PwrCPUave = N * Jdelta * 1000 / (Ty - Tx)
118                                                   118 
119 This driver provides PwrCPUave and interval(de    119 This driver provides PwrCPUave and interval(default is 10 millisecond
120 and maximum is 1 second):                         120 and maximum is 1 second):
121                                                   121 
122 * power1_average (PwrCPUave)                      122 * power1_average (PwrCPUave)
123 * power1_average_interval (Interval)              123 * power1_average_interval (Interval)
124                                                   124 
125 The power1_average_interval can be updated at     125 The power1_average_interval can be updated at /etc/sensors3.conf file
126 as below:                                         126 as below:
127                                                   127 
128 chip `fam15h_power-*`                             128 chip `fam15h_power-*`
129         set power1_average_interval 0.01          129         set power1_average_interval 0.01
130                                                   130 
131 Then save it with "sensors -s".                   131 Then save it with "sensors -s".
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php