Re: [PATCH v2 0/5] hwmon: k10temp driver improvements

Holger Kiehl
2020-01-19T13:38:56Z

[-- Attachment #1: Type: text/plain, Size: 7960 bytes --]

On Sat, 18 Jan 2020, Guenter Roeck wrote:

> This patch series implements various improvements for the k10temp driver.
>
> Patch 1/5 introduces the use of bit operations.
>
> Patch 2/5 converts the driver to use the devm_hwmon_device_register_with_info
> API. This not only simplifies the code and reduces its size, it also
> makes the code easier to maintain and enhance.
>
> Patch 3/5 adds support for reporting Core Complex Die (CCD) temperatures
> on Ryzen 3 (Zen2) CPUs.
>
> Patch 4/5 adds support for reporting core and SoC current and voltage
> information on Ryzen CPUs.
>
> Patch 5/5 removes the maximum temperature from Tdie for Ryzen CPUs.
> It is inaccurate, misleading, and it just doesn't make sense to report
> wrong information.
>
> With all patches in place, output on Ryzen 3900X CPUs looks as follows
> (with the system under load).
>
> k10temp-pci-00c3
> Adapter: PCI adapter
> Vcore: +1.36 V
> Vsoc: +1.18 V
> Tdie: +86.8°C
> Tctl: +86.8°C
> Tccd1: +80.0°C
> Tccd2: +81.8°C
> Icore: +44.14 A
> Isoc: +13.83 A
>
> The voltage and current information is limited to Ryzen CPUs. Voltage
> and current reporting on Threadripper and EPYC CPUs is different, and the
> reported information is either incomplete or wrong. Exclude it for the time
> being; it can always be added if/when more information becomes available.
>
> Tested with the following Ryzen CPUs:
> 1300X A user with this CPU in the system reported somewhat unexpected
> values for Vcore; it isn't entirely if at all clear why that is
> the case. Overall this does not warrant holding up the series.
> 1600
> 1800X
> 2200G
> 2400G
> 3800X
> 3900X
> 3950X
>
> v2: Added tested-by: tags as received.
> Don't display voltage and current information for Threadripper and EPYC.
> Stop displaying the fixed (and wrong) maximum temperature of 70 degrees C
> for Tdie on model 17h/18h CPUs.
>
Just tested this on a 2400G. Here idle values:

k10temp-pci-00c3
Adapter: PCI adapter
Vcore: +0.77 V
Vsoc: +1.11 V
Tdie: +45.0°C
Tctl: +45.0°C
Icore: +10.39 A
Isoc: +2.89 A

nvme-pci-0100
Adapter: PCI adapter
Composite: +43.9°C (low = -273.1°C, high = +80.8°C)
(crit = +80.8°C)
Sensor 1: +43.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +48.9°C (low = -273.1°C, high = +65261.8°C)

nct6793-isa-0290
Adapter: ISA adapter
in0: +0.35 V (min = +0.00 V, max = +1.74 V)
in1: +1.85 V (min = +0.00 V, max = +0.00 V) ALARM
in2: +3.41 V (min = +0.00 V, max = +0.00 V) ALARM
in3: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in4: +0.26 V (min = +0.00 V, max = +0.00 V) ALARM
in5: +0.14 V (min = +0.00 V, max = +0.00 V) ALARM
in6: +0.66 V (min = +0.00 V, max = +0.00 V) ALARM
in7: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in8: +3.26 V (min = +0.00 V, max = +0.00 V) ALARM
in9: +1.83 V (min = +0.00 V, max = +0.00 V) ALARM
in10: +0.19 V (min = +0.00 V, max = +0.00 V) ALARM
in11: +0.14 V (min = +0.00 V, max = +0.00 V) ALARM
in12: +1.84 V (min = +0.00 V, max = +0.00 V) ALARM
in13: +1.72 V (min = +0.00 V, max = +0.00 V) ALARM
in14: +0.21 V (min = +0.00 V, max = +0.00 V) ALARM
fan1: 0 RPM (min = 0 RPM)
fan2: 323 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
SYSTIN: +112.0°C (high = +0.0°C, hyst = +0.0°C) sensor = thermistor
CPUTIN: +60.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
AUXTIN0: +46.0°C (high = +0.0°C, hyst = +0.0°C) ALARM sensor = thermistor
AUXTIN1: +106.0°C sensor = thermistor
AUXTIN2: +105.0°C sensor = thermistor
AUXTIN3: +102.0°C sensor = thermistor
SMBUSMASTER 0: +45.0°C
PCH_CHIP_CPU_MAX_TEMP: +0.0°C
PCH_CHIP_TEMP: +0.0°C
PCH_CPU_TEMP: +0.0°C
intrusion0: OK
intrusion1: ALARM
beep_enable: disabled

amdgpu-pci-0300
Adapter: PCI adapter
vddgfx: N/A
vddnb: N/A
edge: +45.0°C (crit = +80.0°C, hyst = +0.0°C)

And here with some high load:

k10temp-pci-00c3
Adapter: PCI adapter
Vcore: +1.32 V
Vsoc: +1.11 V
Tdie: +77.1°C
Tctl: +77.1°C
Icore: +85.22 A
Isoc: +3.61 A

nvme-pci-0100
Adapter: PCI adapter
Composite: +42.9°C (low = -273.1°C, high = +80.8°C)
(crit = +80.8°C)
Sensor 1: +42.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +45.9°C (low = -273.1°C, high = +65261.8°C)

nct6793-isa-0290
Adapter: ISA adapter
in0: +0.68 V (min = +0.00 V, max = +1.74 V)
in1: +1.84 V (min = +0.00 V, max = +0.00 V) ALARM
in2: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in3: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in4: +0.26 V (min = +0.00 V, max = +0.00 V) ALARM
in5: +0.14 V (min = +0.00 V, max = +0.00 V) ALARM
in6: +0.66 V (min = +0.00 V, max = +0.00 V) ALARM
in7: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in8: +3.26 V (min = +0.00 V, max = +0.00 V) ALARM
in9: +1.83 V (min = +0.00 V, max = +0.00 V) ALARM
in10: +0.19 V (min = +0.00 V, max = +0.00 V) ALARM
in11: +0.14 V (min = +0.00 V, max = +0.00 V) ALARM
in12: +1.84 V (min = +0.00 V, max = +0.00 V) ALARM
in13: +1.72 V (min = +0.00 V, max = +0.00 V) ALARM
in14: +0.20 V (min = +0.00 V, max = +0.00 V) ALARM
fan1: 0 RPM (min = 0 RPM)
fan2: 1931 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
SYSTIN: +113.0°C (high = +0.0°C, hyst = +0.0°C) sensor = thermistor
CPUTIN: +64.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
AUXTIN0: +45.0°C (high = +0.0°C, hyst = +0.0°C) ALARM sensor = thermistor
AUXTIN1: +107.0°C sensor = thermistor
AUXTIN2: +105.0°C sensor = thermistor
AUXTIN3: +102.0°C sensor = thermistor
SMBUSMASTER 0: +77.0°C
PCH_CHIP_CPU_MAX_TEMP: +0.0°C
PCH_CHIP_TEMP: +0.0°C
PCH_CPU_TEMP: +0.0°C
intrusion0: OK
intrusion1: ALARM
beep_enable: disabled

amdgpu-pci-0300
Adapter: PCI adapter
vddgfx: N/A
vddnb: N/A
edge: +77.0°C (crit = +80.0°C, hyst = +0.0°C)

Have also tried this on a EPYC 7302. Before the patch:

k10temp-pci-00c3
Adapter: PCI adapter
Tdie: +28.1°C (high = +70.0°C)
Tctl: +28.1°C

and after:

k10temp-pci-00c3
Adapter: PCI adapter
Tdie: +28.2°C
Tctl: +28.2°C

No extra values shown, but I think this is expected.

Tested-by Holger Kiehl <holger.kiehl@dwd.de>

Holger