sched: Fix build warning without CONFIG_SYSCTL
authorYueHaibing <yuehaibing@huawei.com>
Wed, 27 Apr 2022 13:10:02 +0000 (21:10 +0800)
committerLuis Chamberlain <mcgrof@kernel.org>
Mon, 9 May 2022 23:54:57 +0000 (16:54 -0700)
IF CONFIG_SYSCTL is n, build warn:

kernel/sched/core.c:1782:12: warning: â€˜sysctl_sched_uclamp_handler’ defined but not used [-Wunused-function]
 static int sysctl_sched_uclamp_handler(struct ctl_table *table, int write,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~

sysctl_sched_uclamp_handler() is used while CONFIG_SYSCTL enabled,
wrap all related code with CONFIG_SYSCTL to fix this.

Fixes: 3267e0156c33 ("sched: Move uclamp_util sysctls to core.c")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
kernel/sched/core.c

index ef31751..b8d2ff0 100644 (file)
@@ -1306,10 +1306,10 @@ static void set_load_weight(struct task_struct *p, bool update_load)
 static DEFINE_MUTEX(uclamp_mutex);
 
 /* Max allowed minimum utilization */
-static unsigned int sysctl_sched_uclamp_util_min = SCHED_CAPACITY_SCALE;
+static unsigned int __maybe_unused sysctl_sched_uclamp_util_min = SCHED_CAPACITY_SCALE;
 
 /* Max allowed maximum utilization */
-static unsigned int sysctl_sched_uclamp_util_max = SCHED_CAPACITY_SCALE;
+static unsigned int __maybe_unused sysctl_sched_uclamp_util_max = SCHED_CAPACITY_SCALE;
 
 /*
  * By default RT tasks run at the maximum performance point/capacity of the
@@ -1456,33 +1456,6 @@ static void uclamp_update_util_min_rt_default(struct task_struct *p)
        task_rq_unlock(rq, p, &rf);
 }
 
-static void uclamp_sync_util_min_rt_default(void)
-{
-       struct task_struct *g, *p;
-
-       /*
-        * copy_process()                       sysctl_uclamp
-        *                                        uclamp_min_rt = X;
-        *   write_lock(&tasklist_lock)           read_lock(&tasklist_lock)
-        *   // link thread                       smp_mb__after_spinlock()
-        *   write_unlock(&tasklist_lock)         read_unlock(&tasklist_lock);
-        *   sched_post_fork()                    for_each_process_thread()
-        *     __uclamp_sync_rt()                   __uclamp_sync_rt()
-        *
-        * Ensures that either sched_post_fork() will observe the new
-        * uclamp_min_rt or for_each_process_thread() will observe the new
-        * task.
-        */
-       read_lock(&tasklist_lock);
-       smp_mb__after_spinlock();
-       read_unlock(&tasklist_lock);
-
-       rcu_read_lock();
-       for_each_process_thread(g, p)
-               uclamp_update_util_min_rt_default(p);
-       rcu_read_unlock();
-}
-
 static inline struct uclamp_se
 uclamp_tg_restrict(struct task_struct *p, enum uclamp_id clamp_id)
 {
@@ -1762,6 +1735,11 @@ uclamp_update_active_tasks(struct cgroup_subsys_state *css)
 }
 
 static void cpu_util_update_eff(struct cgroup_subsys_state *css);
+#endif
+
+#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_UCLAMP_TASK
+#ifdef CONFIG_UCLAMP_TASK_GROUP
 static void uclamp_update_root_tg(void)
 {
        struct task_group *tg = &root_task_group;
@@ -1779,6 +1757,33 @@ static void uclamp_update_root_tg(void)
 static void uclamp_update_root_tg(void) { }
 #endif
 
+static void uclamp_sync_util_min_rt_default(void)
+{
+       struct task_struct *g, *p;
+
+       /*
+        * copy_process()                       sysctl_uclamp
+        *                                        uclamp_min_rt = X;
+        *   write_lock(&tasklist_lock)           read_lock(&tasklist_lock)
+        *   // link thread                       smp_mb__after_spinlock()
+        *   write_unlock(&tasklist_lock)         read_unlock(&tasklist_lock);
+        *   sched_post_fork()                    for_each_process_thread()
+        *     __uclamp_sync_rt()                   __uclamp_sync_rt()
+        *
+        * Ensures that either sched_post_fork() will observe the new
+        * uclamp_min_rt or for_each_process_thread() will observe the new
+        * task.
+        */
+       read_lock(&tasklist_lock);
+       smp_mb__after_spinlock();
+       read_unlock(&tasklist_lock);
+
+       rcu_read_lock();
+       for_each_process_thread(g, p)
+               uclamp_update_util_min_rt_default(p);
+       rcu_read_unlock();
+}
+
 static int sysctl_sched_uclamp_handler(struct ctl_table *table, int write,
                                void *buffer, size_t *lenp, loff_t *ppos)
 {
@@ -1843,6 +1848,8 @@ done:
 
        return result;
 }
+#endif
+#endif
 
 static int uclamp_validate(struct task_struct *p,
                           const struct sched_attr *attr)