From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 07/12] MIPS: CPS & MT: Switch to new topology interface
Date: Thu, 09 Apr 2020 13:26:25 +0800 [thread overview]
Message-ID: <202004091328.Cd3azF2i%lkp@intel.com> (raw)
In-Reply-To: <20200408130024.2529220-2-jiaxun.yang@flygoat.com>
[-- Attachment #1: Type: text/plain, Size: 13322 bytes --]
Hi Jiaxun,
I love your patch! Yet something to improve:
[auto build test ERROR on driver-core/driver-core-testing]
[also build test ERROR on linus/master next-20200408]
[cannot apply to tip/perf/core tip/irq/core v5.6]
[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/Jiaxun-Yang/MIPS-Topology-DeviceTree-CPU-rework/20200409-021602
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git a10c9c710f9ecea87b9f4bbb837467893b4bef01
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/cpuidle/cpuidle-cps.c: In function 'cps_nc_enter':
>> drivers/cpuidle/cpuidle-cps.c:36:6: error: implicit declaration of function 'cpus_are_siblings' [-Werror=implicit-function-declaration]
36 | if (cpus_are_siblings(0, dev->cpu) && (index > STATE_NC_WAIT))
| ^~~~~~~~~~~~~~~~~
drivers/cpuidle/cpuidle-cps.c: In function 'cps_cpuidle_init':
>> drivers/cpuidle/cpuidle-cps.c:162:40: error: 'cpu_sibling_map' undeclared (first use in this function); did you mean 'cpu_foreign_map'?
162 | cpumask_copy(&device->coupled_cpus, &cpu_sibling_map[cpu]);
| ^~~~~~~~~~~~~~~
| cpu_foreign_map
drivers/cpuidle/cpuidle-cps.c:162:40: note: each undeclared identifier is reported only once for each function it appears in
cc1: some warnings being treated as errors
vim +162 drivers/cpuidle/cpuidle-cps.c
d050894435cdc78 Paul Burton 2014-04-14 22
d050894435cdc78 Paul Burton 2014-04-14 23 static int cps_nc_enter(struct cpuidle_device *dev,
d050894435cdc78 Paul Burton 2014-04-14 24 struct cpuidle_driver *drv, int index)
d050894435cdc78 Paul Burton 2014-04-14 25 {
d050894435cdc78 Paul Burton 2014-04-14 26 enum cps_pm_state pm_state;
d050894435cdc78 Paul Burton 2014-04-14 27 int err;
d050894435cdc78 Paul Burton 2014-04-14 28
d050894435cdc78 Paul Burton 2014-04-14 29 /*
d050894435cdc78 Paul Burton 2014-04-14 30 * At least one core must remain powered up & clocked in order for the
d050894435cdc78 Paul Burton 2014-04-14 31 * system to have any hope of functioning.
d050894435cdc78 Paul Burton 2014-04-14 32 *
d050894435cdc78 Paul Burton 2014-04-14 33 * TODO: don't treat core 0 specially, just prevent the final core
d050894435cdc78 Paul Burton 2014-04-14 34 * TODO: remap interrupt affinity temporarily
d050894435cdc78 Paul Burton 2014-04-14 35 */
fe7a38c625a2ee3 Paul Burton 2017-08-12 @36 if (cpus_are_siblings(0, dev->cpu) && (index > STATE_NC_WAIT))
d050894435cdc78 Paul Burton 2014-04-14 37 index = STATE_NC_WAIT;
d050894435cdc78 Paul Burton 2014-04-14 38
d050894435cdc78 Paul Burton 2014-04-14 39 /* Select the appropriate cps_pm_state */
d050894435cdc78 Paul Burton 2014-04-14 40 switch (index) {
d050894435cdc78 Paul Burton 2014-04-14 41 case STATE_NC_WAIT:
d050894435cdc78 Paul Burton 2014-04-14 42 pm_state = CPS_PM_NC_WAIT;
d050894435cdc78 Paul Burton 2014-04-14 43 break;
d050894435cdc78 Paul Burton 2014-04-14 44 case STATE_CLOCK_GATED:
d050894435cdc78 Paul Burton 2014-04-14 45 pm_state = CPS_PM_CLOCK_GATED;
d050894435cdc78 Paul Burton 2014-04-14 46 break;
d050894435cdc78 Paul Burton 2014-04-14 47 case STATE_POWER_GATED:
d050894435cdc78 Paul Burton 2014-04-14 48 pm_state = CPS_PM_POWER_GATED;
d050894435cdc78 Paul Burton 2014-04-14 49 break;
d050894435cdc78 Paul Burton 2014-04-14 50 default:
d050894435cdc78 Paul Burton 2014-04-14 51 BUG();
d050894435cdc78 Paul Burton 2014-04-14 52 return -EINVAL;
d050894435cdc78 Paul Burton 2014-04-14 53 }
d050894435cdc78 Paul Burton 2014-04-14 54
d050894435cdc78 Paul Burton 2014-04-14 55 /* Notify listeners the CPU is about to power down */
d050894435cdc78 Paul Burton 2014-04-14 56 if ((pm_state == CPS_PM_POWER_GATED) && cpu_pm_enter())
d050894435cdc78 Paul Burton 2014-04-14 57 return -EINTR;
d050894435cdc78 Paul Burton 2014-04-14 58
d050894435cdc78 Paul Burton 2014-04-14 59 /* Enter that state */
d050894435cdc78 Paul Burton 2014-04-14 60 err = cps_pm_enter_state(pm_state);
d050894435cdc78 Paul Burton 2014-04-14 61
d050894435cdc78 Paul Burton 2014-04-14 62 /* Notify listeners the CPU is back up */
d050894435cdc78 Paul Burton 2014-04-14 63 if (pm_state == CPS_PM_POWER_GATED)
d050894435cdc78 Paul Burton 2014-04-14 64 cpu_pm_exit();
d050894435cdc78 Paul Burton 2014-04-14 65
d050894435cdc78 Paul Burton 2014-04-14 66 return err ?: index;
d050894435cdc78 Paul Burton 2014-04-14 67 }
d050894435cdc78 Paul Burton 2014-04-14 68
d050894435cdc78 Paul Burton 2014-04-14 69 static struct cpuidle_driver cps_driver = {
d050894435cdc78 Paul Burton 2014-04-14 70 .name = "cpc_cpuidle",
d050894435cdc78 Paul Burton 2014-04-14 71 .owner = THIS_MODULE,
d050894435cdc78 Paul Burton 2014-04-14 72 .states = {
d050894435cdc78 Paul Burton 2014-04-14 73 [STATE_WAIT] = MIPS_CPUIDLE_WAIT_STATE,
d050894435cdc78 Paul Burton 2014-04-14 74 [STATE_NC_WAIT] = {
d050894435cdc78 Paul Burton 2014-04-14 75 .enter = cps_nc_enter,
d050894435cdc78 Paul Burton 2014-04-14 76 .exit_latency = 200,
d050894435cdc78 Paul Burton 2014-04-14 77 .target_residency = 450,
d050894435cdc78 Paul Burton 2014-04-14 78 .name = "nc-wait",
d050894435cdc78 Paul Burton 2014-04-14 79 .desc = "non-coherent MIPS wait",
d050894435cdc78 Paul Burton 2014-04-14 80 },
d050894435cdc78 Paul Burton 2014-04-14 81 [STATE_CLOCK_GATED] = {
d050894435cdc78 Paul Burton 2014-04-14 82 .enter = cps_nc_enter,
d050894435cdc78 Paul Burton 2014-04-14 83 .exit_latency = 300,
d050894435cdc78 Paul Burton 2014-04-14 84 .target_residency = 700,
b82b6cca488074d Daniel Lezcano 2014-11-12 85 .flags = CPUIDLE_FLAG_TIMER_STOP,
d050894435cdc78 Paul Burton 2014-04-14 86 .name = "clock-gated",
d050894435cdc78 Paul Burton 2014-04-14 87 .desc = "core clock gated",
d050894435cdc78 Paul Burton 2014-04-14 88 },
d050894435cdc78 Paul Burton 2014-04-14 89 [STATE_POWER_GATED] = {
d050894435cdc78 Paul Burton 2014-04-14 90 .enter = cps_nc_enter,
d050894435cdc78 Paul Burton 2014-04-14 91 .exit_latency = 600,
d050894435cdc78 Paul Burton 2014-04-14 92 .target_residency = 1000,
b82b6cca488074d Daniel Lezcano 2014-11-12 93 .flags = CPUIDLE_FLAG_TIMER_STOP,
d050894435cdc78 Paul Burton 2014-04-14 94 .name = "power-gated",
d050894435cdc78 Paul Burton 2014-04-14 95 .desc = "core power gated",
d050894435cdc78 Paul Burton 2014-04-14 96 },
d050894435cdc78 Paul Burton 2014-04-14 97 },
d050894435cdc78 Paul Burton 2014-04-14 98 .state_count = STATE_COUNT,
d050894435cdc78 Paul Burton 2014-04-14 99 .safe_state_index = 0,
d050894435cdc78 Paul Burton 2014-04-14 100 };
d050894435cdc78 Paul Burton 2014-04-14 101
d050894435cdc78 Paul Burton 2014-04-14 102 static void __init cps_cpuidle_unregister(void)
d050894435cdc78 Paul Burton 2014-04-14 103 {
d050894435cdc78 Paul Burton 2014-04-14 104 int cpu;
d050894435cdc78 Paul Burton 2014-04-14 105 struct cpuidle_device *device;
d050894435cdc78 Paul Burton 2014-04-14 106
d050894435cdc78 Paul Burton 2014-04-14 107 for_each_possible_cpu(cpu) {
d050894435cdc78 Paul Burton 2014-04-14 108 device = &per_cpu(cpuidle_dev, cpu);
d050894435cdc78 Paul Burton 2014-04-14 109 cpuidle_unregister_device(device);
d050894435cdc78 Paul Burton 2014-04-14 110 }
d050894435cdc78 Paul Burton 2014-04-14 111
d050894435cdc78 Paul Burton 2014-04-14 112 cpuidle_unregister_driver(&cps_driver);
d050894435cdc78 Paul Burton 2014-04-14 113 }
d050894435cdc78 Paul Burton 2014-04-14 114
d050894435cdc78 Paul Burton 2014-04-14 115 static int __init cps_cpuidle_init(void)
d050894435cdc78 Paul Burton 2014-04-14 116 {
02018b3929a23ac Marcin Nowakowski 2017-04-19 117 int err, cpu, i;
d050894435cdc78 Paul Burton 2014-04-14 118 struct cpuidle_device *device;
d050894435cdc78 Paul Burton 2014-04-14 119
d050894435cdc78 Paul Burton 2014-04-14 120 /* Detect supported states */
d050894435cdc78 Paul Burton 2014-04-14 121 if (!cps_pm_support_state(CPS_PM_POWER_GATED))
d050894435cdc78 Paul Burton 2014-04-14 122 cps_driver.state_count = STATE_CLOCK_GATED + 1;
d050894435cdc78 Paul Burton 2014-04-14 123 if (!cps_pm_support_state(CPS_PM_CLOCK_GATED))
d050894435cdc78 Paul Burton 2014-04-14 124 cps_driver.state_count = STATE_NC_WAIT + 1;
d050894435cdc78 Paul Burton 2014-04-14 125 if (!cps_pm_support_state(CPS_PM_NC_WAIT))
d050894435cdc78 Paul Burton 2014-04-14 126 cps_driver.state_count = STATE_WAIT + 1;
d050894435cdc78 Paul Burton 2014-04-14 127
d050894435cdc78 Paul Burton 2014-04-14 128 /* Inform the user if some states are unavailable */
d050894435cdc78 Paul Burton 2014-04-14 129 if (cps_driver.state_count < STATE_COUNT) {
d050894435cdc78 Paul Burton 2014-04-14 130 pr_info("cpuidle-cps: limited to ");
d050894435cdc78 Paul Burton 2014-04-14 131 switch (cps_driver.state_count - 1) {
d050894435cdc78 Paul Burton 2014-04-14 132 case STATE_WAIT:
d050894435cdc78 Paul Burton 2014-04-14 133 pr_cont("coherent wait\n");
d050894435cdc78 Paul Burton 2014-04-14 134 break;
d050894435cdc78 Paul Burton 2014-04-14 135 case STATE_NC_WAIT:
d050894435cdc78 Paul Burton 2014-04-14 136 pr_cont("non-coherent wait\n");
d050894435cdc78 Paul Burton 2014-04-14 137 break;
d050894435cdc78 Paul Burton 2014-04-14 138 case STATE_CLOCK_GATED:
d050894435cdc78 Paul Burton 2014-04-14 139 pr_cont("clock gating\n");
d050894435cdc78 Paul Burton 2014-04-14 140 break;
d050894435cdc78 Paul Burton 2014-04-14 141 }
d050894435cdc78 Paul Burton 2014-04-14 142 }
d050894435cdc78 Paul Burton 2014-04-14 143
d050894435cdc78 Paul Burton 2014-04-14 144 /*
d050894435cdc78 Paul Burton 2014-04-14 145 * Set the coupled flag on the appropriate states if this system
d050894435cdc78 Paul Burton 2014-04-14 146 * requires it.
d050894435cdc78 Paul Burton 2014-04-14 147 */
d050894435cdc78 Paul Burton 2014-04-14 148 if (coupled_coherence)
d050894435cdc78 Paul Burton 2014-04-14 149 for (i = STATE_NC_WAIT; i < cps_driver.state_count; i++)
d050894435cdc78 Paul Burton 2014-04-14 150 cps_driver.states[i].flags |= CPUIDLE_FLAG_COUPLED;
d050894435cdc78 Paul Burton 2014-04-14 151
d050894435cdc78 Paul Burton 2014-04-14 152 err = cpuidle_register_driver(&cps_driver);
d050894435cdc78 Paul Burton 2014-04-14 153 if (err) {
d050894435cdc78 Paul Burton 2014-04-14 154 pr_err("Failed to register CPS cpuidle driver\n");
d050894435cdc78 Paul Burton 2014-04-14 155 return err;
d050894435cdc78 Paul Burton 2014-04-14 156 }
d050894435cdc78 Paul Burton 2014-04-14 157
d050894435cdc78 Paul Burton 2014-04-14 158 for_each_possible_cpu(cpu) {
d050894435cdc78 Paul Burton 2014-04-14 159 device = &per_cpu(cpuidle_dev, cpu);
d050894435cdc78 Paul Burton 2014-04-14 160 device->cpu = cpu;
72bc8c75eaf72aa Matt Redfearn 2016-09-07 161 #ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
d050894435cdc78 Paul Burton 2014-04-14 @162 cpumask_copy(&device->coupled_cpus, &cpu_sibling_map[cpu]);
:::::: The code at line 162 was first introduced by commit
:::::: d050894435cdc78807e714a0148527542a583e87 cpuidle: cpuidle-cps: add MIPS CPS cpuidle driver
:::::: TO: Paul Burton <paul.burton@imgtec.com>
:::::: CC: Paul Burton <paul.burton@imgtec.com>
---
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: 65039 bytes --]
next prev parent reply other threads:[~2020-04-09 5:26 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-08 11:34 [PATCH 00/12] MIPS: Topology & DeviceTree CPU rework Jiaxun Yang
2020-04-08 11:34 ` [PATCH 01/12] MIPS: setup: Drop prefill_possible_map Jiaxun Yang
2020-04-08 11:34 ` [PATCH 02/12] MIPS: prom: Add helper to parse CPU node in dt Jiaxun Yang
2020-04-08 11:34 ` [PATCH 03/12] arch_topology: Make it avilable for MIPS Jiaxun Yang
2020-04-08 18:23 ` Valentin Schneider
2020-04-09 0:54 ` kbuild test robot
2020-04-09 0:54 ` kbuild test robot
2020-04-09 10:13 ` Sudeep Holla
2020-04-08 11:34 ` [PATCH 04/12] arch_topology: Reset all cpus in reset_cpu_topology Jiaxun Yang
2020-04-08 18:23 ` Valentin Schneider
2020-04-09 10:19 ` Sudeep Holla
2020-04-08 11:34 ` [PATCH 05/12] MIPS: Switch to arch_topology Jiaxun Yang
2020-04-08 23:36 ` kbuild test robot
2020-04-08 23:36 ` kbuild test robot
2020-04-09 10:31 ` Sudeep Holla
[not found] ` <C2794910-48A0-4472-953A-13F40BA39423@flygoat.com>
2020-04-09 10:58 ` Sudeep Holla
2020-04-09 11:07 ` Jiaxun Yang
2020-04-09 12:53 ` Sudeep Holla
2020-04-09 13:14 ` Jiaxun Yang
2020-04-09 12:23 ` Jiaxun Yang
2020-04-08 12:59 ` [PATCH 06/12] MIPS: Kernel: Switch to new topology interface Jiaxun Yang
2020-04-08 12:59 ` [PATCH 07/12] MIPS: CPS & MT: " Jiaxun Yang
2020-04-09 5:26 ` kbuild test robot [this message]
2020-04-08 12:59 ` [PATCH 08/12] irqchip: mips-cpu: " Jiaxun Yang
2020-04-08 12:59 ` [PATCH 09/12] MIPS: bmips: " Jiaxun Yang
2020-04-08 12:59 ` [PATCH 10/12] MIPS: nlm: " Jiaxun Yang
2020-04-08 12:59 ` [PATCH 11/12] MIPS: Loongson64: " Jiaxun Yang
2020-04-08 12:59 ` [PATCH 12/12] MIPS: ip27: Fix includes Jiaxun Yang
2020-04-09 9:19 ` Mike Rapoport
2020-04-09 9:38 ` Jiaxun Yang
2020-04-09 10:07 ` Mike Rapoport
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=202004091328.Cd3azF2i%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@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.