From: Aaron Lu <ziqianlu@bytedance.com>
To: kernel test robot <lkp@intel.com>
Cc: Valentin Schneider <vschneid@redhat.com>,
Ben Segall <bsegall@google.com>,
K Prateek Nayak <kprateek.nayak@amd.com>,
Peter Zijlstra <peterz@infradead.org>,
Chengming Zhou <chengming.zhou@linux.dev>,
Josh Don <joshdon@google.com>, Ingo Molnar <mingo@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Xi Wang <xii@google.com>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
linux-kernel@vger.kernel.org, Juri Lelli <juri.lelli@redhat.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mel Gorman <mgorman@suse.de>,
Chuyi Zhou <zhouchuyi@bytedance.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
Florian Bezdeka <florian.bezdeka@siemens.com>,
Songtang Liu <liusongtang@bytedance.com>
Subject: Re: [PATCH v3 3/5] sched/fair: Switch to task based throttle model
Date: Wed, 16 Jul 2025 14:57:07 +0800 [thread overview]
Message-ID: <20250716065707.GA32@bytedance> (raw)
In-Reply-To: <202507160730.0cXkgs0S-lkp@intel.com>
On Wed, Jul 16, 2025 at 07:29:37AM +0800, kernel test robot wrote:
> Hi Aaron,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on tip/sched/core]
> [also build test WARNING on next-20250715]
> [cannot apply to linus/master v6.16-rc6]
> [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#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Aaron-Lu/sched-fair-Add-related-data-structure-for-task-based-throttle/20250715-152307
> base: tip/sched/core
> patch link: https://lore.kernel.org/r/20250715071658.267-4-ziqianlu%40bytedance.com
> patch subject: [PATCH v3 3/5] sched/fair: Switch to task based throttle model
> config: i386-buildonly-randconfig-006-20250716 (https://download.01.org/0day-ci/archive/20250716/202507160730.0cXkgs0S-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250716/202507160730.0cXkgs0S-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202507160730.0cXkgs0S-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
> >> kernel/sched/fair.c:5456:33: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
> 5456 | cfs_rq->pelt_clock_throttled = 1;
> | ^ ~
Thanks for the report.
I don't think this will affect correctness since both cfs_rq's throttled
and pelt_clock_throttled fields are used as true(not 0) or false(0). I
used bitfield for them to save some space.
Change their types to either unsigned int or bool should cure this
warning, I suppose bool looks more clear?
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index dbe52e18b93a0..434f816a56701 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -737,8 +737,8 @@ struct cfs_rq {
u64 throttled_clock_pelt_time;
u64 throttled_clock_self;
u64 throttled_clock_self_time;
- int throttled:1;
- int pelt_clock_throttled:1;
+ bool throttled:1;
+ bool pelt_clock_throttled:1;
int throttle_count;
struct list_head throttled_list;
struct list_head throttled_csd_list;
Hi LKP,
I tried using clang-19 but couldn't reproduce this warning and I don't
have clang-20 at hand. Can you please apply the above hunk on top of
this series and see if that warning is gone? Thanks.
Best regards,
Aaron
> kernel/sched/fair.c:5971:32: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
> 5971 | cfs_rq->pelt_clock_throttled = 1;
> | ^ ~
> kernel/sched/fair.c:6014:20: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
> 6014 | cfs_rq->throttled = 1;
> | ^ ~
> 3 warnings generated.
>
>
> vim +/int +5456 kernel/sched/fair.c
>
> 5372
> 5373 static bool
> 5374 dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
> 5375 {
> 5376 bool sleep = flags & DEQUEUE_SLEEP;
> 5377 int action = UPDATE_TG;
> 5378
> 5379 update_curr(cfs_rq);
> 5380 clear_buddies(cfs_rq, se);
> 5381
> 5382 if (flags & DEQUEUE_DELAYED) {
> 5383 WARN_ON_ONCE(!se->sched_delayed);
> 5384 } else {
> 5385 bool delay = sleep;
> 5386 /*
> 5387 * DELAY_DEQUEUE relies on spurious wakeups, special task
> 5388 * states must not suffer spurious wakeups, excempt them.
> 5389 */
> 5390 if (flags & DEQUEUE_SPECIAL)
> 5391 delay = false;
> 5392
> 5393 WARN_ON_ONCE(delay && se->sched_delayed);
> 5394
> 5395 if (sched_feat(DELAY_DEQUEUE) && delay &&
> 5396 !entity_eligible(cfs_rq, se)) {
> 5397 update_load_avg(cfs_rq, se, 0);
> 5398 set_delayed(se);
> 5399 return false;
> 5400 }
> 5401 }
> 5402
> 5403 if (entity_is_task(se) && task_on_rq_migrating(task_of(se)))
> 5404 action |= DO_DETACH;
> 5405
> 5406 /*
> 5407 * When dequeuing a sched_entity, we must:
> 5408 * - Update loads to have both entity and cfs_rq synced with now.
> 5409 * - For group_entity, update its runnable_weight to reflect the new
> 5410 * h_nr_runnable of its group cfs_rq.
> 5411 * - Subtract its previous weight from cfs_rq->load.weight.
> 5412 * - For group entity, update its weight to reflect the new share
> 5413 * of its group cfs_rq.
> 5414 */
> 5415 update_load_avg(cfs_rq, se, action);
> 5416 se_update_runnable(se);
> 5417
> 5418 update_stats_dequeue_fair(cfs_rq, se, flags);
> 5419
> 5420 update_entity_lag(cfs_rq, se);
> 5421 if (sched_feat(PLACE_REL_DEADLINE) && !sleep) {
> 5422 se->deadline -= se->vruntime;
> 5423 se->rel_deadline = 1;
> 5424 }
> 5425
> 5426 if (se != cfs_rq->curr)
> 5427 __dequeue_entity(cfs_rq, se);
> 5428 se->on_rq = 0;
> 5429 account_entity_dequeue(cfs_rq, se);
> 5430
> 5431 /* return excess runtime on last dequeue */
> 5432 return_cfs_rq_runtime(cfs_rq);
> 5433
> 5434 update_cfs_group(se);
> 5435
> 5436 /*
> 5437 * Now advance min_vruntime if @se was the entity holding it back,
> 5438 * except when: DEQUEUE_SAVE && !DEQUEUE_MOVE, in this case we'll be
> 5439 * put back on, and if we advance min_vruntime, we'll be placed back
> 5440 * further than we started -- i.e. we'll be penalized.
> 5441 */
> 5442 if ((flags & (DEQUEUE_SAVE | DEQUEUE_MOVE)) != DEQUEUE_SAVE)
> 5443 update_min_vruntime(cfs_rq);
> 5444
> 5445 if (flags & DEQUEUE_DELAYED)
> 5446 finish_delayed_dequeue_entity(se);
> 5447
> 5448 if (cfs_rq->nr_queued == 0) {
> 5449 update_idle_cfs_rq_clock_pelt(cfs_rq);
> 5450 #ifdef CONFIG_CFS_BANDWIDTH
> 5451 if (throttled_hierarchy(cfs_rq)) {
> 5452 struct rq *rq = rq_of(cfs_rq);
> 5453
> 5454 list_del_leaf_cfs_rq(cfs_rq);
> 5455 cfs_rq->throttled_clock_pelt = rq_clock_pelt(rq);
> > 5456 cfs_rq->pelt_clock_throttled = 1;
> 5457 }
> 5458 #endif
> 5459 }
> 5460
> 5461 return true;
> 5462 }
> 5463
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-07-16 6:57 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-15 7:16 [PATCH v3 0/5] Defer throttle when task exits to user Aaron Lu
2025-07-15 7:16 ` [PATCH v3 1/5] sched/fair: Add related data structure for task based throttle Aaron Lu
2025-07-15 7:16 ` [PATCH v3 2/5] sched/fair: Implement throttle task work and related helpers Aaron Lu
2025-07-15 7:16 ` [PATCH v3 3/5] sched/fair: Switch to task based throttle model Aaron Lu
2025-07-15 23:29 ` kernel test robot
2025-07-16 6:57 ` Aaron Lu [this message]
2025-07-16 7:40 ` Philip Li
2025-07-16 11:15 ` [PATCH v3 update " Aaron Lu
2025-07-16 11:27 ` [PATCH v3 " Peter Zijlstra
2025-07-16 15:20 ` kernel test robot
2025-07-17 3:52 ` Aaron Lu
2025-07-23 8:21 ` Oliver Sang
2025-07-23 10:08 ` Aaron Lu
2025-08-08 9:12 ` Valentin Schneider
2025-08-08 10:13 ` Aaron Lu
2025-08-08 11:45 ` Valentin Schneider
2025-08-12 8:48 ` Aaron Lu
2025-08-14 15:54 ` Valentin Schneider
2025-08-15 9:30 ` Aaron Lu
2025-08-22 11:07 ` Aaron Lu
2025-09-03 7:14 ` Aaron Lu
2025-09-03 9:11 ` K Prateek Nayak
2025-09-03 10:11 ` Aaron Lu
2025-09-03 10:31 ` K Prateek Nayak
2025-09-03 11:35 ` Aaron Lu
2025-09-04 7:33 ` Bezdeka, Florian
2025-09-04 8:26 ` K Prateek Nayak
2025-09-04 8:40 ` Aaron Lu
2025-08-28 3:50 ` Aaron Lu
2025-08-17 8:50 ` Chen, Yu C
2025-08-18 2:50 ` Aaron Lu
2025-08-18 3:10 ` Chen, Yu C
2025-08-18 3:12 ` Aaron Lu
2025-07-15 7:16 ` [PATCH v3 4/5] sched/fair: Task based throttle time accounting Aaron Lu
2025-08-18 14:57 ` Valentin Schneider
2025-08-19 9:34 ` Aaron Lu
2025-08-19 14:09 ` Valentin Schneider
2025-08-26 14:10 ` Michal Koutný
2025-08-27 15:16 ` Valentin Schneider
2025-08-28 6:06 ` Aaron Lu
2025-08-26 9:15 ` Aaron Lu
2025-07-15 7:16 ` [PATCH v3 5/5] sched/fair: Get rid of throttled_lb_pair() Aaron Lu
2025-07-15 7:22 ` [PATCH v3 0/5] Defer throttle when task exits to user Aaron Lu
2025-08-01 14:31 ` Matteo Martelli
2025-08-04 7:52 ` Aaron Lu
2025-08-04 11:18 ` Valentin Schneider
2025-08-04 11:56 ` Aaron Lu
2025-08-08 16:37 ` Matteo Martelli
2025-08-04 8:51 ` K Prateek Nayak
2025-08-04 11:48 ` Aaron Lu
2025-08-27 14:58 ` Valentin Schneider
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=20250716065707.GA32@bytedance \
--to=ziqianlu@bytedance.com \
--cc=bsegall@google.com \
--cc=chengming.zhou@linux.dev \
--cc=dietmar.eggemann@arm.com \
--cc=florian.bezdeka@siemens.com \
--cc=jan.kiszka@siemens.com \
--cc=joshdon@google.com \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liusongtang@bytedance.com \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=xii@google.com \
--cc=zhouchuyi@bytedance.com \
/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.