From: Peter Zijlstra <peterz@infradead.org>
To: Huang Rui <ray.huang@amd.com>
Cc: "Borislav Petkov" <bp@suse.de>, "Jean Delvare" <jdelvare@suse.de>,
"Guenter Roeck" <linux@roeck-us.net>,
"Andy Lutomirski" <luto@amacapital.net>,
"Andreas Herrmann" <herrmann.der.user@gmail.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"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>,
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 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algo
Date: Mon, 31 Aug 2015 14:59:24 +0000 [thread overview]
Message-ID: <20150831145924.GL18673@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20150831132535.GK19282@twins.programming.kicks-ass.net>
On Mon, Aug 31, 2015 at 03:25:35PM +0200, Peter Zijlstra wrote:
> On Thu, Aug 27, 2015 at 04:07:43PM +0800, Huang Rui wrote:
> > +static ssize_t show_power_acc(struct device *dev,
> > + struct device_attribute *attr, char *buf)
> > +{
> > + int cpu, cu, cu_num, cores_per_cu;
> > + u64 curr_cu_acc_power[MAX_CUS],
> > + curr_ptsc[MAX_CUS], jdelta[MAX_CUS];
> > + u64 tdelta, avg_acc;
> > + struct fam15h_power_data *data = dev_get_drvdata(dev);
> > +
> > + cores_per_cu = amd_get_cores_per_cu();
> > + cu_num = boot_cpu_data.x86_max_cores / cores_per_cu;
> > +
> > + for (cpu = 0, avg_acc = 0; cpu < cu_num * cores_per_cu; cpu += cores_per_cu) {
> > + cu = cpu / cores_per_cu;
> > + if (rdmsrl_safe_on_cpu(cpu, MSR_F15H_PTSC, &curr_ptsc[cu])) {
> > + pr_err("Failed to read PTSC counter MSR on core%d\n",
> > + cpu);
> > + return 0;
> > + }
> > +
> > + if (rdmsrl_safe_on_cpu(cpu, MSR_F15H_CU_PWR_ACCUMULATOR,
> > + &curr_cu_acc_power[cu])) {
> > + pr_err("Failed to read compute unit power accumulator MSR on core%d\n",
> > + cpu);
> > + return 0;
> > + }
> > +
> > + if (curr_cu_acc_power[cu] < data->cu_acc_power[cu]) {
> > + jdelta[cu] = data->max_cu_acc_power + curr_cu_acc_power[cu];
> > + jdelta[cu] -= data->cu_acc_power[cu];
> > + } else {
> > + jdelta[cu] = curr_cu_acc_power[cu] - data->cu_acc_power[cu];
> > + }
> > + tdelta = curr_ptsc[cu] - data->cpu_sw_pwr_ptsc[cu];
> > + jdelta[cu] *= data->cpu_pwr_sample_ratio * 1000;
> > + do_div(jdelta[cu], tdelta);
> > +
> > + mutex_lock(&data->acc_pwr_mutex);
> > + data->cu_acc_power[cu] = curr_cu_acc_power[cu];
> > + data->cpu_sw_pwr_ptsc[cu] = curr_ptsc[cu];
> > + mutex_unlock(&data->acc_pwr_mutex);
> > +
> > + /* the unit is microWatt */
> > + avg_acc += jdelta[cu];
> > + }
> > +
> > + return sprintf(buf, "%u\n", (unsigned int) avg_acc);
> > +}
> > +static DEVICE_ATTR(power1_acc, S_IRUGO, show_power_acc, NULL);
>
> This is a world readable file that sprays IPIs across the entire system,
> how is that a good idea?
FWIW this driver is also hotplug challenged. Not to mention it relies on
cpu number layout in unhealthy ways.
_______________________________________________
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: Peter Zijlstra <peterz@infradead.org>
To: Huang Rui <ray.huang@amd.com>
Cc: "Borislav Petkov" <bp@suse.de>, "Jean Delvare" <jdelvare@suse.de>,
"Guenter Roeck" <linux@roeck-us.net>,
"Andy Lutomirski" <luto@amacapital.net>,
"Andreas Herrmann" <herrmann.der.user@gmail.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"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>,
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 12/15] hwmon, fam15h_power: introduce a cpu accumulated power reporting algorithm
Date: Mon, 31 Aug 2015 16:59:24 +0200 [thread overview]
Message-ID: <20150831145924.GL18673@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20150831132535.GK19282@twins.programming.kicks-ass.net>
On Mon, Aug 31, 2015 at 03:25:35PM +0200, Peter Zijlstra wrote:
> On Thu, Aug 27, 2015 at 04:07:43PM +0800, Huang Rui wrote:
> > +static ssize_t show_power_acc(struct device *dev,
> > + struct device_attribute *attr, char *buf)
> > +{
> > + int cpu, cu, cu_num, cores_per_cu;
> > + u64 curr_cu_acc_power[MAX_CUS],
> > + curr_ptsc[MAX_CUS], jdelta[MAX_CUS];
> > + u64 tdelta, avg_acc;
> > + struct fam15h_power_data *data = dev_get_drvdata(dev);
> > +
> > + cores_per_cu = amd_get_cores_per_cu();
> > + cu_num = boot_cpu_data.x86_max_cores / cores_per_cu;
> > +
> > + for (cpu = 0, avg_acc = 0; cpu < cu_num * cores_per_cu; cpu += cores_per_cu) {
> > + cu = cpu / cores_per_cu;
> > + if (rdmsrl_safe_on_cpu(cpu, MSR_F15H_PTSC, &curr_ptsc[cu])) {
> > + pr_err("Failed to read PTSC counter MSR on core%d\n",
> > + cpu);
> > + return 0;
> > + }
> > +
> > + if (rdmsrl_safe_on_cpu(cpu, MSR_F15H_CU_PWR_ACCUMULATOR,
> > + &curr_cu_acc_power[cu])) {
> > + pr_err("Failed to read compute unit power accumulator MSR on core%d\n",
> > + cpu);
> > + return 0;
> > + }
> > +
> > + if (curr_cu_acc_power[cu] < data->cu_acc_power[cu]) {
> > + jdelta[cu] = data->max_cu_acc_power + curr_cu_acc_power[cu];
> > + jdelta[cu] -= data->cu_acc_power[cu];
> > + } else {
> > + jdelta[cu] = curr_cu_acc_power[cu] - data->cu_acc_power[cu];
> > + }
> > + tdelta = curr_ptsc[cu] - data->cpu_sw_pwr_ptsc[cu];
> > + jdelta[cu] *= data->cpu_pwr_sample_ratio * 1000;
> > + do_div(jdelta[cu], tdelta);
> > +
> > + mutex_lock(&data->acc_pwr_mutex);
> > + data->cu_acc_power[cu] = curr_cu_acc_power[cu];
> > + data->cpu_sw_pwr_ptsc[cu] = curr_ptsc[cu];
> > + mutex_unlock(&data->acc_pwr_mutex);
> > +
> > + /* the unit is microWatt */
> > + avg_acc += jdelta[cu];
> > + }
> > +
> > + return sprintf(buf, "%u\n", (unsigned int) avg_acc);
> > +}
> > +static DEVICE_ATTR(power1_acc, S_IRUGO, show_power_acc, NULL);
>
> This is a world readable file that sprays IPIs across the entire system,
> how is that a good idea?
FWIW this driver is also hotplug challenged. Not to mention it relies on
cpu number layout in unhealthy ways.
next prev parent reply other threads:[~2015-08-31 14:59 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 ` [lm-sensors] " Guenter Roeck
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 ` Peter Zijlstra [this message]
2015-08-31 14:59 ` 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=20150831145924.GL18673@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--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=linux@roeck-us.net \
--cc=lm-sensors@lm-sensors.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.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.