From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v8 4/8] PM / EM: add support for other devices than CPUs in Energy Model
Date: Sat, 06 Jun 2020 06:56:45 +0800 [thread overview]
Message-ID: <202006060658.N8gpmN2u%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 8079 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20200527095854.21714-5-lukasz.luba@arm.com>
References: <20200527095854.21714-5-lukasz.luba@arm.com>
TO: Lukasz Luba <lukasz.luba@arm.com>
TO: linux-kernel(a)vger.kernel.org
TO: linux-pm(a)vger.kernel.org
TO: linux-arm-kernel(a)lists.infradead.org
TO: dri-devel(a)lists.freedesktop.org
TO: linux-omap(a)vger.kernel.org
TO: linux-mediatek(a)lists.infradead.org
TO: linux-arm-msm(a)vger.kernel.org
TO: linux-imx(a)nxp.com
CC: Dietmar.Eggemann(a)arm.com
CC: cw00.choi(a)samsung.com
Hi Lukasz,
I love your patch! Perhaps something to improve:
[auto build test WARNING on pm/linux-next]
[also build test WARNING on tip/sched/core linus/master v5.7 next-20200605]
[cannot apply to linux/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Lukasz-Luba/Add-support-for-devices-in-the-Energy-Model/20200527-180614
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
:::::: branch date: 10 days ago
:::::: commit date: 10 days ago
config: i386-randconfig-m021-20200605 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
kernel/power/energy_model.c:316 em_dev_register_perf_domain() error: we previously assumed 'dev->em_pd' could be null (see line 277)
# https://github.com/0day-ci/linux/commit/110d050cb7ba1c96e63ada498979d1fd99529be2
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 110d050cb7ba1c96e63ada498979d1fd99529be2
vim +316 kernel/power/energy_model.c
27871f7a8a341e Quentin Perret 2018-12-03 244
27871f7a8a341e Quentin Perret 2018-12-03 245 /**
0e294e607adaf3 Lukasz Luba 2020-05-27 246 * em_dev_register_perf_domain() - Register the Energy Model (EM) for a device
0e294e607adaf3 Lukasz Luba 2020-05-27 247 * @dev : Device for which the EM is to register
e33f3acc221459 Lukasz Luba 2020-05-27 248 * @nr_states : Number of performance states to register
27871f7a8a341e Quentin Perret 2018-12-03 249 * @cb : Callback functions providing the data of the Energy Model
110d050cb7ba1c Lukasz Luba 2020-05-27 250 * @cpus : Pointer to cpumask_t, which in case of a CPU device is
0e294e607adaf3 Lukasz Luba 2020-05-27 251 * obligatory. It can be taken from i.e. 'policy->cpus'. For other
0e294e607adaf3 Lukasz Luba 2020-05-27 252 * type of devices this should be set to NULL.
27871f7a8a341e Quentin Perret 2018-12-03 253 *
27871f7a8a341e Quentin Perret 2018-12-03 254 * Create Energy Model tables for a performance domain using the callbacks
27871f7a8a341e Quentin Perret 2018-12-03 255 * defined in cb.
27871f7a8a341e Quentin Perret 2018-12-03 256 *
27871f7a8a341e Quentin Perret 2018-12-03 257 * If multiple clients register the same performance domain, all but the first
27871f7a8a341e Quentin Perret 2018-12-03 258 * registration will be ignored.
27871f7a8a341e Quentin Perret 2018-12-03 259 *
27871f7a8a341e Quentin Perret 2018-12-03 260 * Return 0 on success
27871f7a8a341e Quentin Perret 2018-12-03 261 */
0e294e607adaf3 Lukasz Luba 2020-05-27 262 int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states,
110d050cb7ba1c Lukasz Luba 2020-05-27 263 struct em_data_callback *cb, cpumask_t *cpus)
27871f7a8a341e Quentin Perret 2018-12-03 264 {
27871f7a8a341e Quentin Perret 2018-12-03 265 unsigned long cap, prev_cap = 0;
110d050cb7ba1c Lukasz Luba 2020-05-27 266 int cpu, ret;
27871f7a8a341e Quentin Perret 2018-12-03 267
110d050cb7ba1c Lukasz Luba 2020-05-27 268 if (!dev || !nr_states || !cb)
27871f7a8a341e Quentin Perret 2018-12-03 269 return -EINVAL;
27871f7a8a341e Quentin Perret 2018-12-03 270
27871f7a8a341e Quentin Perret 2018-12-03 271 /*
27871f7a8a341e Quentin Perret 2018-12-03 272 * Use a mutex to serialize the registration of performance domains and
27871f7a8a341e Quentin Perret 2018-12-03 273 * let the driver-defined callback functions sleep.
27871f7a8a341e Quentin Perret 2018-12-03 274 */
27871f7a8a341e Quentin Perret 2018-12-03 275 mutex_lock(&em_pd_mutex);
27871f7a8a341e Quentin Perret 2018-12-03 276
110d050cb7ba1c Lukasz Luba 2020-05-27 @277 if (dev->em_pd) {
27871f7a8a341e Quentin Perret 2018-12-03 278 ret = -EEXIST;
27871f7a8a341e Quentin Perret 2018-12-03 279 goto unlock;
27871f7a8a341e Quentin Perret 2018-12-03 280 }
27871f7a8a341e Quentin Perret 2018-12-03 281
110d050cb7ba1c Lukasz Luba 2020-05-27 282 if (_is_cpu_device(dev)) {
110d050cb7ba1c Lukasz Luba 2020-05-27 283 if (!cpus) {
110d050cb7ba1c Lukasz Luba 2020-05-27 284 dev_err(dev, "EM: invalid CPU mask\n");
110d050cb7ba1c Lukasz Luba 2020-05-27 285 ret = -EINVAL;
110d050cb7ba1c Lukasz Luba 2020-05-27 286 goto unlock;
110d050cb7ba1c Lukasz Luba 2020-05-27 287 }
110d050cb7ba1c Lukasz Luba 2020-05-27 288
110d050cb7ba1c Lukasz Luba 2020-05-27 289 for_each_cpu(cpu, cpus) {
110d050cb7ba1c Lukasz Luba 2020-05-27 290 if (em_cpu_get(cpu)) {
110d050cb7ba1c Lukasz Luba 2020-05-27 291 dev_err(dev, "EM: exists for CPU%d\n", cpu);
110d050cb7ba1c Lukasz Luba 2020-05-27 292 ret = -EEXIST;
110d050cb7ba1c Lukasz Luba 2020-05-27 293 goto unlock;
110d050cb7ba1c Lukasz Luba 2020-05-27 294 }
27871f7a8a341e Quentin Perret 2018-12-03 295 /*
110d050cb7ba1c Lukasz Luba 2020-05-27 296 * All CPUs of a domain must have the same
110d050cb7ba1c Lukasz Luba 2020-05-27 297 * micro-architecture since they all share the same
110d050cb7ba1c Lukasz Luba 2020-05-27 298 * table.
27871f7a8a341e Quentin Perret 2018-12-03 299 */
8ec59c0f5f4966 Vincent Guittot 2019-06-17 300 cap = arch_scale_cpu_capacity(cpu);
27871f7a8a341e Quentin Perret 2018-12-03 301 if (prev_cap && prev_cap != cap) {
110d050cb7ba1c Lukasz Luba 2020-05-27 302 dev_err(dev, "EM: CPUs of %*pbl must have the same capacity\n",
110d050cb7ba1c Lukasz Luba 2020-05-27 303 cpumask_pr_args(cpus));
110d050cb7ba1c Lukasz Luba 2020-05-27 304
27871f7a8a341e Quentin Perret 2018-12-03 305 ret = -EINVAL;
27871f7a8a341e Quentin Perret 2018-12-03 306 goto unlock;
27871f7a8a341e Quentin Perret 2018-12-03 307 }
27871f7a8a341e Quentin Perret 2018-12-03 308 prev_cap = cap;
27871f7a8a341e Quentin Perret 2018-12-03 309 }
110d050cb7ba1c Lukasz Luba 2020-05-27 310 }
27871f7a8a341e Quentin Perret 2018-12-03 311
110d050cb7ba1c Lukasz Luba 2020-05-27 312 ret = em_create_pd(dev, nr_states, cb, cpus);
110d050cb7ba1c Lukasz Luba 2020-05-27 313 if (ret)
27871f7a8a341e Quentin Perret 2018-12-03 314 goto unlock;
27871f7a8a341e Quentin Perret 2018-12-03 315
110d050cb7ba1c Lukasz Luba 2020-05-27 @316 em_debug_create_pd(dev);
110d050cb7ba1c Lukasz Luba 2020-05-27 317 dev_info(dev, "EM: created perf domain\n");
27871f7a8a341e Quentin Perret 2018-12-03 318
27871f7a8a341e Quentin Perret 2018-12-03 319 unlock:
27871f7a8a341e Quentin Perret 2018-12-03 320 mutex_unlock(&em_pd_mutex);
27871f7a8a341e Quentin Perret 2018-12-03 321 return ret;
27871f7a8a341e Quentin Perret 2018-12-03 322 }
0e294e607adaf3 Lukasz Luba 2020-05-27 323 EXPORT_SYMBOL_GPL(em_dev_register_perf_domain);
0e294e607adaf3 Lukasz Luba 2020-05-27 324
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28764 bytes --]
next reply other threads:[~2020-06-05 22:56 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 22:56 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-05-27 9:58 [PATCH v8 0/8] Add support for devices in the Energy Model Lukasz Luba
2020-05-27 9:58 ` [PATCH v8 4/8] PM / EM: add support for other devices than CPUs in " Lukasz Luba
2020-05-27 9:58 ` Lukasz Luba
2020-05-27 9:58 ` Lukasz Luba
2020-05-27 9:58 ` Lukasz Luba
2020-06-01 21:44 ` Daniel Lezcano
2020-06-01 21:44 ` Daniel Lezcano
2020-06-01 21:44 ` Daniel Lezcano
2020-06-01 21:44 ` Daniel Lezcano
2020-06-02 11:31 ` Lukasz Luba
2020-06-02 11:31 ` Lukasz Luba
2020-06-02 11:31 ` Lukasz Luba
2020-06-02 11:31 ` Lukasz Luba
2020-06-03 15:13 ` Rafael J. Wysocki
2020-06-03 15:13 ` Rafael J. Wysocki
2020-06-03 15:13 ` Rafael J. Wysocki
2020-06-03 15:25 ` Lukasz Luba
2020-06-03 15:25 ` Lukasz Luba
2020-06-03 15:25 ` Lukasz Luba
2020-06-03 15:40 ` Rafael J. Wysocki
2020-06-03 15:40 ` Rafael J. Wysocki
2020-06-03 15:40 ` Rafael J. Wysocki
2020-06-03 16:12 ` Lukasz Luba
2020-06-03 16:12 ` Lukasz Luba
2020-06-03 16:12 ` Lukasz Luba
2020-06-03 16:22 ` Rafael J. Wysocki
2020-06-03 16:22 ` Rafael J. Wysocki
2020-06-03 16:22 ` Rafael J. Wysocki
2020-06-03 16:45 ` Lukasz Luba
2020-06-03 16:45 ` Lukasz Luba
2020-06-03 16:45 ` Lukasz Luba
2020-06-08 11:51 ` Dan Carpenter
2020-06-08 11:51 ` Dan Carpenter
2020-06-08 11:51 ` Dan Carpenter
2020-06-08 11:51 ` Dan Carpenter
2020-06-08 11:51 ` Dan Carpenter
2020-06-08 11:51 ` Dan Carpenter
2020-06-08 12:34 ` Lukasz Luba
2020-06-08 12:34 ` Lukasz Luba
2020-06-08 12:34 ` Lukasz Luba
2020-06-08 12:34 ` Lukasz Luba
2020-06-08 12:34 ` Lukasz Luba
2020-06-08 12:51 ` Dan Carpenter
2020-06-08 12:51 ` Dan Carpenter
2020-06-08 12:51 ` Dan Carpenter
2020-06-08 12:51 ` Dan Carpenter
2020-06-08 12:51 ` Dan Carpenter
2020-06-08 12:51 ` Dan Carpenter
2020-06-08 12:59 ` Lukasz Luba
2020-06-08 12:59 ` Lukasz Luba
2020-06-08 12:59 ` Lukasz Luba
2020-06-08 12:59 ` Lukasz Luba
2020-06-08 12:59 ` Lukasz Luba
2020-06-08 13:25 ` Dan Carpenter
2020-06-08 13:25 ` Dan Carpenter
2020-06-08 13:25 ` Dan Carpenter
2020-06-08 13:25 ` Dan Carpenter
2020-06-08 13:25 ` Dan Carpenter
2020-06-08 13:25 ` Dan Carpenter
2020-06-08 13:49 ` Lukasz Luba
2020-06-08 13:49 ` Lukasz Luba
2020-06-08 13:49 ` Lukasz Luba
2020-06-08 13:49 ` Lukasz Luba
2020-06-08 13:49 ` 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=202006060658.N8gpmN2u%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.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.