mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
[S390] reset cputime accounting after IPL from NSS
After an IPL from NSS the uptime of the system is incorrect. The reason is that the startup code in head.S is not executed in case of an IPL from NSS. Due to that sched_clock_base_cc which is used to initialze wall_to_monotonic contains the time stamp when the NSS has been created instead of the time stamp of the system start. Reinitialize the cputime accounting values in create_kernel_nss after the SAVESYS CP command that created the NSS segment. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
ccaf655396
commit
b89031e087
@ -55,6 +55,7 @@ static void __init reset_tod_clock(void)
|
||||
disabled_wait(0);
|
||||
|
||||
sched_clock_base_cc = TOD_UNIX_EPOCH;
|
||||
S390_lowcore.last_update_clock = sched_clock_base_cc;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SHARED_KERNEL
|
||||
@ -167,6 +168,14 @@ static noinline __init void create_kernel_nss(void)
|
||||
return;
|
||||
}
|
||||
|
||||
/* re-initialize cputime accounting. */
|
||||
sched_clock_base_cc = get_clock();
|
||||
S390_lowcore.last_update_clock = sched_clock_base_cc;
|
||||
S390_lowcore.last_update_timer = 0x7fffffffffffffffULL;
|
||||
S390_lowcore.user_timer = 0;
|
||||
S390_lowcore.system_timer = 0;
|
||||
asm volatile("SPT 0(%0)" : : "a" (&S390_lowcore.last_update_timer));
|
||||
|
||||
/* re-setup boot command line with new ipl vm parms */
|
||||
ipl_update_parameters();
|
||||
setup_boot_command_line();
|
||||
|
Loading…
Reference in New Issue
Block a user