aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/vtime.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2009-04-14 09:36:29 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-04-14 09:37:27 -0400
commitab96e798cbd562a53edd802272e49a5100b29efb (patch)
tree4b3558bc97f5c2fc5c63789431deef79534e3bd3 /arch/s390/kernel/vtime.c
parentb6112ccbff5ec580d46b584ecc3c3a773b830da2 (diff)
[S390] boot cputime accounting
Start the cpu time accounting very early to catch the cpu time spent for the initial kernel setup. To make the output of /proc/uptime match the sum of all cpu accounting values of the boot cpu reset xtime and wall_to_monotonic to sane values based on the TOD clock. The values set by timekeeping_init are off by up to a second. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/vtime.c')
-rw-r--r--arch/s390/kernel/vtime.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index c0870a61f90f..38ea92ff04f9 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -527,16 +527,8 @@ EXPORT_SYMBOL(del_virt_timer);
527 */ 527 */
528void init_cpu_vtimer(void) 528void init_cpu_vtimer(void)
529{ 529{
530 struct thread_info *ti = current_thread_info();
531 struct vtimer_queue *vq; 530 struct vtimer_queue *vq;
532 531
533 S390_lowcore.user_timer = ti->user_timer;
534 S390_lowcore.system_timer = ti->system_timer;
535
536 /* kick the virtual timer */
537 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock));
538 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer));
539
540 /* initialize per cpu vtimer structure */ 532 /* initialize per cpu vtimer structure */
541 vq = &__get_cpu_var(virt_cpu_timer); 533 vq = &__get_cpu_var(virt_cpu_timer);
542 INIT_LIST_HEAD(&vq->list); 534 INIT_LIST_HEAD(&vq->list);