mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[PATCH] per-task-delay-accounting: cpu delay collection via schedstats
Make the task-related schedstats functions callable by delay accounting even if schedstats collection isn't turned on. This removes the dependency of delay accounting on schedstats. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Signed-off-by: Shailabh Nagar <nagar@watson.ibm.com> Signed-off-by: Balbir Singh <balbir@in.ibm.com> Cc: Jes Sorensen <jes@sgi.com> Cc: Peter Chubb <peterc@gelato.unsw.edu.au> Cc: Erich Focht <efocht@ess.nec.de> Cc: Levent Serinol <lserinol@gmail.com> Cc: Jay Lan <jlan@engr.sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
0ff922452d
commit
52f17b6c2b
2 changed files with 66 additions and 25 deletions
|
@ -537,7 +537,7 @@ extern struct user_struct root_user;
|
|||
struct backing_dev_info;
|
||||
struct reclaim_state;
|
||||
|
||||
#ifdef CONFIG_SCHEDSTATS
|
||||
#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
|
||||
struct sched_info {
|
||||
/* cumulative counters */
|
||||
unsigned long cpu_time, /* time spent on the cpu */
|
||||
|
@ -548,9 +548,11 @@ struct sched_info {
|
|||
unsigned long last_arrival, /* when we last ran on a cpu */
|
||||
last_queued; /* when we were last queued to run */
|
||||
};
|
||||
#endif /* defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) */
|
||||
|
||||
#ifdef CONFIG_SCHEDSTATS
|
||||
extern struct file_operations proc_schedstat_operations;
|
||||
#endif
|
||||
#endif /* CONFIG_SCHEDSTATS */
|
||||
|
||||
#ifdef CONFIG_TASK_DELAY_ACCT
|
||||
struct task_delay_info {
|
||||
|
@ -580,7 +582,19 @@ struct task_delay_info {
|
|||
u32 swapin_count; /* total count of the number of swapin block */
|
||||
/* io operations performed */
|
||||
};
|
||||
#endif /* CONFIG_TASK_DELAY_ACCT */
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
enum idle_type
|
||||
{
|
||||
|
@ -777,7 +791,7 @@ struct task_struct {
|
|||
cpumask_t cpus_allowed;
|
||||
unsigned int time_slice, first_time_slice;
|
||||
|
||||
#ifdef CONFIG_SCHEDSTATS
|
||||
#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
|
||||
struct sched_info sched_info;
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue