Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched
* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched: sched: proper prototype for kernel/sched.c:migration_init() sched: avoid large irq-latencies in smp-balancing sched: fix copy_namespace() <-> sched_fork() dependency in do_fork sched: clean up the wakeup preempt check, #2 sched: clean up the wakeup preempt check sched: wakeup preemption fix sched: remove PREEMPT_RESTRICT sched: turn off PREEMPT_RESTRICT KVM: fix !SMP build error x86: make nmi_cpu_busy() always defined x86: make ipi_handler() always defined sched: cleanup, use NSEC_PER_MSEC and NSEC_PER_SEC sched: reintroduce SMP tunings again sched: restore deterministic CPU accounting on powerpc sched: fix delay accounting regression sched: reintroduce the sched_min_granularity tunable sched: documentation: place_entity() comments sched: fix vslice
This commit is contained in:
@@ -350,7 +350,7 @@ struct task_struct *__switch_to(struct task_struct *prev,
|
||||
local_irq_save(flags);
|
||||
|
||||
account_system_vtime(current);
|
||||
account_process_vtime(current);
|
||||
account_process_tick(current, 0);
|
||||
calculate_steal_time();
|
||||
|
||||
last = _switch(old_thread, new_thread);
|
||||
|
||||
@@ -259,7 +259,7 @@ void account_system_vtime(struct task_struct *tsk)
|
||||
* user and system time records.
|
||||
* Must be called with interrupts disabled.
|
||||
*/
|
||||
void account_process_vtime(struct task_struct *tsk)
|
||||
void account_process_tick(struct task_struct *tsk, int user_tick)
|
||||
{
|
||||
cputime_t utime, utimescaled;
|
||||
|
||||
@@ -274,18 +274,6 @@ void account_process_vtime(struct task_struct *tsk)
|
||||
account_user_time_scaled(tsk, utimescaled);
|
||||
}
|
||||
|
||||
static void account_process_time(struct pt_regs *regs)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
account_process_vtime(current);
|
||||
run_local_timers();
|
||||
if (rcu_pending(cpu))
|
||||
rcu_check_callbacks(cpu, user_mode(regs));
|
||||
scheduler_tick();
|
||||
run_posix_cpu_timers(current);
|
||||
}
|
||||
|
||||
/*
|
||||
* Stuff for accounting stolen time.
|
||||
*/
|
||||
@@ -375,7 +363,6 @@ static void snapshot_purr(void)
|
||||
|
||||
#else /* ! CONFIG_VIRT_CPU_ACCOUNTING */
|
||||
#define calc_cputime_factors()
|
||||
#define account_process_time(regs) update_process_times(user_mode(regs))
|
||||
#define calculate_steal_time() do { } while (0)
|
||||
#endif
|
||||
|
||||
@@ -599,16 +586,6 @@ void timer_interrupt(struct pt_regs * regs)
|
||||
get_lppaca()->int_dword.fields.decr_int = 0;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We cannot disable the decrementer, so in the period
|
||||
* between this cpu's being marked offline in cpu_online_map
|
||||
* and calling stop-self, it is taking timer interrupts.
|
||||
* Avoid calling into the scheduler rebalancing code if this
|
||||
* is the case.
|
||||
*/
|
||||
if (!cpu_is_offline(cpu))
|
||||
account_process_time(regs);
|
||||
|
||||
if (evt->event_handler)
|
||||
evt->event_handler(evt);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user