All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: K Prateek Nayak <kprateek.nayak@amd.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [RESEND RFC PATCH v2 28/29] [EXPERIMENTAL] sched/fair: Add a local counter to rate limit task push
Date: Wed, 10 Dec 2025 17:20:23 +0800	[thread overview]
Message-ID: <202512101753.617JFKKE-lkp@intel.com> (raw)
In-Reply-To: <20251208092744.32737-28-kprateek.nayak@amd.com>

Hi Prateek,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build errors:

[auto build test ERROR on 3eb59356014674fa1b506a122cc59b57089a4d08]

url:    https://github.com/intel-lab-lkp/linux/commits/K-Prateek-Nayak/sched-fair-Simplify-set_cpu_sd_state_-with-guards/20251208-183121
base:   3eb59356014674fa1b506a122cc59b57089a4d08
patch link:    https://lore.kernel.org/r/20251208092744.32737-28-kprateek.nayak%40amd.com
patch subject: [RESEND RFC PATCH v2 28/29] [EXPERIMENTAL] sched/fair: Add a local counter to rate limit task push
config: nios2-randconfig-r072-20251210 (https://download.01.org/0day-ci/archive/20251210/202512101753.617JFKKE-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251210/202512101753.617JFKKE-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/202512101753.617JFKKE-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/bitops.h:7,
                    from include/linux/kernel.h:23,
                    from include/linux/cpumask.h:11,
                    from include/linux/energy_model.h:4,
                    from kernel/sched/fair.c:23:
   kernel/sched/fair.c: In function 'sched_balance_domains':
>> kernel/sched/fair.c:12363:46: error: 'struct sched_domain' has no member named 'last_nr_push_update'
   12363 |                     time_after_eq(jiffies, sd->last_nr_push_update + sd->min_interval)) {
         |                                              ^~
   include/linux/typecheck.h:11:16: note: in definition of macro 'typecheck'
      11 |         typeof(x) __dummy2; \
         |                ^
   kernel/sched/fair.c:12363:21: note: in expansion of macro 'time_after_eq'
   12363 |                     time_after_eq(jiffies, sd->last_nr_push_update + sd->min_interval)) {
         |                     ^~~~~~~~~~~~~
   include/linux/typecheck.h:12:25: warning: comparison of distinct pointer types lacks a cast
      12 |         (void)(&__dummy == &__dummy2); \
         |                         ^~
   include/linux/jiffies.h:149:10: note: in expansion of macro 'typecheck'
     149 |          typecheck(unsigned long, b) && \
         |          ^~~~~~~~~
   kernel/sched/fair.c:12363:21: note: in expansion of macro 'time_after_eq'
   12363 |                     time_after_eq(jiffies, sd->last_nr_push_update + sd->min_interval)) {
         |                     ^~~~~~~~~~~~~
   In file included from include/linux/ktime.h:25,
                    from include/linux/timer.h:6,
                    from include/linux/uprobes.h:18,
                    from include/linux/mm_types.h:16,
                    from include/linux/mmzone.h:22,
                    from include/linux/gfp.h:7,
                    from include/linux/xarray.h:16,
                    from include/linux/radix-tree.h:21,
                    from include/linux/idr.h:15,
                    from include/linux/kernfs.h:12,
                    from include/linux/sysfs.h:16,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:18,
                    from include/linux/energy_model.h:5,
                    from kernel/sched/fair.c:23:
>> kernel/sched/fair.c:12363:46: error: 'struct sched_domain' has no member named 'last_nr_push_update'
   12363 |                     time_after_eq(jiffies, sd->last_nr_push_update + sd->min_interval)) {
         |                                              ^~
   include/linux/jiffies.h:150:25: note: in definition of macro 'time_after_eq'
     150 |          ((long)((a) - (b)) >= 0))
         |                         ^
>> kernel/sched/fair.c:12364:27: error: 'struct sched_domain' has no member named 'nr_push_attempt'
   12364 |                         sd->nr_push_attempt = READ_ONCE(sd->shared->nr_idle_scan);
         |                           ^~
   kernel/sched/fair.c:12365:27: error: 'struct sched_domain' has no member named 'last_nr_push_update'
   12365 |                         sd->last_nr_push_update = jiffies;
         |                           ^~
   kernel/sched/fair.c: In function 'has_pushable_tasks':
   kernel/sched/fair.c:13089:42: error: 'struct cfs_rq' has no member named 'pushable_tasks'
   13089 |         return !plist_head_empty(&rq->cfs.pushable_tasks);
         |                                          ^
   In file included from include/linux/kernel.h:22,
                    from include/linux/cpumask.h:11,
                    from include/linux/energy_model.h:4,
                    from kernel/sched/fair.c:23:
   kernel/sched/fair.c: In function 'pick_next_pushable_fair_task':
   kernel/sched/fair.c:13099:39: error: 'struct cfs_rq' has no member named 'pushable_tasks'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |                                       ^
   include/linux/container_of.h:20:33: note: in definition of macro 'container_of'
      20 |         void *__mptr = (void *)(ptr);                                   \
         |                                 ^~~
   kernel/sched/fair.c:13099:13: note: in expansion of macro 'plist_first_entry'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |             ^~~~~~~~~~~~~~~~~
   In file included from include/linux/container_of.h:5,
                    from include/linux/kernel.h:22,
                    from include/linux/cpumask.h:11,
                    from include/linux/energy_model.h:4,
                    from kernel/sched/fair.c:23:
   kernel/sched/fair.c:13099:39: error: 'struct cfs_rq' has no member named 'pushable_tasks'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |                                       ^
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:21:9: note: in expansion of macro 'static_assert'
      21 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:21:23: note: in expansion of macro '__same_type'
      21 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |                       ^~~~~~~~~~~
   include/linux/plist.h:233:9: note: in expansion of macro 'container_of'
     233 |         container_of(plist_first(head), type, member)
         |         ^~~~~~~~~~~~
   kernel/sched/fair.c:13099:13: note: in expansion of macro 'plist_first_entry'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |             ^~~~~~~~~~~~~~~~~
   kernel/sched/fair.c:13099:39: error: 'struct cfs_rq' has no member named 'pushable_tasks'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |                                       ^
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:21:9: note: in expansion of macro 'static_assert'
      21 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:22:23: note: in expansion of macro '__same_type'
      22 |                       __same_type(*(ptr), void),                        \
         |                       ^~~~~~~~~~~
   include/linux/plist.h:233:9: note: in expansion of macro 'container_of'
     233 |         container_of(plist_first(head), type, member)
         |         ^~~~~~~~~~~~
   kernel/sched/fair.c:13099:13: note: in expansion of macro 'plist_first_entry'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |             ^~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:537:27: error: expression in static assertion is not an integer
     537 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:21:9: note: in expansion of macro 'static_assert'
      21 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:21:23: note: in expansion of macro '__same_type'
      21 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |                       ^~~~~~~~~~~
   include/linux/plist.h:233:9: note: in expansion of macro 'container_of'
     233 |         container_of(plist_first(head), type, member)
         |         ^~~~~~~~~~~~
   kernel/sched/fair.c:13099:13: note: in expansion of macro 'plist_first_entry'
   13099 |         p = plist_first_entry(&rq->cfs.pushable_tasks,
         |             ^~~~~~~~~~~~~~~~~
   kernel/sched/fair.c:13112:47: error: 'struct cfs_rq' has no member named 'pushable_tasks'
   13112 |         plist_del(&p->pushable_tasks, &rq->cfs.pushable_tasks);
         |                                               ^
   kernel/sched/fair.c: In function 'should_push_tasks':
   kernel/sched/fair.c:13138:39: error: 'struct sched_domain' has no member named 'nr_push_attempt'
   13138 |         if (sched_feat(SIS_UTIL) && sd->nr_push_attempt <= 0)
         |                                       ^~
   kernel/sched/fair.c: In function 'push_fair_task':
   kernel/sched/fair.c:13196:11: error: 'struct sched_domain' has no member named 'nr_push_attempt'
   13196 |         sd->nr_push_attempt--;
         |           ^~
   kernel/sched/fair.c:13160:37: warning: unused variable 'sds' [-Wunused-variable]
   13160 |         struct sched_domain_shared *sds;
         |                                     ^~~
   kernel/sched/fair.c: In function 'fair_remove_pushable_task':
   kernel/sched/fair.c:13219:47: error: 'struct cfs_rq' has no member named 'pushable_tasks'
   13219 |         plist_del(&p->pushable_tasks, &rq->cfs.pushable_tasks);
         |                                               ^


vim +12363 kernel/sched/fair.c

 12292	
 12293	/*
 12294	 * It checks each scheduling domain to see if it is due to be balanced,
 12295	 * and initiates a balancing operation if so.
 12296	 *
 12297	 * Balancing parameters are set up in init_sched_domains.
 12298	 */
 12299	static void sched_balance_domains(struct rq *rq, enum cpu_idle_type idle)
 12300	{
 12301		int continue_balancing = 1;
 12302		int cpu = rq->cpu;
 12303		int busy = idle != CPU_IDLE && !sched_idle_cpu(cpu);
 12304		unsigned long interval;
 12305		struct sched_domain *sd;
 12306		/* Earliest time when we have to do rebalance again */
 12307		unsigned long next_balance = jiffies + 60*HZ;
 12308		int update_next_balance = 0;
 12309		int need_decay = 0;
 12310		u64 max_cost = 0;
 12311	
 12312		rcu_read_lock();
 12313		for_each_domain(cpu, sd) {
 12314			/*
 12315			 * Decay the newidle max times here because this is a regular
 12316			 * visit to all the domains.
 12317			 */
 12318			need_decay = update_newidle_cost(sd, 0, 0);
 12319			max_cost += sd->max_newidle_lb_cost;
 12320	
 12321			/*
 12322			 * Stop the load balance at this level. There is another
 12323			 * CPU in our sched group which is doing load balancing more
 12324			 * actively.
 12325			 */
 12326			if (!continue_balancing) {
 12327				if (need_decay)
 12328					continue;
 12329				break;
 12330			}
 12331	
 12332			interval = get_sd_balance_interval(sd, busy);
 12333			if (time_after_eq(jiffies, sd->last_balance + interval)) {
 12334				if (sched_balance_rq(cpu, rq, sd, idle, &continue_balancing)) {
 12335					/*
 12336					 * The LBF_DST_PINNED logic could have changed
 12337					 * env->dst_cpu, so we can't know our idle
 12338					 * state even if we migrated tasks. Update it.
 12339					 */
 12340					idle = idle_cpu(cpu);
 12341					busy = !idle && !sched_idle_cpu(cpu);
 12342				}
 12343				sd->last_balance = jiffies;
 12344				interval = get_sd_balance_interval(sd, busy);
 12345			}
 12346			if (time_after(next_balance, sd->last_balance + interval)) {
 12347				next_balance = sd->last_balance + interval;
 12348				update_next_balance = 1;
 12349			}
 12350		}
 12351		if (need_decay) {
 12352			/*
 12353			 * Ensure the rq-wide value also decays but keep it at a
 12354			 * reasonable floor to avoid funnies with rq->avg_idle.
 12355			 */
 12356			rq->max_idle_balance_cost =
 12357				max((u64)sysctl_sched_migration_cost, max_cost);
 12358		}
 12359		if (sched_feat(SIS_UTIL)) {
 12360			sd = rcu_dereference(per_cpu(sd_llc, cpu));
 12361	
 12362			if (sd && sd->shared &&
 12363			    time_after_eq(jiffies, sd->last_nr_push_update + sd->min_interval)) {
 12364				sd->nr_push_attempt = READ_ONCE(sd->shared->nr_idle_scan);
 12365				sd->last_nr_push_update = jiffies;
 12366			}
 12367		}
 12368	
 12369		rcu_read_unlock();
 12370	
 12371		/*
 12372		 * next_balance will be updated only when there is a need.
 12373		 * When the cpu is attached to null domain for ex, it will not be
 12374		 * updated.
 12375		 */
 12376		if (likely(update_next_balance))
 12377			rq->next_balance = next_balance;
 12378	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2025-12-10  9:21 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-08  9:26 [RESEND RFC PATCH v2 00/29] sched/fair: Push-based load balancing K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 01/29] sched/fair: Simplify set_cpu_sd_state_*() with guards K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 02/29] sched/fair: Use rq->nohz_tick_stopped in update_nohz_stats() K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 03/29] sched/topology: Optimize sd->shared allocation and assignment K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 04/29] sched/fair: Simplify the entry condition for update_idle_cpu_scan() K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 05/29] sched/fair: Simplity SIS_UTIL handling in select_idle_cpu() K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 06/29] cpumask: Introduce for_each_cpu_and_wrap() and bitfield helpers K Prateek Nayak
2025-12-12 21:03   ` Yury Norov
2025-12-08  9:26 ` [RESEND RFC PATCH v2 07/29] sched/fair: Use for_each_cpu_and_wrap() in select_idle_capacity() K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 08/29] sched/fair: Use for_each_cpu_and_wrap() in select_idle_cpu() K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 09/29] sched/fair: Rotate the CPU resposible for busy load balancing K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 10/29] sched/fair: Use xchg() to set sd->nohz_idle state K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 11/29] sched/topology: Attach new hierarchy in rq_attach_root() K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 12/29] sched/fair: Fixup sd->nohz_idle state during hotplug / cpuset K Prateek Nayak
2025-12-08  9:26 ` [RESEND RFC PATCH v2 13/29] sched/fair: Account idle cpus instead of busy cpus in sd->shared K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 14/29] sched/topology: Introduce fallback sd->shared assignment K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 15/29] sched/topology: Introduce percpu sd_nohz for nohz state tracking K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 16/29] sched/topology: Introduce "nohz_idle_cpus_mask" in sd->shared K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 17/29] sched/topology: Introduce "nohz_shared_list" to keep track of sd->shared K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 18/29] sched/fair: Reorder the barrier in nohz_balance_enter_idle() K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 19/29] sched/fair: Extract the main _nohz_idle_balance() loop into a helper K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 20/29] sched/fair: Convert find_new_ilb() to use nohz_shared_list K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 21/29] sched/fair: Introduce sched_asym_prefer_idle() for ILB kick K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 22/29] sched/fair: Convert sched_balance_nohz_idle() to use nohz_shared_list K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 23/29] sched/fair: Remove "nohz.idle_cpus_mask" K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 24/29] sched/fair: Optimize global "nohz.nr_cpus" tracking K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 25/29] sched/topology: Add basic debug information for "nohz_shared_list" K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 26/29] [EXPERIMENTAL] sched/fair: Add push task framework K Prateek Nayak
2025-12-10  8:26   ` kernel test robot
2025-12-08  9:27 ` [RESEND RFC PATCH v2 27/29] [EXPERIMENTAL] sched/fair: Proactive idle balance using push mechanism K Prateek Nayak
2025-12-08  9:27 ` [RESEND RFC PATCH v2 28/29] [EXPERIMENTAL] sched/fair: Add a local counter to rate limit task push K Prateek Nayak
2025-12-08 12:33   ` Christian Loehle
2025-12-08 17:35     ` K Prateek Nayak
2025-12-10  9:20   ` kernel test robot [this message]
2025-12-08  9:27 ` [RESEND RFC PATCH v2 29/29] [EXPERIMENTAL] sched/fair: Faster alternate for intra-NUMA newidle balance K Prateek Nayak
2025-12-08 14:04 ` [RESEND RFC PATCH v2 00/29] sched/fair: Push-based load balancing Shrikanth Hegde
2025-12-08 17:36   ` K Prateek Nayak

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=202512101753.617JFKKE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kprateek.nayak@amd.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.