tree:
https://android.googlesource.com/kernel/common android12-5.10
head: 09bd9e940e98acad0c854f75b31fc79a93cde981
commit: 09bd9e940e98acad0c854f75b31fc79a93cde981 [1/1] ANDROID: cpuhp/pause: schedule
cpu_hotplug_work on resume cpu
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add android-common
https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android12-5.10
git checkout 09bd9e940e98acad0c854f75b31fc79a93cde981
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the android-common/android12-5.10 HEAD 45ebb9628e49418f30d182a8af06cff34a0a06e8
builds fine.
It only hurts bisectability.
All errors (new ones prefixed by >>):
kernel/cpu.c:1158:5: warning: no previous prototype for '__pause_drain_rq'
[-Wmissing-prototypes]
1158 | int __pause_drain_rq(struct cpumask *cpus)
| ^~~~~~~~~~~~~~~~
kernel/cpu.c:1178:6: warning: no previous prototype for '__wait_drain_rq'
[-Wmissing-prototypes]
1178 | void __wait_drain_rq(struct cpumask *cpus)
| ^~~~~~~~~~~~~~~
kernel/cpu.c: In function 'resume_cpus':
> kernel/cpu.c:1368:9: error: implicit declaration of function
'cpuset_update_active_cpus_affine'; did you mean
'cpuset_update_active_cpus'? [-Werror=implicit-function-declaration]
1368 | cpuset_update_active_cpus_affine(cpumask_first(cpus));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| cpuset_update_active_cpus
cc1: some warnings being treated as errors
vim +1368 kernel/cpu.c
1325
1326 int resume_cpus(struct cpumask *cpus)
1327 {
1328 unsigned int cpu;
1329 int err = 0;
1330 u64 start_time = 0;
1331 int prev_prio;
1332
1333 start_time = sched_clock();
1334
1335 cpu_maps_update_begin();
1336
1337 if (cpu_hotplug_disabled) {
1338 err = -EBUSY;
1339 goto err_cpu_maps_update;
1340 }
1341
1342 /* Resuming an already active CPU isn't an error */
1343 cpumask_andnot(cpus, cpus, cpu_active_mask);
1344
1345 for_each_cpu(cpu, cpus) {
1346 if (!cpu_online(cpu)) {
1347 err = -EBUSY;
1348 goto err_cpu_maps_update;
1349 }
1350 }
1351
1352 if (cpumask_empty(cpus))
1353 goto err_cpu_maps_update;
1354
1355 for_each_cpu(cpu, cpus)
1356 set_cpu_active(cpu, true);
1357
1358 trace_android_rvh_resume_cpus(cpus, &err);
1359 if (err)
1360 goto err_cpu_maps_update;
1361
1362 prev_prio = pause_reduce_prio();
1363
1364 /* Lazy Resume. Build domains through schedule a workqueue on
1365 * resuming cpu. This is so that the resuming cpu can work more
1366 * early, and cannot add additional load to other busy cpu.
1367 */
1368 cpuset_update_active_cpus_affine(cpumask_first(cpus));
1369
1370 cpus_write_lock();
1371
1372 cpuhp_tasks_frozen = 0;
1373
1374 if (sched_cpus_activate(cpus)) {
1375 err = -EBUSY;
1376 goto err_cpus_write_unlock;
1377 }
1378
1379 /*
1380 * see pause_cpus.
1381 */
1382 for_each_cpu(cpu, cpus) {
1383 struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
1384
1385 st->state = CPUHP_ONLINE;
1386 st->target = st->state;
1387 }
1388
1389 err_cpus_write_unlock:
1390 cpus_write_unlock();
1391 pause_restore_prio(prev_prio);
1392 err_cpu_maps_update:
1393 cpu_maps_update_done();
1394
1395 trace_cpuhp_pause(cpus, start_time, 0);
1396
1397 return err;
1398 }
1399 EXPORT_SYMBOL_GPL(resume_cpus);
1400
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org