lkml.org 
[lkml]   [2017]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/53] sched/headers, delayacct: Move the 'struct task_delay_info' definition from <linux/sched.h> to <linux/delayacct.h>
    Date
    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>.

    Cc: 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>
    ---
    include/linux/delayacct.h | 36 ++++++++++++++++++++++++++++++++++++
    include/linux/sched.h | 39 ++++-----------------------------------
    2 files changed, 40 insertions(+), 35 deletions(-)

    diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h
    index 00e60f79a9cc..6b769cbd1000 100644
    --- a/include/linux/delayacct.h
    +++ b/include/linux/delayacct.h
    @@ -30,7 +30,43 @@
    #define DELAYACCT_PF_BLKIO 0x00000002 /* I am waiting on IO */

    #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 struct kmem_cache *delayacct_cache;
    extern void delayacct_init(void);
    diff --git a/include/linux/sched.h b/include/linux/sched.h
    index 0399e1b29dd2..15e339af7dec 100644
    --- a/include/linux/sched.h
    +++ b/include/linux/sched.h
    @@ -897,39 +897,7 @@ struct sched_info {
    };
    #endif /* CONFIG_SCHED_INFO */

    -#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 /* CONFIG_TASK_DELAY_ACCT */
    +struct task_delay_info;

    static inline int sched_info_on(void)
    {
    @@ -1612,9 +1580,10 @@ struct task_struct {

    struct page_frag task_frag;

    -#ifdef CONFIG_TASK_DELAY_ACCT
    - struct task_delay_info *delays;
    +#ifdef CONFIG_TASK_DELAY_ACCT
    + struct task_delay_info *delays;
    #endif
    +
    #ifdef CONFIG_FAULT_INJECTION
    int make_it_fail;
    #endif
    --
    2.7.4
    \
     
     \ /
      Last update: 2017-02-08 19:57    [W:2.250 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site