mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
sched_ext: Make kernel/sched/ext/ sources self-contained for clangd
The sources under kernel/sched/ext/ build as a single translation unit: build_policy.c includes the source files and headers. An LSP/clangd editor parses each as a standalone unit, sees no types, and reports a flood of errors. Give each header its dependencies and include guard, and have each source include the headers it uses. ext.c, arena.c and the ext headers now parse clean standalone. idle.c and cid.c still reference a few macros and helpers defined in ext.c. The next patch moves those to shared headers. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Andrea Righi <arighi@nvidia.com>
This commit is contained in:
@@ -15,6 +15,10 @@
|
||||
* Copyright (c) 2026 Meta Platforms, Inc. and affiliates.
|
||||
* Copyright (c) 2026 Tejun Heo <tj@kernel.org>
|
||||
*/
|
||||
#include <linux/genalloc.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include "arena.h"
|
||||
|
||||
enum scx_arena_consts {
|
||||
SCX_ARENA_MIN_ORDER = 3, /* 8-byte minimum sub-allocation */
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#ifndef _KERNEL_SCHED_EXT_ARENA_H
|
||||
#define _KERNEL_SCHED_EXT_ARENA_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct scx_sched;
|
||||
|
||||
s32 scx_arena_pool_init(struct scx_sched *sch);
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
*/
|
||||
#include <linux/cacheinfo.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include "cid.h"
|
||||
|
||||
/*
|
||||
* cid tables.
|
||||
*
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
#ifndef _KERNEL_SCHED_EXT_CID_H
|
||||
#define _KERNEL_SCHED_EXT_CID_H
|
||||
|
||||
#include "internal.h"
|
||||
|
||||
struct scx_sched;
|
||||
|
||||
/*
|
||||
|
||||
@@ -6,6 +6,19 @@
|
||||
* Copyright (c) 2022 Tejun Heo <tj@kernel.org>
|
||||
* Copyright (c) 2022 David Vernet <dvernet@meta.com>
|
||||
*/
|
||||
#include <linux/bitmap.h>
|
||||
#include <linux/btf_ids.h>
|
||||
#include <linux/rhashtable.h>
|
||||
#include <linux/sched/clock.h>
|
||||
#include <linux/sched/isolation.h>
|
||||
#include <linux/suspend.h>
|
||||
#include <linux/sysrq.h>
|
||||
|
||||
#include "../pelt.h"
|
||||
#include "internal.h"
|
||||
#include "cid.h"
|
||||
#include "arena.h"
|
||||
#include "idle.h"
|
||||
|
||||
static DEFINE_RAW_SPINLOCK(scx_sched_lock);
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
* Copyright (c) 2022 David Vernet <dvernet@meta.com>
|
||||
* Copyright (c) 2024 Andrea Righi <arighi@nvidia.com>
|
||||
*/
|
||||
#include "internal.h"
|
||||
#include "cid.h"
|
||||
#include "idle.h"
|
||||
|
||||
/* Enable/disable built-in idle CPU selection policy */
|
||||
static DEFINE_STATIC_KEY_FALSE(scx_builtin_idle_enabled);
|
||||
|
||||
@@ -10,7 +10,11 @@
|
||||
#ifndef _KERNEL_SCHED_EXT_IDLE_H
|
||||
#define _KERNEL_SCHED_EXT_IDLE_H
|
||||
|
||||
#include <linux/btf_ids.h>
|
||||
|
||||
struct cpumask;
|
||||
struct sched_ext_ops;
|
||||
struct task_struct;
|
||||
|
||||
extern struct btf_id_set8 scx_kfunc_ids_idle;
|
||||
extern struct btf_id_set8 scx_kfunc_ids_select_cpu;
|
||||
|
||||
@@ -5,6 +5,12 @@
|
||||
* Copyright (c) 2025 Meta Platforms, Inc. and affiliates.
|
||||
* Copyright (c) 2025 Tejun Heo <tj@kernel.org>
|
||||
*/
|
||||
#ifndef _KERNEL_SCHED_EXT_INTERNAL_H
|
||||
#define _KERNEL_SCHED_EXT_INTERNAL_H
|
||||
|
||||
#include "../sched.h"
|
||||
#include "types.h"
|
||||
|
||||
#define SCX_OP_IDX(op) (offsetof(struct sched_ext_ops, op) / sizeof(void (*)(void)))
|
||||
#define SCX_MOFF_IDX(moff) ((moff) / sizeof(void (*)(void)))
|
||||
|
||||
@@ -1651,3 +1657,5 @@ static inline struct scx_sched *scx_prog_sched(const struct bpf_prog_aux *aux)
|
||||
return rcu_dereference_all(scx_root);
|
||||
}
|
||||
#endif /* CONFIG_EXT_SUB_SCHED */
|
||||
|
||||
#endif /* _KERNEL_SCHED_EXT_INTERNAL_H */
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
#ifndef _KERNEL_SCHED_EXT_TYPES_H
|
||||
#define _KERNEL_SCHED_EXT_TYPES_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/overflow.h>
|
||||
#include <linux/time64.h>
|
||||
#include <linux/sched/topology.h>
|
||||
|
||||
enum scx_consts {
|
||||
SCX_DSP_DFL_MAX_BATCH = 32,
|
||||
SCX_DSP_MAX_LOOPS = 32,
|
||||
|
||||
Reference in New Issue
Block a user