diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-04-14 09:36:29 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-04-14 09:37:27 -0400 |
commit | ab96e798cbd562a53edd802272e49a5100b29efb (patch) | |
tree | 4b3558bc97f5c2fc5c63789431deef79534e3bd3 /arch/s390/kernel/head.S | |
parent | b6112ccbff5ec580d46b584ecc3c3a773b830da2 (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/head.S')
-rw-r--r-- | arch/s390/kernel/head.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index 16f8975325ed..bba14494ee00 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
@@ -473,7 +473,10 @@ startup:basr %r13,0 # get base | |||
473 | xc 0x300(256),0x300 | 473 | xc 0x300(256),0x300 |
474 | l %r1,5f-.LPG0(%r13) | 474 | l %r1,5f-.LPG0(%r13) |
475 | stck 0(%r1) | 475 | stck 0(%r1) |
476 | 476 | spt 6f-.LPG0(%r13) | |
477 | mvc __LC_LAST_UPDATE_CLOCK(8),0(%r1) | ||
478 | mvc __LC_LAST_UPDATE_TIMER(8),6f-.LPG0(%r13) | ||
479 | mvc __LC_EXIT_TIMER(8),5f-.LPG0(%r13) | ||
477 | #ifndef CONFIG_MARCH_G5 | 480 | #ifndef CONFIG_MARCH_G5 |
478 | # check processor version against MARCH_{G5,Z900,Z990,Z9_109,Z10} | 481 | # check processor version against MARCH_{G5,Z900,Z990,Z9_109,Z10} |
479 | stidp __LC_CPUID # store cpuid | 482 | stidp __LC_CPUID # store cpuid |
@@ -500,8 +503,11 @@ startup:basr %r13,0 # get base | |||
500 | 503 | ||
501 | l %r13,4f-.LPG0(%r13) | 504 | l %r13,4f-.LPG0(%r13) |
502 | b 0(%r13) | 505 | b 0(%r13) |
506 | .align 4 | ||
503 | 4: .long startup_continue | 507 | 4: .long startup_continue |
504 | 5: .long sched_clock_base_cc | 508 | 5: .long sched_clock_base_cc |
509 | .align 8 | ||
510 | 6: .long 0x7fffffff,0xffffffff | ||
505 | 511 | ||
506 | # | 512 | # |
507 | # params at 10400 (setup.h) | 513 | # params at 10400 (setup.h) |