All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: "Huang Rui" <ray.huang@amd.com>, "Borislav Petkov" <bp@suse.de>,
	"Jean Delvare" <jdelvare@suse.de>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"Andreas Herrmann" <herrmann.der.user@gmail.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"Len Brown" <lenb@kernel.org>,
	"John Stultz" <john.stultz@linaro.org>,
	"Frédéric Weisbecker" <fweisbec@gmail.com>
Cc: lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org,
	x86@kernel.org,
	Andreas Herrmann <herrmann.der.user@googlemail.com>,
	Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>,
	Borislav Petkov <bp@alien8.de>,
	Fengguang Wu <fengguang.wu@intel.com>,
	Aaron Lu <aaron.lu@intel.com>, Tony Li <tony.li@amd.com>
Subject: Re: [lm-sensors] [PATCH 08/15] hwmon, fam15h_power: add max compute unit accumulated power
Date: Thu, 27 Aug 2015 14:56:35 +0000	[thread overview]
Message-ID: <55DF2523.1010605@roeck-us.net> (raw)
In-Reply-To: <1440662866-28716-9-git-send-email-ray.huang@amd.com>

On 08/27/2015 01:07 AM, Huang Rui wrote:
> This patch adds a member in fam15h_power_data which specifies the
> maximum accumulated power in a compute unit.
>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
>   drivers/hwmon/fam15h_power.c | 24 ++++++++++++++++++++----
>   1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
> index d6efcf6..fdfa18e 100644
> --- a/drivers/hwmon/fam15h_power.c
> +++ b/drivers/hwmon/fam15h_power.c
> @@ -26,6 +26,7 @@
>   #include <linux/pci.h>
>   #include <linux/bitops.h>
>   #include <asm/processor.h>
> +#include <asm/msr.h>
>
>   MODULE_DESCRIPTION("AMD Family 15h CPU processor power monitor");
>   MODULE_AUTHOR("Andreas Herrmann <herrmann.der.user@googlemail.com>");
> @@ -43,12 +44,16 @@ MODULE_LICENSE("GPL");
>
>   #define FAM15H_MIN_POWER_GROUPS		2
>
> +#define MSR_F15H_CU_MAX_PWR_ACCUMULATOR	0xc001007b
> +
>   struct fam15h_power_data {
>   	struct pci_dev *pdev;
>   	unsigned int tdp_to_watts;
>   	unsigned int base_tdp;
>   	unsigned int processor_pwr_watts;
>   	unsigned int cpu_pwr_sample_ratio;
> +	/* maximum accumulated power of a compute unit */
> +	u64 max_cu_acc_power;
>   };
>
>   static ssize_t show_power(struct device *dev,
> @@ -199,8 +204,8 @@ static int fam15h_power_resume(struct pci_dev *pdev)
>   #define fam15h_power_resume NULL
>   #endif
>
> -static void fam15h_power_init_data(struct pci_dev *f4,
> -					     struct fam15h_power_data *data)
> +static int fam15h_power_init_data(struct pci_dev *f4,
> +				  struct fam15h_power_data *data)
>   {
>   	u32 val, eax, ebx, ecx, edx;
>   	u64 tmp;
> @@ -228,7 +233,7 @@ static void fam15h_power_init_data(struct pci_dev *f4,
>
>   	/* CPUID Fn8000_0007:EDX[12] indicates to support accumulated power */
>   	if (!(edx & BIT(12)))
> -		return;
> +		return 0;
>
>   	/*
>   	 * detemine the ratio of the compute unit power accumulator
> @@ -236,6 +241,15 @@ static void fam15h_power_init_data(struct pci_dev *f4,
>   	 * Fn8000_0007:ECX
>   	 */
>   	data->cpu_pwr_sample_ratio = ecx;
> +
> +	if (rdmsrl_safe(MSR_F15H_CU_MAX_PWR_ACCUMULATOR, &tmp)) {
> +		pr_err("Failed to read max compute unit power accumulator MSR\n");
> +		return -ENODEV;
> +	}
> +
> +	data->max_cu_acc_power = tmp;
> +
> +	return 0;
>   }
>
>   static int fam15h_power_probe(struct pci_dev *pdev,
> @@ -262,7 +276,9 @@ static int fam15h_power_probe(struct pci_dev *pdev,
>   	if (fam15h_power_init_attrs(pdev))
>   		return -ENOMEM;
>
> -	fam15h_power_init_data(pdev, data);
> +	if (fam15h_power_init_data(pdev, data))
> +		return -ENODEV;
> +
This should return the error code from fam15h_power_init_data().

Thanks,
Guenter


_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <linux@roeck-us.net>
To: "Huang Rui" <ray.huang@amd.com>, "Borislav Petkov" <bp@suse.de>,
	"Jean Delvare" <jdelvare@suse.de>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"Andreas Herrmann" <herrmann.der.user@gmail.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Ingo Molnar" <mingo@kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"Len Brown" <lenb@kernel.org>,
	"John Stultz" <john.stultz@linaro.org>,
	"Frédéric Weisbecker" <fweisbec@gmail.com>
Cc: lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org,
	x86@kernel.org,
	Andreas Herrmann <herrmann.der.user@googlemail.com>,
	Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>,
	Borislav Petkov <bp@alien8.de>,
	Fengguang Wu <fengguang.wu@intel.com>,
	Aaron Lu <aaron.lu@intel.com>, Tony Li <tony.li@amd.com>
Subject: Re: [PATCH 08/15] hwmon, fam15h_power: add max compute unit accumulated power
Date: Thu, 27 Aug 2015 07:56:35 -0700	[thread overview]
Message-ID: <55DF2523.1010605@roeck-us.net> (raw)
In-Reply-To: <1440662866-28716-9-git-send-email-ray.huang@amd.com>

On 08/27/2015 01:07 AM, Huang Rui wrote:
> This patch adds a member in fam15h_power_data which specifies the
> maximum accumulated power in a compute unit.
>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
>   drivers/hwmon/fam15h_power.c | 24 ++++++++++++++++++++----
>   1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
> index d6efcf6..fdfa18e 100644
> --- a/drivers/hwmon/fam15h_power.c
> +++ b/drivers/hwmon/fam15h_power.c
> @@ -26,6 +26,7 @@
>   #include <linux/pci.h>
>   #include <linux/bitops.h>
>   #include <asm/processor.h>
> +#include <asm/msr.h>
>
>   MODULE_DESCRIPTION("AMD Family 15h CPU processor power monitor");
>   MODULE_AUTHOR("Andreas Herrmann <herrmann.der.user@googlemail.com>");
> @@ -43,12 +44,16 @@ MODULE_LICENSE("GPL");
>
>   #define FAM15H_MIN_POWER_GROUPS		2
>
> +#define MSR_F15H_CU_MAX_PWR_ACCUMULATOR	0xc001007b
> +
>   struct fam15h_power_data {
>   	struct pci_dev *pdev;
>   	unsigned int tdp_to_watts;
>   	unsigned int base_tdp;
>   	unsigned int processor_pwr_watts;
>   	unsigned int cpu_pwr_sample_ratio;
> +	/* maximum accumulated power of a compute unit */
> +	u64 max_cu_acc_power;
>   };
>
>   static ssize_t show_power(struct device *dev,
> @@ -199,8 +204,8 @@ static int fam15h_power_resume(struct pci_dev *pdev)
>   #define fam15h_power_resume NULL
>   #endif
>
> -static void fam15h_power_init_data(struct pci_dev *f4,
> -					     struct fam15h_power_data *data)
> +static int fam15h_power_init_data(struct pci_dev *f4,
> +				  struct fam15h_power_data *data)
>   {
>   	u32 val, eax, ebx, ecx, edx;
>   	u64 tmp;
> @@ -228,7 +233,7 @@ static void fam15h_power_init_data(struct pci_dev *f4,
>
>   	/* CPUID Fn8000_0007:EDX[12] indicates to support accumulated power */
>   	if (!(edx & BIT(12)))
> -		return;
> +		return 0;
>
>   	/*
>   	 * detemine the ratio of the compute unit power accumulator
> @@ -236,6 +241,15 @@ static void fam15h_power_init_data(struct pci_dev *f4,
>   	 * Fn8000_0007:ECX
>   	 */
>   	data->cpu_pwr_sample_ratio = ecx;
> +
> +	if (rdmsrl_safe(MSR_F15H_CU_MAX_PWR_ACCUMULATOR, &tmp)) {
> +		pr_err("Failed to read max compute unit power accumulator MSR\n");
> +		return -ENODEV;
> +	}
> +
> +	data->max_cu_acc_power = tmp;
> +
> +	return 0;
>   }
>
>   static int fam15h_power_probe(struct pci_dev *pdev,
> @@ -262,7 +276,9 @@ static int fam15h_power_probe(struct pci_dev *pdev,
>   	if (fam15h_power_init_attrs(pdev))
>   		return -ENOMEM;
>
> -	fam15h_power_init_data(pdev, data);
> +	if (fam15h_power_init_data(pdev, data))
> +		return -ENODEV;
> +
This should return the error code from fam15h_power_init_data().

Thanks,
Guenter


  reply	other threads:[~2015-08-27 14:56 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-27  8:07 [lm-sensors] [PATCH 00/15] hwmon, fam15h_power: introduce an accumulated power reporting algorithm Huang Rui
2015-08-27  8:07 ` Huang Rui
2015-08-27  8:07 ` [lm-sensors] [PATCH 01/15] hwmon, fam15h_power: add support for AMD Carrizo Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:35   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:35     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 02/15] hwmon, fam15h_power: rename fam15h_power_is_internal_node0 function Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:35   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:35     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 03/15] hwmon, fam15h_power: refactor attributes for dynamically added Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:46   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:46     ` Guenter Roeck
2015-08-28 10:05     ` [lm-sensors] " Huang Rui
2015-08-28 10:05       ` Huang Rui
2015-08-27  8:07 ` [lm-sensors] [PATCH 04/15] hwmon, fam15h_power: update running_avg_capture bit field to 28 Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:48   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:48     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 05/15] hwmon, fam15h_power: enable power1_input on AMD Carrizo Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:50   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:50     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 06/15] hwmon, fam15h_power: add documentation for new processors support Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:51   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:51     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 07/15] hwmon, fam15h_power: add ratio of Tsample to the PTSC period Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:54   ` [lm-sensors] " Guenter Roeck
2015-08-27 14:54     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 08/15] hwmon, fam15h_power: add max compute unit accumulated power Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 14:56   ` Guenter Roeck [this message]
2015-08-27 14:56     ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 09/15] x86, amd: add accessor for number of cores per compute unit Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27 17:27   ` [lm-sensors] " Guenter Roeck
2015-08-27 17:27     ` Guenter Roeck
2015-08-28 10:28     ` [lm-sensors] " Huang Rui
2015-08-28 10:28       ` Huang Rui
2015-08-28  6:48   ` [lm-sensors] " Borislav Petkov
2015-08-28  6:48     ` Borislav Petkov
2015-08-28  8:00     ` [lm-sensors] " Guenter Roeck
2015-08-28  8:00       ` Guenter Roeck
2015-08-28  8:04     ` [lm-sensors] " Ingo Molnar
2015-08-28  8:04       ` Ingo Molnar
2015-08-28  8:56       ` [lm-sensors] " Borislav Petkov
2015-08-28  8:56         ` Borislav Petkov
2015-08-28 10:18       ` [lm-sensors] " Huang Rui
2015-08-28 10:18         ` Huang Rui
2015-08-29  9:19       ` [lm-sensors] " Ingo Molnar
2015-08-29  9:19         ` Ingo Molnar
2015-08-30 15:53         ` [lm-sensors] " Borislav Petkov
2015-08-30 15:53           ` Borislav Petkov
2015-08-31  8:38           ` [lm-sensors] " Peter Zijlstra
2015-08-31  8:38             ` Peter Zijlstra
2015-08-31 13:26             ` [lm-sensors] " Guenter Roeck
2015-08-31 13:26               ` Guenter Roeck
2015-08-31 13:38               ` [lm-sensors] " Peter Zijlstra
2015-08-31 13:38                 ` Peter Zijlstra
2015-08-31 13:53                 ` [lm-sensors] " Guenter Roeck
2015-08-31 13:53                   ` Guenter Roeck
2015-08-31 14:57                   ` [lm-sensors] " Peter Zijlstra
2015-08-31 14:57                     ` Peter Zijlstra
2015-08-31 15:11                     ` [lm-sensors] " Guenter Roeck
2015-08-31 15:11                       ` Guenter Roeck
2015-08-31 16:06             ` [lm-sensors] " Borislav Petkov
2015-08-31 16:06               ` Borislav Petkov
2015-08-31 16:19               ` [lm-sensors] " Guenter Roeck
2015-08-31 16:19                 ` Guenter Roeck
2015-08-31 20:44                 ` [lm-sensors] " Peter Zijlstra
2015-08-31 20:44                   ` Peter Zijlstra
2015-08-31 21:24                   ` [lm-sensors] " Guenter Roeck
2015-08-31 21:24                     ` Guenter Roeck
2015-09-01 15:56                     ` [lm-sensors] " Borislav Petkov
2015-09-01 15:56                       ` Borislav Petkov
2015-09-01 16:06                       ` [lm-sensors] " Guenter Roeck
2015-09-01 16:06                         ` Guenter Roeck
2015-08-27  8:07 ` [lm-sensors] [PATCH 10/15] hwmon, fam15h_power: add compute unit accumulated power Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-28  8:03   ` [lm-sensors] " Ingo Molnar
2015-08-28  8:03     ` Ingo Molnar
2015-08-28 10:42     ` [lm-sensors] " Huang Rui
2015-08-28 10:42       ` Huang Rui
2015-08-27  8:07 ` [lm-sensors] [PATCH 11/15] hwmon, fam15h_power: add ptsc counter value for " Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27  8:07 ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorith Huang Rui
2015-08-27  8:07   ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Huang Rui
2015-08-27 17:30   ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Guenter Roeck
2015-08-27 17:30     ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Guenter Roeck
2015-08-28 10:45     ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Huang Rui
2015-08-28 10:45       ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Huang Rui
2015-08-28 14:05       ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Guenter Roeck
2015-08-28 14:05         ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Guenter Roeck
2015-08-31  4:16         ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Huang Rui
2015-08-31  4:16           ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Huang Rui
2015-08-31  4:30           ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Guenter Roeck
2015-08-31  4:30             ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Guenter Roeck
2015-08-31 13:11             ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Huang Rui
2015-08-31 13:11               ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Huang Rui
2015-08-31 13:25   ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Peter Zijlstra
2015-08-31 13:25     ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Peter Zijlstra
2015-08-31 14:59     ` [lm-sensors] [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo Peter Zijlstra
2015-08-31 14:59       ` [PATCH 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm Peter Zijlstra
2015-08-27  8:07 ` [lm-sensors] [PATCH 13/15] hwmon, fam15h_power: add documentation for previous TDP reporting Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27  8:07 ` [lm-sensors] [PATCH 14/15] hwmon, fam15h_power: add documentation for accumulated power algorithm Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-27  8:07 ` [lm-sensors] [PATCH 15/15] MAINTAINERS: change the maintainer of fam15h_power driver Huang Rui
2015-08-27  8:07   ` Huang Rui
2015-08-29 16:33   ` [lm-sensors] [15/15] " Guenter Roeck
2015-08-29 16:33     ` Guenter Roeck
2015-08-31  1:11     ` [lm-sensors] " Huang Rui
2015-08-31  1:11       ` Huang Rui
2015-08-31 15:19     ` [lm-sensors] " Andreas Herrmann
2015-08-31 15:19       ` Andreas Herrmann

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=55DF2523.1010605@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=Aravind.Gopalakrishnan@amd.com \
    --cc=aaron.lu@intel.com \
    --cc=bp@alien8.de \
    --cc=bp@suse.de \
    --cc=fengguang.wu@intel.com \
    --cc=fweisbec@gmail.com \
    --cc=herrmann.der.user@gmail.com \
    --cc=herrmann.der.user@googlemail.com \
    --cc=jdelvare@suse.de \
    --cc=john.stultz@linaro.org \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=luto@amacapital.net \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ray.huang@amd.com \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=tony.li@amd.com \
    --cc=x86@kernel.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.