mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	sched_ext: Build fix on !CONFIG_STACKTRACE[_SUPPORT]
scx_dump_task() uses stack_trace_save_tsk() which is only available when CONFIG_STACKTRACE. Make CONFIG_SCHED_CLASS_EXT select CONFIG_STACKTRACE if the support is available and skip capturing stack trace if !CONFIG_STACKTRACE. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202407161844.reewQQrR-lkp@intel.com/ Acked-by: David Vernet <void@manifault.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
		
							parent
							
								
									958b189184
								
							
						
					
					
						commit
						a2f4b16e73
					
				
					 2 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
					@ -136,6 +136,7 @@ config SCHED_CORE
 | 
				
			||||||
config SCHED_CLASS_EXT
 | 
					config SCHED_CLASS_EXT
 | 
				
			||||||
	bool "Extensible Scheduling Class"
 | 
						bool "Extensible Scheduling Class"
 | 
				
			||||||
	depends on BPF_SYSCALL && BPF_JIT && DEBUG_INFO_BTF
 | 
						depends on BPF_SYSCALL && BPF_JIT && DEBUG_INFO_BTF
 | 
				
			||||||
 | 
						select STACKTRACE if STACKTRACE_SUPPORT
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  This option enables a new scheduler class sched_ext (SCX), which
 | 
						  This option enables a new scheduler class sched_ext (SCX), which
 | 
				
			||||||
	  allows scheduling policies to be implemented as BPF programs to
 | 
						  allows scheduling policies to be implemented as BPF programs to
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4330,7 +4330,7 @@ static void scx_dump_task(struct seq_buf *s, struct scx_dump_ctx *dctx,
 | 
				
			||||||
	static unsigned long bt[SCX_EXIT_BT_LEN];
 | 
						static unsigned long bt[SCX_EXIT_BT_LEN];
 | 
				
			||||||
	char dsq_id_buf[19] = "(n/a)";
 | 
						char dsq_id_buf[19] = "(n/a)";
 | 
				
			||||||
	unsigned long ops_state = atomic_long_read(&p->scx.ops_state);
 | 
						unsigned long ops_state = atomic_long_read(&p->scx.ops_state);
 | 
				
			||||||
	unsigned int bt_len;
 | 
						unsigned int bt_len = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (p->scx.dsq)
 | 
						if (p->scx.dsq)
 | 
				
			||||||
		scnprintf(dsq_id_buf, sizeof(dsq_id_buf), "0x%llx",
 | 
							scnprintf(dsq_id_buf, sizeof(dsq_id_buf), "0x%llx",
 | 
				
			||||||
| 
						 | 
					@ -4355,7 +4355,9 @@ static void scx_dump_task(struct seq_buf *s, struct scx_dump_ctx *dctx,
 | 
				
			||||||
		ops_dump_exit();
 | 
							ops_dump_exit();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_STACKTRACE
 | 
				
			||||||
	bt_len = stack_trace_save_tsk(p, bt, SCX_EXIT_BT_LEN, 1);
 | 
						bt_len = stack_trace_save_tsk(p, bt, SCX_EXIT_BT_LEN, 1);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
	if (bt_len) {
 | 
						if (bt_len) {
 | 
				
			||||||
		dump_newline(s);
 | 
							dump_newline(s);
 | 
				
			||||||
		dump_stack_trace(s, "    ", bt, bt_len);
 | 
							dump_stack_trace(s, "    ", bt, bt_len);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue