diff options
Diffstat (limited to 'arch/powerpc/kernel/time.c')
| -rw-r--r-- | arch/powerpc/kernel/time.c | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 9eb3284deac4..a70dfb76d0a8 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
| @@ -259,7 +259,7 @@ void account_system_vtime(struct task_struct *tsk) | |||
| 259 | * user and system time records. | 259 | * user and system time records. |
| 260 | * Must be called with interrupts disabled. | 260 | * Must be called with interrupts disabled. |
| 261 | */ | 261 | */ |
| 262 | void account_process_vtime(struct task_struct *tsk) | 262 | void account_process_tick(struct task_struct *tsk, int user_tick) |
| 263 | { | 263 | { |
| 264 | cputime_t utime, utimescaled; | 264 | cputime_t utime, utimescaled; |
| 265 | 265 | ||
| @@ -274,18 +274,6 @@ void account_process_vtime(struct task_struct *tsk) | |||
| 274 | account_user_time_scaled(tsk, utimescaled); | 274 | account_user_time_scaled(tsk, utimescaled); |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | static void account_process_time(struct pt_regs *regs) | ||
| 278 | { | ||
| 279 | int cpu = smp_processor_id(); | ||
| 280 | |||
| 281 | account_process_vtime(current); | ||
| 282 | run_local_timers(); | ||
| 283 | if (rcu_pending(cpu)) | ||
| 284 | rcu_check_callbacks(cpu, user_mode(regs)); | ||
| 285 | scheduler_tick(); | ||
| 286 | run_posix_cpu_timers(current); | ||
| 287 | } | ||
| 288 | |||
| 289 | /* | 277 | /* |
| 290 | * Stuff for accounting stolen time. | 278 | * Stuff for accounting stolen time. |
| 291 | */ | 279 | */ |
| @@ -375,7 +363,6 @@ static void snapshot_purr(void) | |||
| 375 | 363 | ||
| 376 | #else /* ! CONFIG_VIRT_CPU_ACCOUNTING */ | 364 | #else /* ! CONFIG_VIRT_CPU_ACCOUNTING */ |
| 377 | #define calc_cputime_factors() | 365 | #define calc_cputime_factors() |
| 378 | #define account_process_time(regs) update_process_times(user_mode(regs)) | ||
| 379 | #define calculate_steal_time() do { } while (0) | 366 | #define calculate_steal_time() do { } while (0) |
| 380 | #endif | 367 | #endif |
| 381 | 368 | ||
| @@ -599,16 +586,6 @@ void timer_interrupt(struct pt_regs * regs) | |||
| 599 | get_lppaca()->int_dword.fields.decr_int = 0; | 586 | get_lppaca()->int_dword.fields.decr_int = 0; |
| 600 | #endif | 587 | #endif |
| 601 | 588 | ||
| 602 | /* | ||
| 603 | * We cannot disable the decrementer, so in the period | ||
| 604 | * between this cpu's being marked offline in cpu_online_map | ||
| 605 | * and calling stop-self, it is taking timer interrupts. | ||
| 606 | * Avoid calling into the scheduler rebalancing code if this | ||
| 607 | * is the case. | ||
| 608 | */ | ||
| 609 | if (!cpu_is_offline(cpu)) | ||
| 610 | account_process_time(regs); | ||
| 611 | |||
| 612 | if (evt->event_handler) | 589 | if (evt->event_handler) |
| 613 | evt->event_handler(evt); | 590 | evt->event_handler(evt); |
| 614 | else | 591 | else |
