aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index fb4e67d5dd60..a05817c021d6 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -790,7 +790,7 @@ static unsigned long cmp_next_hrtimer_event(unsigned long now,
790} 790}
791 791
792/** 792/**
793 * next_timer_interrupt - return the jiffy of the next pending timer 793 * get_next_timer_interrupt - return the jiffy of the next pending timer
794 * @now: current time (in jiffies) 794 * @now: current time (in jiffies)
795 */ 795 */
796unsigned long get_next_timer_interrupt(unsigned long now) 796unsigned long get_next_timer_interrupt(unsigned long now)
@@ -817,6 +817,19 @@ unsigned long next_timer_interrupt(void)
817 817
818#endif 818#endif
819 819
820#ifndef CONFIG_VIRT_CPU_ACCOUNTING
821void account_process_tick(struct task_struct *p, int user_tick)
822{
823 if (user_tick) {
824 account_user_time(p, jiffies_to_cputime(1));
825 account_user_time_scaled(p, jiffies_to_cputime(1));
826 } else {
827 account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1));
828 account_system_time_scaled(p, jiffies_to_cputime(1));
829 }
830}
831#endif
832
820/* 833/*
821 * Called from the timer interrupt handler to charge one tick to the current 834 * Called from the timer interrupt handler to charge one tick to the current
822 * process. user_tick is 1 if the tick is user time, 0 for system. 835 * process. user_tick is 1 if the tick is user time, 0 for system.
@@ -827,13 +840,7 @@ void update_process_times(int user_tick)
827 int cpu = smp_processor_id(); 840 int cpu = smp_processor_id();
828 841
829 /* Note: this timer irq context must be accounted for as well. */ 842 /* Note: this timer irq context must be accounted for as well. */
830 if (user_tick) { 843 account_process_tick(p, user_tick);
831 account_user_time(p, jiffies_to_cputime(1));
832 account_user_time_scaled(p, jiffies_to_cputime(1));
833 } else {
834 account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1));
835 account_system_time_scaled(p, jiffies_to_cputime(1));
836 }
837 run_local_timers(); 844 run_local_timers();
838 if (rcu_pending(cpu)) 845 if (rcu_pending(cpu))
839 rcu_check_callbacks(cpu, user_tick); 846 rcu_check_callbacks(cpu, user_tick);