sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h>
The 'struct task_delay_info' definition does not have to be in sched.h, because task_struct only has a pointer to it. So move it to <linux/delayacct.h> to reduce the size of <linux/sched.h>. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
5689810360
commit
47913d4ebd
|
@ -30,7 +30,43 @@
|
||||||
#define DELAYACCT_PF_BLKIO 0x00000002 /* I am waiting on IO */
|
#define DELAYACCT_PF_BLKIO 0x00000002 /* I am waiting on IO */
|
||||||
|
|
||||||
#ifdef CONFIG_TASK_DELAY_ACCT
|
#ifdef CONFIG_TASK_DELAY_ACCT
|
||||||
|
struct task_delay_info {
|
||||||
|
spinlock_t lock;
|
||||||
|
unsigned int flags; /* Private per-task flags */
|
||||||
|
|
||||||
|
/* For each stat XXX, add following, aligned appropriately
|
||||||
|
*
|
||||||
|
* struct timespec XXX_start, XXX_end;
|
||||||
|
* u64 XXX_delay;
|
||||||
|
* u32 XXX_count;
|
||||||
|
*
|
||||||
|
* Atomicity of updates to XXX_delay, XXX_count protected by
|
||||||
|
* single lock above (split into XXX_lock if contention is an issue).
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* XXX_count is incremented on every XXX operation, the delay
|
||||||
|
* associated with the operation is added to XXX_delay.
|
||||||
|
* XXX_delay contains the accumulated delay time in nanoseconds.
|
||||||
|
*/
|
||||||
|
u64 blkio_start; /* Shared by blkio, swapin */
|
||||||
|
u64 blkio_delay; /* wait for sync block io completion */
|
||||||
|
u64 swapin_delay; /* wait for swapin block io completion */
|
||||||
|
u32 blkio_count; /* total count of the number of sync block */
|
||||||
|
/* io operations performed */
|
||||||
|
u32 swapin_count; /* total count of the number of swapin block */
|
||||||
|
/* io operations performed */
|
||||||
|
|
||||||
|
u64 freepages_start;
|
||||||
|
u64 freepages_delay; /* wait for memory reclaim */
|
||||||
|
u32 freepages_count; /* total count of memory reclaim */
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <linux/sched.h>
|
||||||
|
#include <linux/slab.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_TASK_DELAY_ACCT
|
||||||
extern int delayacct_on; /* Delay accounting turned on/off */
|
extern int delayacct_on; /* Delay accounting turned on/off */
|
||||||
extern struct kmem_cache *delayacct_cache;
|
extern struct kmem_cache *delayacct_cache;
|
||||||
extern void delayacct_init(void);
|
extern void delayacct_init(void);
|
||||||
|
|
|
@ -893,39 +893,7 @@ struct sched_info {
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_SCHED_INFO */
|
#endif /* CONFIG_SCHED_INFO */
|
||||||
|
|
||||||
#ifdef CONFIG_TASK_DELAY_ACCT
|
struct task_delay_info;
|
||||||
struct task_delay_info {
|
|
||||||
spinlock_t lock;
|
|
||||||
unsigned int flags; /* Private per-task flags */
|
|
||||||
|
|
||||||
/* For each stat XXX, add following, aligned appropriately
|
|
||||||
*
|
|
||||||
* struct timespec XXX_start, XXX_end;
|
|
||||||
* u64 XXX_delay;
|
|
||||||
* u32 XXX_count;
|
|
||||||
*
|
|
||||||
* Atomicity of updates to XXX_delay, XXX_count protected by
|
|
||||||
* single lock above (split into XXX_lock if contention is an issue).
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX_count is incremented on every XXX operation, the delay
|
|
||||||
* associated with the operation is added to XXX_delay.
|
|
||||||
* XXX_delay contains the accumulated delay time in nanoseconds.
|
|
||||||
*/
|
|
||||||
u64 blkio_start; /* Shared by blkio, swapin */
|
|
||||||
u64 blkio_delay; /* wait for sync block io completion */
|
|
||||||
u64 swapin_delay; /* wait for swapin block io completion */
|
|
||||||
u32 blkio_count; /* total count of the number of sync block */
|
|
||||||
/* io operations performed */
|
|
||||||
u32 swapin_count; /* total count of the number of swapin block */
|
|
||||||
/* io operations performed */
|
|
||||||
|
|
||||||
u64 freepages_start;
|
|
||||||
u64 freepages_delay; /* wait for memory reclaim */
|
|
||||||
u32 freepages_count; /* total count of memory reclaim */
|
|
||||||
};
|
|
||||||
#endif /* CONFIG_TASK_DELAY_ACCT */
|
|
||||||
|
|
||||||
static inline int sched_info_on(void)
|
static inline int sched_info_on(void)
|
||||||
{
|
{
|
||||||
|
@ -1612,9 +1580,10 @@ struct task_struct {
|
||||||
|
|
||||||
struct page_frag task_frag;
|
struct page_frag task_frag;
|
||||||
|
|
||||||
#ifdef CONFIG_TASK_DELAY_ACCT
|
#ifdef CONFIG_TASK_DELAY_ACCT
|
||||||
struct task_delay_info *delays;
|
struct task_delay_info *delays;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_FAULT_INJECTION
|
#ifdef CONFIG_FAULT_INJECTION
|
||||||
int make_it_fail;
|
int make_it_fail;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue