All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Luba <lukasz.luba@arm.com>
To: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-doc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: robh+dt@kernel.org, amitk@kernel.org, corbet@lwn.net,
	daniel.lezcano@linaro.org, lukasz.luba@arm.com,
	Dietmar.Eggemann@arm.com, morten.rasmussen@arm.com,
	qperret@google.com, dianders@chromium.org, mka@chromium.org,
	rnayak@codeaurora.org, rafael@kernel.org, sudeep.holla@arm.com,
	viresh.kumar@linaro.org, sboyd@kernel.org, nm@ti.com
Subject: [PATCH v3 4/4] docs: power: Update Energy Model with new flag indicating power scale
Date: Mon, 19 Oct 2020 15:06:01 +0100	[thread overview]
Message-ID: <20201019140601.3047-5-lukasz.luba@arm.com> (raw)
In-Reply-To: <20201019140601.3047-1-lukasz.luba@arm.com>

Update description and meaning of a new flag, which indicates the type of
power scale used for a registered Energy Model (EM) device.

Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
---
 Documentation/power/energy-model.rst | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/Documentation/power/energy-model.rst b/Documentation/power/energy-model.rst
index ba7aa581b307..60ac091d3b0d 100644
--- a/Documentation/power/energy-model.rst
+++ b/Documentation/power/energy-model.rst
@@ -30,6 +30,8 @@ These subsystems are more interested in estimation of power used in the past,
 thus the real milli-Watts might be needed. An example of these requirements can
 be found in the Intelligent Power Allocation in
 Documentation/driver-api/thermal/power_allocator.rst.
+Kernel subsystems might implement automatic detection to check whether EM
+registered devices have inconsistent scale (based on EM internal flag).
 Important thing to keep in mind is that when the power values are expressed in
 an 'abstract scale' deriving real energy in milli-Joules would not be possible.
 
@@ -86,7 +88,7 @@ Drivers are expected to register performance domains into the EM framework by
 calling the following API::
 
   int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states,
-		struct em_data_callback *cb, cpumask_t *cpus);
+		struct em_data_callback *cb, cpumask_t *cpus, bool milliwatts);
 
 Drivers must provide a callback function returning <frequency, power> tuples
 for each performance state. The callback function provided by the driver is free
@@ -94,6 +96,10 @@ to fetch data from any relevant location (DT, firmware, ...), and by any mean
 deemed necessary. Only for CPU devices, drivers must specify the CPUs of the
 performance domains using cpumask. For other devices than CPUs the last
 argument must be set to NULL.
+The last argument 'milliwatts' is important to set with correct value. Kernel
+subsystems which use EM might rely on this flag to check if all EM devices use
+the same scale. If there are different scales, these subsystems might decide
+to: return warning/error, stop working or panic.
 See Section 3. for an example of driver implementing this
 callback, and kernel/power/energy_model.c for further documentation on this
 API.
@@ -169,7 +175,8 @@ EM framework::
   37     	nr_opp = foo_get_nr_opp(policy);
   38
   39     	/* And register the new performance domain */
-  40     	em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus);
-  41
-  42	        return 0;
-  43	}
+  40     	em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus,
+  41					    true);
+  42
+  43	        return 0;
+  44	}
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Lukasz Luba <lukasz.luba@arm.com>
To: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-doc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: nm@ti.com, rafael@kernel.org, daniel.lezcano@linaro.org,
	rnayak@codeaurora.org, corbet@lwn.net, sboyd@kernel.org,
	viresh.kumar@linaro.org, mka@chromium.org, amitk@kernel.org,
	dianders@chromium.org, morten.rasmussen@arm.com,
	robh+dt@kernel.org, sudeep.holla@arm.com, qperret@google.com,
	Dietmar.Eggemann@arm.com, lukasz.luba@arm.com
Subject: [PATCH v3 4/4] docs: power: Update Energy Model with new flag indicating power scale
Date: Mon, 19 Oct 2020 15:06:01 +0100	[thread overview]
Message-ID: <20201019140601.3047-5-lukasz.luba@arm.com> (raw)
In-Reply-To: <20201019140601.3047-1-lukasz.luba@arm.com>

Update description and meaning of a new flag, which indicates the type of
power scale used for a registered Energy Model (EM) device.

Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
---
 Documentation/power/energy-model.rst | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/Documentation/power/energy-model.rst b/Documentation/power/energy-model.rst
index ba7aa581b307..60ac091d3b0d 100644
--- a/Documentation/power/energy-model.rst
+++ b/Documentation/power/energy-model.rst
@@ -30,6 +30,8 @@ These subsystems are more interested in estimation of power used in the past,
 thus the real milli-Watts might be needed. An example of these requirements can
 be found in the Intelligent Power Allocation in
 Documentation/driver-api/thermal/power_allocator.rst.
+Kernel subsystems might implement automatic detection to check whether EM
+registered devices have inconsistent scale (based on EM internal flag).
 Important thing to keep in mind is that when the power values are expressed in
 an 'abstract scale' deriving real energy in milli-Joules would not be possible.
 
@@ -86,7 +88,7 @@ Drivers are expected to register performance domains into the EM framework by
 calling the following API::
 
   int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states,
-		struct em_data_callback *cb, cpumask_t *cpus);
+		struct em_data_callback *cb, cpumask_t *cpus, bool milliwatts);
 
 Drivers must provide a callback function returning <frequency, power> tuples
 for each performance state. The callback function provided by the driver is free
@@ -94,6 +96,10 @@ to fetch data from any relevant location (DT, firmware, ...), and by any mean
 deemed necessary. Only for CPU devices, drivers must specify the CPUs of the
 performance domains using cpumask. For other devices than CPUs the last
 argument must be set to NULL.
+The last argument 'milliwatts' is important to set with correct value. Kernel
+subsystems which use EM might rely on this flag to check if all EM devices use
+the same scale. If there are different scales, these subsystems might decide
+to: return warning/error, stop working or panic.
 See Section 3. for an example of driver implementing this
 callback, and kernel/power/energy_model.c for further documentation on this
 API.
@@ -169,7 +175,8 @@ EM framework::
   37     	nr_opp = foo_get_nr_opp(policy);
   38
   39     	/* And register the new performance domain */
-  40     	em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus);
-  41
-  42	        return 0;
-  43	}
+  40     	em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus,
+  41					    true);
+  42
+  43	        return 0;
+  44	}
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-10-19 14:06 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-19 14:05 [PATCH v3 0/4] Clarify abstract scale usage for power values in Energy Model, EAS and IPA Lukasz Luba
2020-10-19 14:05 ` Lukasz Luba
2020-10-19 14:05 ` [PATCH v3 1/4] PM / EM: Add a flag indicating units of power values in Energy Model Lukasz Luba
2020-10-19 14:05   ` Lukasz Luba
2020-10-20  0:17   ` Doug Anderson
2020-10-20  0:17     ` Doug Anderson
2020-10-29 12:08     ` Lukasz Luba
2020-10-29 12:08       ` Lukasz Luba
2020-11-02 13:43   ` Quentin Perret
2020-11-02 13:43     ` Quentin Perret
2020-11-03  8:26     ` Lukasz Luba
2020-11-03  8:26       ` Lukasz Luba
2020-10-19 14:05 ` [PATCH v3 2/4] docs: Clarify abstract scale usage for " Lukasz Luba
2020-10-19 14:05   ` Lukasz Luba
2020-11-02 13:45   ` Quentin Perret
2020-11-02 13:45     ` Quentin Perret
2020-11-03  8:28     ` Lukasz Luba
2020-11-03  8:28       ` Lukasz Luba
2020-10-19 14:06 ` [PATCH v3 3/4] PM / EM: update the comments related to power scale Lukasz Luba
2020-10-19 14:06   ` Lukasz Luba
2020-11-02 13:48   ` Quentin Perret
2020-11-02 13:48     ` Quentin Perret
2020-10-19 14:06 ` Lukasz Luba [this message]
2020-10-19 14:06   ` [PATCH v3 4/4] docs: power: Update Energy Model with new flag indicating " Lukasz Luba
2020-11-02 13:51   ` Quentin Perret
2020-11-02 13:51     ` Quentin Perret
2020-10-20  0:15 ` [PATCH v3 0/4] Clarify abstract scale usage for power values in Energy Model, EAS and IPA Doug Anderson
2020-10-20  0:15   ` Doug Anderson
2020-10-29 12:37   ` Lukasz Luba
2020-10-29 12:37     ` Lukasz Luba
2020-10-29 15:39     ` Doug Anderson
2020-10-29 15:39       ` Doug Anderson
2020-10-29 16:15       ` Lukasz Luba
2020-10-29 16:15         ` Lukasz Luba
2020-11-02  8:54 ` Lukasz Luba
2020-11-02  8:54   ` Lukasz Luba
2020-11-02 13:54   ` Quentin Perret
2020-11-02 13:54     ` Quentin Perret
2020-11-03  0:41     ` Doug Anderson
2020-11-03  0:41       ` Doug Anderson
2020-11-03  8:29     ` Lukasz Luba
2020-11-03  8:29       ` Lukasz Luba

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=20201019140601.3047-5-lukasz.luba@arm.com \
    --to=lukasz.luba@arm.com \
    --cc=Dietmar.Eggemann@arm.com \
    --cc=amitk@kernel.org \
    --cc=corbet@lwn.net \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mka@chromium.org \
    --cc=morten.rasmussen@arm.com \
    --cc=nm@ti.com \
    --cc=qperret@google.com \
    --cc=rafael@kernel.org \
    --cc=rnayak@codeaurora.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=viresh.kumar@linaro.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.