diff options
-rw-r--r-- | include/linux/vtime.h | 9 | ||||
-rw-r--r-- | kernel/sched/cputime.c | 12 |
2 files changed, 7 insertions, 14 deletions
diff --git a/include/linux/vtime.h b/include/linux/vtime.h index 0681fe25abeb..18b405e3cd93 100644 --- a/include/linux/vtime.h +++ b/include/linux/vtime.h | |||
@@ -67,19 +67,12 @@ static inline void vtime_account_system(struct task_struct *tsk) { } | |||
67 | 67 | ||
68 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN | 68 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN |
69 | extern void arch_vtime_task_switch(struct task_struct *tsk); | 69 | extern void arch_vtime_task_switch(struct task_struct *tsk); |
70 | extern void vtime_account_user(struct task_struct *tsk); | ||
71 | extern void vtime_user_enter(struct task_struct *tsk); | 70 | extern void vtime_user_enter(struct task_struct *tsk); |
72 | 71 | extern void vtime_user_exit(struct task_struct *tsk); | |
73 | static inline void vtime_user_exit(struct task_struct *tsk) | ||
74 | { | ||
75 | vtime_account_user(tsk); | ||
76 | } | ||
77 | |||
78 | extern void vtime_guest_enter(struct task_struct *tsk); | 72 | extern void vtime_guest_enter(struct task_struct *tsk); |
79 | extern void vtime_guest_exit(struct task_struct *tsk); | 73 | extern void vtime_guest_exit(struct task_struct *tsk); |
80 | extern void vtime_init_idle(struct task_struct *tsk, int cpu); | 74 | extern void vtime_init_idle(struct task_struct *tsk, int cpu); |
81 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING_GEN */ | 75 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING_GEN */ |
82 | static inline void vtime_account_user(struct task_struct *tsk) { } | ||
83 | static inline void vtime_user_enter(struct task_struct *tsk) { } | 76 | static inline void vtime_user_enter(struct task_struct *tsk) { } |
84 | static inline void vtime_user_exit(struct task_struct *tsk) { } | 77 | static inline void vtime_user_exit(struct task_struct *tsk) { } |
85 | static inline void vtime_guest_enter(struct task_struct *tsk) { } | 78 | static inline void vtime_guest_enter(struct task_struct *tsk) { } |
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c index 84a419bdf5aa..5adc896d0f64 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c | |||
@@ -724,21 +724,21 @@ void vtime_account_system(struct task_struct *tsk) | |||
724 | write_seqcount_end(&tsk->vtime_seqcount); | 724 | write_seqcount_end(&tsk->vtime_seqcount); |
725 | } | 725 | } |
726 | 726 | ||
727 | void vtime_account_user(struct task_struct *tsk) | 727 | void vtime_user_enter(struct task_struct *tsk) |
728 | { | 728 | { |
729 | write_seqcount_begin(&tsk->vtime_seqcount); | 729 | write_seqcount_begin(&tsk->vtime_seqcount); |
730 | tsk->vtime_snap_whence = VTIME_SYS; | ||
731 | if (vtime_delta(tsk)) | 730 | if (vtime_delta(tsk)) |
732 | account_user_time(tsk, get_vtime_delta(tsk)); | 731 | __vtime_account_system(tsk); |
732 | tsk->vtime_snap_whence = VTIME_USER; | ||
733 | write_seqcount_end(&tsk->vtime_seqcount); | 733 | write_seqcount_end(&tsk->vtime_seqcount); |
734 | } | 734 | } |
735 | 735 | ||
736 | void vtime_user_enter(struct task_struct *tsk) | 736 | void vtime_user_exit(struct task_struct *tsk) |
737 | { | 737 | { |
738 | write_seqcount_begin(&tsk->vtime_seqcount); | 738 | write_seqcount_begin(&tsk->vtime_seqcount); |
739 | tsk->vtime_snap_whence = VTIME_SYS; | ||
739 | if (vtime_delta(tsk)) | 740 | if (vtime_delta(tsk)) |
740 | __vtime_account_system(tsk); | 741 | account_user_time(tsk, get_vtime_delta(tsk)); |
741 | tsk->vtime_snap_whence = VTIME_USER; | ||
742 | write_seqcount_end(&tsk->vtime_seqcount); | 742 | write_seqcount_end(&tsk->vtime_seqcount); |
743 | } | 743 | } |
744 | 744 | ||