All of lore.kernel.org
 help / color / mirror / Atom feed
* [tj-sched-ext:scx-sub-sched-v2 29/40] kernel/sched/ext.c:2459:27: error: 'struct scx_sched_pcpu' has no member named 'bypass_host_seq'
@ 2026-02-25 11:58 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-02-25 11:58 UTC (permalink / raw)
  To: Tejun Heo; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git scx-sub-sched-v2
head:   f2122e67cf5ccb9d8844e72cd437a6fd56f0ad80
commit: 6f0091bd18342d745facac02f1f57490f8a67d49 [29/40] sched_ext: Implement hierarchical bypass mode
config: powerpc-randconfig-001-20260225 (https://download.01.org/0day-ci/archive/20260225/202602251959.622Zkdps-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260225/202602251959.622Zkdps-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/202602251959.622Zkdps-lkp@intel.com/

All errors (new ones prefixed by >>):

         |                                                    ^
   include/linux/compiler_types.h:686:23: note: in definition of macro '__compiletime_assert'
     686 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   include/linux/compiler_types.h:706:9: note: in expansion of macro '_compiletime_assert'
     706 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |         ^~~~~~~~~~~~~~~~~~~
   include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |         ^~~~~~~~~~~~~~~~~~
   include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |                            ^~~~~~~~~~~~~
   include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
      49 |         compiletime_assert_rwonce_type(x);                              \
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:507:50: note: in expansion of macro 'READ_ONCE'
     507 |         typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \
         |                                                  ^~~~~~~~~
   include/linux/rcupdate.h:626:31: note: in expansion of macro '__rcu_access_pointer'
     626 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __UNIQUE_ID(rcu), __rcu)
         |                               ^~~~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:24: note: in expansion of macro 'rcu_access_pointer'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                        ^~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:52: error: 'struct sched_ext_entity' has no member named 'sched'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                                                    ^
   include/linux/compiler_types.h:686:23: note: in definition of macro '__compiletime_assert'
     686 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   include/linux/compiler_types.h:706:9: note: in expansion of macro '_compiletime_assert'
     706 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |         ^~~~~~~~~~~~~~~~~~~
   include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |         ^~~~~~~~~~~~~~~~~~
   include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
      49 |         compiletime_assert_rwonce_type(x);                              \
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:507:50: note: in expansion of macro 'READ_ONCE'
     507 |         typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \
         |                                                  ^~~~~~~~~
   include/linux/rcupdate.h:626:31: note: in expansion of macro '__rcu_access_pointer'
     626 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __UNIQUE_ID(rcu), __rcu)
         |                               ^~~~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:24: note: in expansion of macro 'rcu_access_pointer'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                        ^~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:52: error: 'struct sched_ext_entity' has no member named 'sched'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                                                    ^
   include/linux/compiler_types.h:633:27: note: in definition of macro '__unqual_scalar_typeof'
     633 |                 _Generic((x),                                           \
         |                           ^
   include/asm-generic/rwonce.h:50:9: note: in expansion of macro '__READ_ONCE'
      50 |         __READ_ONCE(x);                                                 \
         |         ^~~~~~~~~~~
   include/linux/rcupdate.h:507:50: note: in expansion of macro 'READ_ONCE'
     507 |         typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \
         |                                                  ^~~~~~~~~
   include/linux/rcupdate.h:626:31: note: in expansion of macro '__rcu_access_pointer'
     626 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __UNIQUE_ID(rcu), __rcu)
         |                               ^~~~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:24: note: in expansion of macro 'rcu_access_pointer'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                        ^~~~~~~~~~~~~~~~~~
   In file included from ./arch/powerpc/include/generated/asm/rwonce.h:1,
                    from include/linux/compiler.h:372,
                    from include/linux/build_bug.h:5,
                    from include/linux/container_of.h:5,
                    from include/linux/list.h:5,
                    from include/linux/smp.h:12,
                    from include/linux/sched/clock.h:5,
                    from kernel/sched/build_policy.c:16:
   kernel/sched/ext.c:2435:52: error: 'struct sched_ext_entity' has no member named 'sched'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                                                    ^
   include/asm-generic/rwonce.h:44:73: note: in definition of macro '__READ_ONCE'
      44 | #define __READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
         |                                                                         ^
   include/linux/rcupdate.h:507:50: note: in expansion of macro 'READ_ONCE'
     507 |         typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \
         |                                                  ^~~~~~~~~
   include/linux/rcupdate.h:626:31: note: in expansion of macro '__rcu_access_pointer'
     626 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __UNIQUE_ID(rcu), __rcu)
         |                               ^~~~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:24: note: in expansion of macro 'rcu_access_pointer'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                        ^~~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:2435:52: error: 'struct sched_ext_entity' has no member named 'sched'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                                                    ^
   include/linux/rcupdate.h:509:19: note: in definition of macro '__rcu_access_pointer'
     509 |         ((typeof(*p) __force __kernel *)(local)); \
         |                   ^
   kernel/sched/ext.c:2435:24: note: in expansion of macro 'rcu_access_pointer'
    2435 |                 sch == rcu_access_pointer(prev->scx.sched);
         |                        ^~~~~~~~~~~~~~~~~~
   In file included from kernel/sched/build_policy.c:62:
>> kernel/sched/ext.c:2459:27: error: 'struct scx_sched_pcpu' has no member named 'bypass_host_seq'
    2459 |                 if (!(pcpu->bypass_host_seq++ % SCX_BYPASS_HOST_NTH) &&
         |                           ^~
   kernel/sched/ext.c: In function '__scx_init_task':
   kernel/sched/ext.c:3190:28: warning: unused variable 'tg' [-Wunused-variable]
    3190 |         struct task_group *tg = task_group(p);
         |                            ^~
   kernel/sched/ext.c: In function 'scx_root_disable':
   kernel/sched/ext.c:4833:9: error: implicit declaration of function 'drain_descendants' [-Werror=implicit-function-declaration]
    4833 |         drain_descendants(sch);
         |         ^~~~~~~~~~~~~~~~~
   kernel/sched/ext.c:4894:29: error: 'struct scx_sched' has no member named 'cgrp'
    4894 |         set_cgroup_sched(sch->cgrp, NULL);
         |                             ^~
   kernel/sched/ext.c: In function 'scx_vexit':
   kernel/sched/ext.c:5368:9: warning: function 'scx_vexit' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
    5368 |         vscnprintf(ei->msg, SCX_EXIT_MSG_LEN, fmt, args);
         |         ^~~~~~~~~~
   kernel/sched/ext.c: In function 'scx_root_enable':
   kernel/sched/ext.c:5619:45: error: 'cgrp_dfl_root' undeclared (first use in this function)
    5619 |         sch = scx_alloc_and_add_sched(ops, &cgrp_dfl_root.cgrp, NULL);
         |                                             ^~~~~~~~~~~~~
   kernel/sched/ext.c:5619:45: note: each undeclared identifier is reported only once for each function it appears in
   kernel/sched/ext.c:5745:29: error: 'struct scx_sched' has no member named 'cgrp'
    5745 |         set_cgroup_sched(sch->cgrp, sch);
         |                             ^~
   kernel/sched/ext.c: At top level:
   kernel/sched/ext.c:4820:13: warning: 'scx_propgate_disable' defined but not used [-Wunused-function]
    4820 | static void scx_propgate_disable(struct scx_sched *sch) { }
         |             ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +2459 kernel/sched/ext.c

  2427	
  2428	static bool scx_dispatch_sched(struct scx_sched *sch, struct rq *rq,
  2429				       struct task_struct *prev)
  2430	{
  2431		struct scx_dsp_ctx *dspc = this_cpu_ptr(scx_dsp_ctx);
  2432		int nr_loops = SCX_DSP_MAX_LOOPS;
  2433		s32 cpu = cpu_of(rq);
  2434		bool prev_on_sch = (prev->sched_class == &ext_sched_class) &&
  2435			sch == rcu_access_pointer(prev->scx.sched);
  2436	
  2437		if (consume_global_dsq(sch, rq))
  2438			return true;
  2439	
  2440		if (bypass_dsp_enabled(sch)) {
  2441			struct scx_sched_pcpu *pcpu = per_cpu_ptr(sch->pcpu, cpu);
  2442	
  2443			/* if @sch is bypassing, only the bypass DSQs are active */
  2444			if (scx_bypassing(sch, cpu))
  2445				return consume_dispatch_q(sch, rq, bypass_dsq(sch, cpu));
  2446	
  2447			/*
  2448			 * If @sch isn't bypassing but its children are, @sch is
  2449			 * responsible for making forward progress for both its own
  2450			 * tasks that aren't bypassing and the bypassing descendants'
  2451			 * tasks. The following implements a simple built-in behavior -
  2452			 * let each CPU try to run the bypass DSQ every Nth time.
  2453			 *
  2454			 * Later, if necessary, we can add an ops flag to suppress the
  2455			 * auto-consumption and a kfunc to consume the bypass DSQ and,
  2456			 * so that the BPF scheduler can fully control scheduling of
  2457			 * bypassed tasks.
  2458			 */
> 2459			if (!(pcpu->bypass_host_seq++ % SCX_BYPASS_HOST_NTH) &&
  2460			    consume_dispatch_q(sch, rq, bypass_dsq(sch, cpu))) {
  2461				__scx_add_event(sch, SCX_EV_SUB_BYPASS_DISPATCH, 1);
  2462				return true;
  2463			}
  2464		}
  2465	
  2466		if (unlikely(!SCX_HAS_OP(sch, dispatch)) || !scx_rq_online(rq))
  2467			return false;
  2468	
  2469		dspc->rq = rq;
  2470	
  2471		/*
  2472		 * The dispatch loop. Because flush_dispatch_buf() may drop the rq lock,
  2473		 * the local DSQ might still end up empty after a successful
  2474		 * ops.dispatch(). If the local DSQ is empty even after ops.dispatch()
  2475		 * produced some tasks, retry. The BPF scheduler may depend on this
  2476		 * looping behavior to simplify its implementation.
  2477		 */
  2478		do {
  2479			dspc->nr_tasks = 0;
  2480	
  2481			SCX_CALL_OP(sch, SCX_KF_DISPATCH, dispatch, rq, cpu,
  2482				    prev_on_sch ? prev : NULL);
  2483	
  2484			flush_dispatch_buf(sch, rq);
  2485	
  2486			if ((prev->scx.flags & SCX_TASK_QUEUED) && prev->scx.slice) {
  2487				rq->scx.flags |= SCX_RQ_BAL_KEEP;
  2488				return true;
  2489			}
  2490			if (rq->scx.local_dsq.nr)
  2491				return true;
  2492			if (consume_global_dsq(sch, rq))
  2493				return true;
  2494	
  2495			/*
  2496			 * ops.dispatch() can trap us in this loop by repeatedly
  2497			 * dispatching ineligible tasks. Break out once in a while to
  2498			 * allow the watchdog to run. As IRQ can't be enabled in
  2499			 * balance(), we want to complete this scheduling cycle and then
  2500			 * start a new one. IOW, we want to call resched_curr() on the
  2501			 * next, most likely idle, task, not the current one. Use
  2502			 * __scx_bpf_kick_cpu() for deferred kicking.
  2503			 */
  2504			if (unlikely(!--nr_loops)) {
  2505				scx_kick_cpu(sch, cpu, 0);
  2506				break;
  2507			}
  2508		} while (dspc->nr_tasks);
  2509	
  2510		/*
  2511		 * Prevent the CPU from going idle while bypassed descendants have tasks
  2512		 * queued. Without this fallback, bypassed tasks could stall if the host
  2513		 * scheduler's ops.dispatch() doesn't yield any tasks.
  2514		 */
  2515		if (bypass_dsp_enabled(sch))
  2516			return consume_dispatch_q(sch, rq, bypass_dsq(sch, cpu));
  2517	
  2518		return false;
  2519	}
  2520	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-02-25 11:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-25 11:58 [tj-sched-ext:scx-sub-sched-v2 29/40] kernel/sched/ext.c:2459:27: error: 'struct scx_sched_pcpu' has no member named 'bypass_host_seq' kernel test robot

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.