]> git.hungrycats.org Git - linux/commitdiff
sched/cputime: Always set tsk->vtime_snap_whence after accounting vtime
authorFrederic Weisbecker <fweisbec@gmail.com>
Thu, 29 Jun 2017 17:15:08 +0000 (19:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2017 22:10:22 +0000 (15:10 -0700)
commit 9fa57cf5a5c4aed1e45879b335fe433048709327 upstream.

Even though it doesn't have functional consequences, setting
the task's new context state after we actually accounted the pending
vtime from the old context state makes more sense from a review
perspective.

vtime_user_exit() is the only function that doesn't follow that rule
and that can bug the reviewer for a little while until he realizes there
is no reason for this special case.

Tested-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wanpeng Li <kernellwp@gmail.com>
Link: http://lkml.kernel.org/r/1498756511-11714-3-git-send-email-fweisbec@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/sched/cputime.c

index 5e080caf125e308cf508cc12852cfdabcb2dc61d..db7ef1037f3981ddc9d96d1c3773ec0d781f5979 100644 (file)
@@ -736,9 +736,9 @@ void vtime_user_enter(struct task_struct *tsk)
 void vtime_user_exit(struct task_struct *tsk)
 {
        write_seqcount_begin(&tsk->vtime_seqcount);
-       tsk->vtime_snap_whence = VTIME_SYS;
        if (vtime_delta(tsk))
                account_user_time(tsk, get_vtime_delta(tsk));
+       tsk->vtime_snap_whence = VTIME_SYS;
        write_seqcount_end(&tsk->vtime_seqcount);
 }