Files
Satya Durga Srinivasu Prabhala f1214c569a sched: Provide stub definitions for WALT
When WALT and CFI are enabled, weak symbols which points to NULL
are causing issues like global structures becoming NULL due to
compiler/linker treatment of these symbols.

Provide proper stub definition for all such weak symbols to avoid
issues until compiler/linker gets fixed.

Change-Id: I3dce047393521681e663a0ad254b07e9769e0265
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2020-02-13 16:42:34 -08:00

78 lines
2.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_SCHED_STAT_H
#define _LINUX_SCHED_STAT_H
#include <linux/percpu.h>
/*
* Various counters maintained by the scheduler and fork(),
* exposed via /proc, sys.c or used by drivers via these APIs.
*
* ( Note that all these values are acquired without locking,
* so they can only be relied on in narrow circumstances. )
*/
extern unsigned long total_forks;
extern int nr_threads;
DECLARE_PER_CPU(unsigned long, process_counts);
extern int nr_processes(void);
extern unsigned long nr_running(void);
extern bool single_task_running(void);
extern unsigned long nr_iowait(void);
extern unsigned long nr_iowait_cpu(int cpu);
#ifdef CONFIG_SCHED_WALT
extern void sched_update_nr_prod(int cpu, long delta, bool inc);
extern unsigned int sched_get_cpu_util(int cpu);
extern void sched_update_hyst_times(void);
extern u64 sched_lpm_disallowed_time(int cpu);
extern int sched_wake_up_idle_show(struct seq_file *m, void *v);
extern ssize_t sched_wake_up_idle_write(struct file *file,
const char __user *buf, size_t count, loff_t *offset);
extern int sched_wake_up_idle_open(struct inode *inode,
struct file *filp);
extern int sched_init_task_load_show(struct seq_file *m, void *v);
extern ssize_t
sched_init_task_load_write(struct file *file, const char __user *buf,
size_t count, loff_t *offset);
extern int
sched_init_task_load_open(struct inode *inode, struct file *filp);
extern int sched_group_id_show(struct seq_file *m, void *v);
extern ssize_t
sched_group_id_write(struct file *file, const char __user *buf,
size_t count, loff_t *offset);
extern int sched_group_id_open(struct inode *inode, struct file *filp);
#else
static inline void sched_update_nr_prod(int cpu, long delta, bool inc) {}
static inline unsigned int sched_get_cpu_util(int cpu)
{
return 0;
}
static inline void sched_update_hyst_times(void) {}
static inline u64 sched_lpm_disallowed_time(int cpu)
{
return 0;
}
#endif
static inline int sched_info_on(void)
{
#ifdef CONFIG_SCHEDSTATS
return 1;
#elif defined(CONFIG_TASK_DELAY_ACCT)
extern int delayacct_on;
return delayacct_on;
#else
return 0;
#endif
}
#ifdef CONFIG_SCHEDSTATS
void force_schedstat_enabled(void);
#endif
#endif /* _LINUX_SCHED_STAT_H */