Re: [PATCH v4 1/1] sched/uclamp: add SCHED_FLAG_UTIL_CLAMP_RESET flag to reset uclamp

From: kernel test robot
Date: Mon Nov 02 2020 - 15:51:44 EST


Hi Yun,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on v5.10-rc2 next-20201102]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Yun-Hsiang/sched-uclamp-add-SCHED_FLAG_UTIL_CLAMP_RESET-flag-to-reset-uclamp/20201101-164635
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git d8fcb81f1acf651a0e50eacecca43d0524984f87
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/b705c245791a37b85013c6604ee1301022312dc5
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yun-Hsiang/sched-uclamp-add-SCHED_FLAG_UTIL_CLAMP_RESET-flag-to-reset-uclamp/20201101-164635
git checkout b705c245791a37b85013c6604ee1301022312dc5
# save the attached .config to linux build tree
make W=1 ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

kernel/sched/core.c: In function '__setscheduler_uclamp':
>> kernel/sched/core.c:1471:15: warning: variable 'clamp_value' set but not used [-Wunused-but-set-variable]
1471 | unsigned int clamp_value;
| ^~~~~~~~~~~
kernel/sched/core.c: At top level:
kernel/sched/core.c:2405:6: warning: no previous prototype for 'sched_set_stop_task' [-Wmissing-prototypes]
2405 | void sched_set_stop_task(int cpu, struct task_struct *stop)
| ^~~~~~~~~~~~~~~~~~~

vim +/clamp_value +1471 kernel/sched/core.c

1467
1468 static void __setscheduler_uclamp(struct task_struct *p,
1469 const struct sched_attr *attr)
1470 {
> 1471 unsigned int clamp_value;
1472 enum uclamp_id clamp_id;
1473
1474 /*
1475 * Reset to default clamps on forced _UCLAMP_RESET (always) and
1476 * for tasks without a task-specific value (on scheduling class change).
1477 */
1478 for_each_clamp_id(clamp_id) {
1479 struct uclamp_se *uc_se = &p->uclamp_req[clamp_id];
1480
1481 /* Keep using defined clamps across class changes */
1482 if (!uclamp_reset(clamp_id, attr->sched_flags) &&
1483 uc_se->user_defined)
1484 continue;
1485
1486 /*
1487 * RT by default have a 100% boost value that could be modified
1488 * at runtime.
1489 */
1490 if (unlikely(rt_task(p) && clamp_id == UCLAMP_MIN))
1491 clamp_value = sysctl_sched_uclamp_util_min_rt_default;
1492 else
1493 clamp_value = uclamp_none(clamp_id);
1494
1495 uclamp_se_set(uc_se, uclamp_none(clamp_id), false);
1496 }
1497
1498 if (likely(!(attr->sched_flags && SCHED_FLAG_UTIL_CLAMP)) ||
1499 attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_RESET)
1500 return;
1501
1502 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN)
1503 uclamp_se_set(&p->uclamp_req[UCLAMP_MIN],
1504 attr->sched_util_min, true);
1505
1506 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX)
1507 uclamp_se_set(&p->uclamp_req[UCLAMP_MAX],
1508 attr->sched_util_max, true);
1509 }
1510

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip