Patch "sched/cputime: Move the vtime task fields to their own struct" has been added to the 4.12-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
sched/cputime: Move the vtime task fields to their own struct
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
sched-cputime-move-the-vtime-task-fields-to-their-own-struct.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
bac5b6b6b11560f323e71d0ebac4061cfe5f56c0Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <[email protected]>
Date: Thu, 29 Jun 2017 19:15:10 +0200
Subject: sched/cputime: Move the vtime task fields to their own struct
From: Frederic Weisbecker <[email protected]>
commit bac5b6b6b11560f323e71d0ebac4061cfe5f56c0 upstream.
We are about to add vtime accumulation fields to the task struct. Let's avoid more bloatification and gather vtime information to their own struct.
--- include/linux/init_task.h | 6 +- include/linux/sched.h | 26 ++++++---- kernel/fork.c | 6 +- kernel/sched/cputime.c | 114 ++++++++++++++++++++++++++-------------------- 4 files changed, 87 insertions(+), 65 deletions(-)
include/linux/init_task.h +3 -3
@@ -170,9 +170,9 @@ extern struct cred init_cred;#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN # define INIT_VTIME (tsk) \ - .vtime_seqcount = SEQCNT_ZERO(tsk.vtime_seqcount), \ - .vtime_starttime = 0, \ - .vtime_state = VTIME_SYS, + .vtime.seqcount = SEQCNT_ZERO(tsk.vtime.seqcount), \ + .vtime.starttime = 0, \ + .vtime.state = VTIME_SYS,#else # define INIT_VTIME (tsk)#endif
include/linux/sched.h +16 -10
@@ -223,6 +223,21 @@ struct task_cputime {#define prof_exp stime#define sched_exp sum_exec_runtime +enum vtime_state { +/* Task is sleeping or running in a CPU with VTIME inactive: */ +VTIME_INACTIVE =0 , +/* Task runs in userspace in a CPU with VTIME active: */ +VTIME_USER , +/* Task runs in kernelspace in a CPU with VTIME active: */ +VTIME_SYS , +}; + +struct vtime { +seqcount_t seqcount; +unsigned long long starttime; +enum vtime_state state; +}; +struct sched_info {#ifdef CONFIG_SCHED_INFO /* Cumulative counters: */
@@ -670,16 +685,7 @@ struct task_struct {u64 gtime;struct prev_cputime prev_cputime;#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN -seqcount_t vtime_seqcount; -unsigned long long vtime_starttime; -enum { -/* Task is sleeping or running in a CPU with VTIME inactive: */ -VTIME_INACTIVE =0 , -/* Task runs in userspace in a CPU with VTIME active: */ -VTIME_USER , -/* Task runs in kernelspace in a CPU with VTIME active: */ -VTIME_SYS , - } vtime_state; +struct vtime vtime;#endif #ifdef CONFIG_NO_HZ_FULL
kernel/fork.c +3 -3
@@ -1637,9 +1637,9 @@ static __latent_entropy struct task_struprev_cputime_init (&p->prev_cputime);#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN -seqcount_init (&p->vtime_seqcount); - p->vtime_starttime =0 ; - p->vtime_state =VTIME_INACTIVE ; +seqcount_init (&p->vtime.seqcount); + p->vtime.starttime =0 ; + p->vtime.state =VTIME_INACTIVE ;#endif #if defined(SPLIT_RSS_COUNTING )
kernel/sched/cputime.c +65 -49
231 lines not on this page · raw message
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/sched-cputime-rename-vtime-fields.patch queue-4.12/vtime-sched-cputime-remove-vtime_account_user.patch queue-4.12/sched-cputime-accumulate-vtime-on-top-of-nsec-clocksource.patch queue-4.12/sched-cputime-move-the-vtime-task-fields-to-their-own-struct.patch queue-4.12/sched-cputime-always-set-tsk-vtime_snap_whence-after-accounting-vtime.patch