• Christian Borntraeger's avatar
    [S390] fix/cleanup sched_clock · 8107d829
    Christian Borntraeger authored
    CONFIG_PRINTK_TIME reveals that sched_clock has a wrong offset during boot:
    ..
    [    0.000000]   Movable zone: 0 pages used for memmap
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 775679
    [    0.000000] Kernel command line: dasd=4b6c root=/dev/dasda1 ro noinitrd
    [    0.000000] PID hash table entries: 4096 (order: 12, 32768 bytes)
    [6920575.975232] console [ttyS0] enabled
    [6920575.987586] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
    [6920575.991404] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
    ..
    
    The s390 implementation of sched_clock uses the store clock instruction and
    subtracts jiffies_timer_cc.
    jiffies_timer_cc is a local variable in arch/s390/kernel/time.c and only used
    for sched_clock and monotonic clock. For historical reasons there is an offset
    on that value. With todays code this offset is unnecessary. By removing that
    offset we can get a sched_clock which returns the nanoseconds after time_init.
    This improves CONFIG_PRINTK_TIME.
    
    Since sched_clock is the only user, I have also renamed jiffies_timer_cc to
    sched_clock_base_cc. In addition, the local variable init_timer_cc is redundant
    and can be romved as well.
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    8107d829
time.c 42.8 KB