LKML Archive on lore.kernel.org
 help / color / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: linux-hwmon@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	"Clemens Ladisch" <clemens@ladisch.de>,
	"Jean Delvare" <jdelvare@suse.com>,
	"Brad Campbell" <lists2009@fnarfbargle.com>,
	"Ondrej Čerman" <ocerman@sda1.eu>,
	"Bernhard Gebetsberger" <bernhard.gebetsberger@gmx.at>,
	"Holger Kiehl" <Holger.Kiehl@dwd.de>,
	"Michael Larabel" <michael@phoronix.com>,
	"Jonathan McDowell" <noodles@earth.li>,
	"Ken Moffat" <zarniwhoop73@googlemail.com>,
	"Sebastian Reichel" <sebastian.reichel@collabora.com>,
	"Darren Salt" <devspam@moreofthesa.me.uk>,
	"Guenter Roeck" <linux@roeck-us.net>
Subject: [PATCH v4 0/6] hwmon: k10temp driver improvements
Date: Wed, 22 Jan 2020 08:07:54 -0800
Message-ID: <20200122160800.12560-1-linux@roeck-us.net> (raw)

This patch series implements various improvements for the k10temp driver.

Patch 1/6 introduces the use of bit operations.

Patch 2/6 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/6 adds support for reporting Core Complex Die (CCD) temperatures
on Zen2 (Ryzen and Threadripper) CPUs (note that reporting is incomplete
for Threadripper CPUs - it is known that additional temperature sensors
exist, but the register locations are unknown).

Patch 4/6 adds support for reporting core and SoC current and voltage
information on Ryzen CPUs (note: voltage and current measurements for
Threadripper and EPYC CPUs are known to exist, but register locations
are unknown, and values are therefore not reported at this time).

Patch 5/6 removes the maximum temperature from Tdie for Ryzen CPUs.
It is inaccurate, misleading, and it just doesn't make sense to report
wrong information.

Patch 6/6 adds debugfs files to provide raw thermal and SVI register
dumps. This may help in the future to identify additional sensors and/or
to fix problems.

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.39 V
Vsoc:         +1.18 V
Tdie:         +79.9°C
Tctl:         +79.9°C
Tccd1:        +61.8°C
Tccd2:        +76.5°C
Icore:       +46.00 A
Isoc:        +12.00 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
    2700
    2700X
    2950X
    3600X
    3800X
    3900X
    3950X
    3970X
    EPYC 7302
    EPYC 7742

Many thanks to everyone who helped to test this series.

---
v4: Normalize current calculations do show 1A / LSB for core current and
    0.25A / LSB for SoC current. The reported current values are board
    specific and need to be scaled using the configuration file.
    Clarified that the maximum temperature of 70 degrees C (which is no
    longer displayed) was associated to Tctl and not to Tdie.
    Added debugfs support.

v3: Added more Tested-by: tags
    Added detection for 3970X, and report Tccd1 for this CPU.

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.

             reply index

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-22 16:07 Guenter Roeck [this message]
2020-01-22 16:07 ` [PATCH v4 1/6] hwmon: (k10temp) Use bitops Guenter Roeck
2020-01-22 16:07 ` [PATCH v4 2/6] hmon: (k10temp) Convert to use devm_hwmon_device_register_with_info Guenter Roeck
2020-01-22 16:07 ` [PATCH v4 3/6] hwmon: (k10temp) Report temperatures per CPU die Guenter Roeck
2020-01-22 16:07 ` [PATCH v4 4/6] hwmon: (k10temp) Show core and SoC current and voltages on Ryzen CPUs Guenter Roeck
2020-01-22 16:07 ` [PATCH v4 5/6] hwmon: (k10temp) Don't show temperature limits on Ryzen (Zen) CPUs Guenter Roeck
2020-01-22 16:08 ` [PATCH v4 6/6] hwmon: (k10temp) Add debugfs support Guenter Roeck
2020-01-24  0:01   ` Ken Moffat
2020-01-24  4:47     ` Guenter Roeck
2020-01-22 19:05 ` [PATCH v4 0/6] hwmon: k10temp driver improvements Sebastian Reichel
2020-01-22 19:37   ` Guenter Roeck
2020-01-25 17:40 ` Holger Kiehl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200122160800.12560-1-linux@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=Holger.Kiehl@dwd.de \
    --cc=bernhard.gebetsberger@gmx.at \
    --cc=clemens@ladisch.de \
    --cc=devspam@moreofthesa.me.uk \
    --cc=jdelvare@suse.com \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lists2009@fnarfbargle.com \
    --cc=michael@phoronix.com \
    --cc=noodles@earth.li \
    --cc=ocerman@sda1.eu \
    --cc=sebastian.reichel@collabora.com \
    --cc=zarniwhoop73@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git