Fix warnings in psi
Subsystems (2)
Suren Baghdasaryan
maintainercover Fix warnings in psi
The patchset fixes warnings in the psi module visible only in the below configurations:CONFIG_PSI=y && CONFIG_CGROUPS=nCONFIG_PSI=y && CONFIG_PROC_FS=n
Reproduced using clang version 14.0.0.
The patches are based on sched/urgent branch:git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/urgent
Suren Baghdasaryan (2):
psi: Fix "no previous prototype" warnings when CONFIG_CGROUPS=n
psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
include/linux/psi.h | 11 +++---- kernel/sched/psi.c | 79 +++++++++++++++++++++++---------------------- 2 files changed, 46 insertions(+), 44 deletions(-)
Signature · 1 line
2.34.1.703.g22d0c6ccf7-goog
Suren Baghdasaryan
maintainerPATCH 1/2 psi: Fix "no previous prototype" warnings when CONFIG_CGROUPS=n
When CONFIG_CGROUPS is disabled psi code generates the following warnings:
kernel/sched/psi.c:1112:21: warning: no previous prototype for 'psi_trigger_create' [-Wmissing-prototypes]
1112 | struct psi_trigger *psi_trigger_create(struct psi_group *group,
| ^~~~~~~~~~~~~~~~~~kernel/sched/psi.c:1182:6: warning: no previous prototype for 'psi_trigger_destroy' [-Wmissing-prototypes]
1182 | void psi_trigger_destroy(struct psi_trigger *t)
| ^~~~~~~~~~~~~~~~~~~kernel/sched/psi.c:1249:10: warning: no previous prototype for 'psi_trigger_poll' [-Wmissing-prototypes]
1249 | __poll_t psi_trigger_poll(void **trigger_ptr,
| ^~~~~~~~~~~~~~~~Change declarations of these functions in the header to provide the prototypes even when they are unused.
--- include/linux/psi.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
include/linux/psi.h +5 -6
@@ -25,18 +25,17 @@ void psi_memstall_enter(unsigned long *flags);void psi_memstall_leave (unsigned long *flags);int psi_show (struct seq_file *s,struct psi_group *group,enum psi_res res); - -#ifdef CONFIG_CGROUPS -int psi_cgroup_alloc (struct cgroup *cgrp); -void psi_cgroup_free (struct cgroup *cgrp); -void cgroup_move_task (struct task_struct *p,struct css_set *to); -struct psi_trigger *psi_trigger_create (struct psi_group *group,char *buf,size_t nbytes,enum psi_res res);void psi_trigger_destroy (struct psi_trigger *t);__poll_t psi_trigger_poll (void **trigger_ptr,struct file *file,poll_table *wait); + +#ifdef CONFIG_CGROUPS +int psi_cgroup_alloc (struct cgroup *cgrp); +void psi_cgroup_free (struct cgroup *cgrp); +void cgroup_move_task (struct task_struct *p,struct css_set *to);#endif #else /* CONFIG_PSI */
Signature · 1 line
2.34.1.703.g22d0c6ccf7-goog
Re: [PATCH 1/2] psi: Fix "no previous prototype" warnings when CONFIG_CGROUPS=n
Quoted 12 lines · Suren Baghdasaryan
When
CONFIG_CGROUPSis disabled psi code generates the following warnings:
kernel/sched/psi.c:1112:21: warning: no previous prototype for 'psi_trigger_create' [-Wmissing-prototypes]
1112 | structpsi_trigger*psi_trigger_create(structpsi_group*group,
| ^~~~~~~~~~~~~~~~~~kernel/sched/psi.c:1182:6: warning: no previous prototype for 'psi_trigger_destroy' [-Wmissing-prototypes]
1182 | voidpsi_trigger_destroy(struct psi_trigger *t)
| ^~~~~~~~~~~~~~~~~~~kernel/sched/psi.c:1249:10: warning: no previous prototype for 'psi_trigger_poll' [-Wmissing-prototypes]1249 | __poll_t psi_trigger_poll(void **trigger_ptr, | ^~~~~~~~~~~~~~~~
Quoted 6 lines
Change declarations of these functions in the header to provide the prototypes even when they are unused.
Fixes 0e94682b73bf ("psi: introduce psi monitor")Reported-by kernel test robot <[email protected]>Signed-off-by Suren Baghdasaryan <[email protected]>
For a second I was confused by the "unused" in the changelog. The functions themselves are used unconditionally: by the internal /proc/pressure/* implementation. But I suppose that usage wouldn't need the prototypes - hence unused prototypes.
[tip: sched/core] psi: Fix "no previous prototype" warnings when CONFIG_CGROUPS=n
In reply to Suren BaghdasaryanThe following commit has been merged into the sched/core branch of tip:
The following commit has been merged into the sched/core branch of tip:
Commit-ID: ec2444530612a886b406e2830d7f314d1a07d4bb Gitweb: https://git.kernel.org/tip/ec2444530612a886b406e2830d7f314d1a07d4bb Author: Suren Baghdasaryan <[email protected]> AuthorDate: Wed, 19 Jan 2022 14:39:39 -08:00 Committer: Peter Zijlstra <[email protected]> CommitterDate: Thu, 27 Jan 2022 12:57:19 +01:00
psi: Fix "no previous prototype" warnings when CONFIG_CGROUPS=n
When CONFIG_CGROUPS is disabled psi code generates the following warnings:
kernel/sched/psi.c:1112:21: warning: no previous prototype for 'psi_trigger_create' [-Wmissing-prototypes]
1112 | struct psi_trigger *psi_trigger_create(struct psi_group *group,
| ^~~~~~~~~~~~~~~~~~kernel/sched/psi.c:1182:6: warning: no previous prototype for 'psi_trigger_destroy' [-Wmissing-prototypes]
1182 | void psi_trigger_destroy(struct psi_trigger *t)
| ^~~~~~~~~~~~~~~~~~~kernel/sched/psi.c:1249:10: warning: no previous prototype for 'psi_trigger_poll' [-Wmissing-prototypes]
1249 | __poll_t psi_trigger_poll(void **trigger_ptr,
| ^~~~~~~~~~~~~~~~Change declarations of these functions in the header to provide the prototypes even when they are unused.
--- include/linux/psi.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
include/linux/psi.h +5 -6
@@ -25,18 +25,17 @@ void psi_memstall_enter(unsigned long *flags);void psi_memstall_leave (unsigned long *flags);int psi_show (struct seq_file *s,struct psi_group *group,enum psi_res res); - -#ifdef CONFIG_CGROUPS -int psi_cgroup_alloc (struct cgroup *cgrp); -void psi_cgroup_free (struct cgroup *cgrp); -void cgroup_move_task (struct task_struct *p,struct css_set *to); -struct psi_trigger *psi_trigger_create (struct psi_group *group,char *buf,size_t nbytes,enum psi_res res);void psi_trigger_replace (void **trigger_ptr,struct psi_trigger *t);__poll_t psi_trigger_poll (void **trigger_ptr,struct file *file,poll_table *wait); + +#ifdef CONFIG_CGROUPS +int psi_cgroup_alloc (struct cgroup *cgrp); +void psi_cgroup_free (struct cgroup *cgrp); +void cgroup_move_task (struct task_struct *p,struct css_set *to);#endif #else /* CONFIG_PSI */
Suren Baghdasaryan
maintainerPATCH 2/2 psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
In reply to Suren BaghdasaryanWhen CONFIG_PROC_FS is disabled psi code generates the following warnings:
kernel/sched/psi.c:1364:30: warning: 'psi_cpu_proc_ops' defined but not used [-Wunused-const-variable=]
1364 | static const struct proc_ops psi_cpu_proc_ops = {
| ^~~~~~~~~~~~~~~~
kernel/sched/psi.c:1355:30: warning: 'psi_memory_proc_ops' defined but not used [-Wunused-const-variable=]
1355 | static const struct proc_ops psi_memory_proc_ops = {
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1346:30: warning: 'psi_io_proc_ops' defined but not used [-Wunused-const-variable=]
1346 | static const struct proc_ops psi_io_proc_ops = {
| ^~~~~~~~~~~~~~~Make definitions of these structures and related functions conditional on CONFIG_PROC_FS config.
--- kernel/sched/psi.c | 79 ++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 38 deletions(-)
kernel/sched/psi.c +41 -38
@@ -1082,44 +1082,6 @@ int psi_show(struct seq_file *m, struct psi_group *group, enum psi_res res)return 0 ; } -static int psi_io_show (struct seq_file *m,void *v) -{ -return psi_show (m, &psi_system,PSI_IO ); -} - -static int psi_memory_show (struct seq_file *m,void *v) -{ -return psi_show (m, &psi_system,PSI_MEM ); -} - -static int psi_cpu_show (struct seq_file *m,void *v) -{ -return psi_show (m, &psi_system,PSI_CPU ); -} - -static int psi_open (struct file *file,int (*psi_show)(struct seq_file *,void *)) -{ -if (file->f_mode &FMODE_WRITE && !capable (CAP_SYS_RESOURCE )) -return -EPERM ; - -return single_open (file, psi_show,NULL ); -} - -static int psi_io_open (struct inode *inode,struct file *file) -{ -return psi_open (file, psi_io_show); -} - -static int psi_memory_open (struct inode *inode,struct file *file) -{ -return psi_open (file, psi_memory_show); -} - -static int psi_cpu_open (struct inode *inode,struct file *file) -{ -return psi_open (file, psi_cpu_show); -} -struct psi_trigger *psi_trigger_create (struct psi_group *group,char *buf,size_t nbytes,enum psi_res res) {
@@ -1278,6 +1240,45 @@ __poll_t psi_trigger_poll(void **trigger_ptr,return ret; } +#ifdef CONFIG_PROC_FS +static int psi_io_show (struct seq_file *m,void *v) +{ +return psi_show (m, &psi_system,PSI_IO ); +} + +static int psi_memory_show (struct seq_file *m,void *v) +{ +return psi_show (m, &psi_system,PSI_MEM ); +} + +static int psi_cpu_show (struct seq_file *m,void *v) +{ +return psi_show (m, &psi_system,PSI_CPU ); +} + +static int psi_open (struct file *file,int (*psi_show)(struct seq_file *,void *)) +{ +if (file->f_mode &FMODE_WRITE && !capable (CAP_SYS_RESOURCE )) +return -EPERM ; + +return single_open (file, psi_show,NULL ); +} + +static int psi_io_open (struct inode *inode,struct file *file) +{ +return psi_open (file, psi_io_show); +} + +static int psi_memory_open (struct inode *inode,struct file *file) +{ +return psi_open (file, psi_memory_show); +} + +static int psi_cpu_open (struct inode *inode,struct file *file) +{ +return psi_open (file, psi_cpu_show); +} +static ssize_t psi_write (struct file *file,const char __user *user_buf,size_t nbytes,enum psi_res res) {
@@ -1392,3 +1393,5 @@ static int __init psi_proc_init(void) return 0; }module_init (psi_proc_init); + +#endif /* CONFIG_PROC_FS */
Signature · 1 line
2.34.1.703.g22d0c6ccf7-goog
Re: [PATCH 2/2] psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
Quoted 12 lines · Suren Baghdasaryan
When
CONFIG_PROC_FSis disabled psi code generates the following warnings:
kernel/sched/psi.c:1364:30: warning: 'psi_cpu_proc_ops' defined but not used [-Wunused-const-variable=]1364 | static const struct proc_ops psi_cpu_proc_ops = { | ^~~~~~~~~~~~~~~~ kernel/sched/psi.c:1355:30: warning: 'psi_memory_proc_ops' defined but not used [-Wunused-const-variable=] 1355 | static const struct proc_ops psi_memory_proc_ops = { | ^~~~~~~~~~~~~~~~~~~ kernel/sched/psi.c:1346:30: warning: 'psi_io_proc_ops' defined but not used [-Wunused-const-variable=] 1346 | static const struct proc_ops psi_io_proc_ops = { | ^~~~~~~~~~~~~~~
Quoted 6 lines
Make definitions of these structures and related functions conditional on
CONFIG_PROC_FSconfig.Fixes 0e94682b73bf ("psi: introduce psi monitor")Reported-by kernel test robot <[email protected]>Signed-off-by Suren Baghdasaryan <[email protected]>
[tip: sched/core] psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
In reply to Suren BaghdasaryanThe following commit has been merged into the sched/core branch of tip:
The following commit has been merged into the sched/core branch of tip:
Commit-ID: 5102bb1c9f82857a3164af9d7ab7ad628cb783ed Gitweb: https://git.kernel.org/tip/5102bb1c9f82857a3164af9d7ab7ad628cb783ed Author: Suren Baghdasaryan <[email protected]> AuthorDate: Wed, 19 Jan 2022 14:39:40 -08:00 Committer: Peter Zijlstra <[email protected]> CommitterDate: Thu, 27 Jan 2022 12:57:19 +01:00
psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
When CONFIG_PROC_FS is disabled psi code generates the following warnings:
kernel/sched/psi.c:1364:30: warning: 'psi_cpu_proc_ops' defined but not used [-Wunused-const-variable=]
1364 | static const struct proc_ops psi_cpu_proc_ops = {
| ^~~~~~~~~~~~~~~~
kernel/sched/psi.c:1355:30: warning: 'psi_memory_proc_ops' defined but not used [-Wunused-const-variable=]
1355 | static const struct proc_ops psi_memory_proc_ops = {
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1346:30: warning: 'psi_io_proc_ops' defined but not used [-Wunused-const-variable=]
1346 | static const struct proc_ops psi_io_proc_ops = {
| ^~~~~~~~~~~~~~~Make definitions of these structures and related functions conditional on CONFIG_PROC_FS config.
--- kernel/sched/psi.c | 79 +++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 38 deletions(-)
kernel/sched/psi.c +41 -38
@@ -1082,44 +1082,6 @@ int psi_show(struct seq_file *m, struct psi_group *group, enum psi_res res)return 0 ; } -static int psi_io_show (struct seq_file *m,void *v) -{ -return psi_show (m, &psi_system,PSI_IO ); -} - -static int psi_memory_show (struct seq_file *m,void *v) -{ -return psi_show (m, &psi_system,PSI_MEM ); -} - -static int psi_cpu_show (struct seq_file *m,void *v) -{ -return psi_show (m, &psi_system,PSI_CPU ); -} - -static int psi_open (struct file *file,int (*psi_show)(struct seq_file *,void *)) -{ -if (file->f_mode &FMODE_WRITE && !capable (CAP_SYS_RESOURCE )) -return -EPERM ; - -return single_open (file, psi_show,NULL ); -} - -static int psi_io_open (struct inode *inode,struct file *file) -{ -return psi_open (file, psi_io_show); -} - -static int psi_memory_open (struct inode *inode,struct file *file) -{ -return psi_open (file, psi_memory_show); -} - -static int psi_cpu_open (struct inode *inode,struct file *file) -{ -return psi_open (file, psi_cpu_show); -} -struct psi_trigger *psi_trigger_create (struct psi_group *group,char *buf,size_t nbytes,enum psi_res res) {
@@ -1296,6 +1258,45 @@ __poll_t psi_trigger_poll(void **trigger_ptr,return ret; } +#ifdef CONFIG_PROC_FS +static int psi_io_show (struct seq_file *m,void *v) +{ +return psi_show (m, &psi_system,PSI_IO ); +} + +static int psi_memory_show (struct seq_file *m,void *v) +{ +return psi_show (m, &psi_system,PSI_MEM ); +} + +static int psi_cpu_show (struct seq_file *m,void *v) +{ +return psi_show (m, &psi_system,PSI_CPU ); +} + +static int psi_open (struct file *file,int (*psi_show)(struct seq_file *,void *)) +{ +if (file->f_mode &FMODE_WRITE && !capable (CAP_SYS_RESOURCE )) +return -EPERM ; + +return single_open (file, psi_show,NULL ); +} + +static int psi_io_open (struct inode *inode,struct file *file) +{ +return psi_open (file, psi_io_show); +} + +static int psi_memory_open (struct inode *inode,struct file *file) +{ +return psi_open (file, psi_memory_show); +} + +static int psi_cpu_open (struct inode *inode,struct file *file) +{ +return psi_open (file, psi_cpu_show); +} +static ssize_t psi_write (struct file *file,const char __user *user_buf,size_t nbytes,enum psi_res res) {
@@ -1400,3 +1401,5 @@ static int __init psi_proc_init(void) return 0; }module_init (psi_proc_init); + +#endif /* CONFIG_PROC_FS */