ubuntu@equal-beetle:~$ cat /proc/version Linux version 4.10.0-36-generic (buildd@bos01-arm64-013) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #40~16.04.1-Ubuntu SMP Tue Sep 19 15:20:18 UTC 2017 ubuntu@equal-beetle:~$ sudo dmesg | grep -i arch_timer [ 0.000000] arch_timer: Enabling global workaround for HiSilicon erratum 161010101 [ 0.000000] arch_timer: CPU0: Trapping CNTVCT access [ 0.000000] arch_timer: cp15 timer(s) running at 50.00MHz (phys). [ 0.194148] arch_timer: CPU1: Trapping CNTVCT access [ 0.197183] arch_timer: CPU2: Trapping CNTVCT access [ 0.200193] arch_timer: CPU3: Trapping CNTVCT access [ 0.203192] arch_timer: CPU4: Trapping CNTVCT access [ 0.206199] arch_timer: CPU5: Trapping CNTVCT access [ 0.209199] arch_timer: CPU6: Trapping CNTVCT access [ 0.212197] arch_timer: CPU7: Trapping CNTVCT access [ 0.215212] arch_timer: CPU8: Trapping CNTVCT access [ 0.218234] arch_timer: CPU9: Trapping CNTVCT access [ 0.221238] arch_timer: CPU10: Trapping CNTVCT access [ 0.224244] arch_timer: CPU11: Trapping CNTVCT access [ 0.227250] arch_timer: CPU12: Trapping CNTVCT access [ 0.230271] arch_timer: CPU13: Trapping CNTVCT access [ 0.233286] arch_timer: CPU14: Trapping CNTVCT access [ 0.236293] arch_timer: CPU15: Trapping CNTVCT access [ 0.239365] arch_timer: CPU16: Trapping CNTVCT access [ 0.242482] arch_timer: CPU17: Trapping CNTVCT access [ 0.245543] arch_timer: CPU18: Trapping CNTVCT access [ 0.248601] arch_timer: CPU19: Trapping CNTVCT access [ 0.251675] arch_timer: CPU20: Trapping CNTVCT access [ 0.254747] arch_timer: CPU21: Trapping CNTVCT access [ 0.257809] arch_timer: CPU22: Trapping CNTVCT access [ 0.260874] arch_timer: CPU23: Trapping CNTVCT access [ 0.263942] arch_timer: CPU24: Trapping CNTVCT access [ 0.267019] arch_timer: CPU25: Trapping CNTVCT access [ 0.270077] arch_timer: CPU26: Trapping CNTVCT access [ 0.273181] arch_timer: CPU27: Trapping CNTVCT access [ 0.276300] arch_timer: CPU28: Trapping CNTVCT access [ 0.279418] arch_timer: CPU29: Trapping CNTVCT access [ 0.282534] arch_timer: CPU30: Trapping CNTVCT access [ 0.285632] arch_timer: CPU31: Trapping CNTVCT access [ 0.289091] arch_timer: CPU32: Trapping CNTVCT access [ 0.292688] arch_timer: CPU33: Trapping CNTVCT access [ 0.296098] arch_timer: CPU34: Trapping CNTVCT access [ 0.299505] arch_timer: CPU35: Trapping CNTVCT access [ 0.302920] arch_timer: CPU36: Trapping CNTVCT access [ 0.306333] arch_timer: CPU37: Trapping CNTVCT access [ 0.309748] arch_timer: CPU38: Trapping CNTVCT access [ 0.313156] arch_timer: CPU39: Trapping CNTVCT access [ 0.316575] arch_timer: CPU40: Trapping CNTVCT access [ 0.320010] arch_timer: CPU41: Trapping CNTVCT access [ 0.323419] arch_timer: CPU42: Trapping CNTVCT access [ 0.326831] arch_timer: CPU43: Trapping CNTVCT access [ 0.330254] arch_timer: CPU44: Trapping CNTVCT access [ 0.333679] arch_timer: CPU45: Trapping CNTVCT access [ 0.337106] arch_timer: CPU46: Trapping CNTVCT access [ 0.340505] arch_timer: CPU47: Trapping CNTVCT access [ 0.343945] arch_timer: CPU48: Trapping CNTVCT access [ 0.347462] arch_timer: CPU49: Trapping CNTVCT access [ 0.350896] arch_timer: CPU50: Trapping CNTVCT access [ 0.354329] arch_timer: CPU51: Trapping CNTVCT access [ 0.357764] arch_timer: CPU52: Trapping CNTVCT access [ 0.361200] arch_timer: CPU53: Trapping CNTVCT access [ 0.364632] arch_timer: CPU54: Trapping CNTVCT access [ 0.368067] arch_timer: CPU55: Trapping CNTVCT access [ 0.371503] arch_timer: CPU56: Trapping CNTVCT access [ 0.374955] arch_timer: CPU57: Trapping CNTVCT access [ 0.378389] arch_timer: CPU58: Trapping CNTVCT access [ 0.381850] arch_timer: CPU59: Trapping CNTVCT access [ 0.385327] arch_timer: CPU60: Trapping CNTVCT access [ 0.388814] arch_timer: CPU61: Trapping CNTVCT access [ 0.392286] arch_timer: CPU62: Trapping CNTVCT access [ 0.395757] arch_timer: CPU63: Trapping CNTVCT access
** Tags removed: verification-needed-zesty ** Tags added: verification-done-zesty -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1713821 Title: arm64 arch_timer fixes Status in linux package in Ubuntu: Fix Released Status in linux source package in Zesty: Fix Committed Bug description: [Impact] This bug captures a few issues with the ARM arch_timer driver: 1) Some arm64 systems have hardware defects in their architected timer implementations that require errata, which we workaround in the kernel. However, it's possible that this workaround will not be applied if the timer was reset w/ the user access bit set. 2) The Juno board fails to initialize a timer at boot: arch_timer: Unable to map frame @ 0x0000000000000000 arch_timer: Frame missing phys irq. Failed to initialize '/timer@2a810000': -22 3) Possible boot warning from arch_timer_mem_of_init(): 'Trying to vfree() nonexistent vm area' 4) There's a theoretical problem where the first frame of a timer could be used even though a better suited timer frame is available. 5) An infinite recursion loop will occur when enabling the function tracer in builds with CONFIG_PREEMPT_TRACER=y. Ubuntu does not enable CONFIG_PREEMPT_TRACER, so this will only be a problem if that changes. [Test Case] I've regression tested this on both a system w/ an errata workaround (HiSilicon D05) and one that is not (Cavium ThunderX CRB1S). In both cases the timer was initialized correctly. Verified by looking at the boot messages: dannf@d05-3:~$ dmesg | grep arch_timer [ 0.000000] arch_timer: Enabling global workaround for HiSilicon erratum 161010101 [ 0.000000] arch_timer: CPU0: Trapping CNTVCT access [ 0.000000] arch_timer: cp15 timer(s) running at 50.00MHz (phys). [ 0.194241] arch_timer: CPU1: Trapping CNTVCT access [ 0.197305] arch_timer: CPU2: Trapping CNTVCT access <.....> [ 0.396228] arch_timer: CPU62: Trapping CNTVCT access [ 0.399752] arch_timer: CPU63: Trapping CNTVCT access ubuntu@grotrian:~$ dmesg | grep arch_timer [ 0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys). [Regression Risk] The regression risk is restricted to ARM systems, as this driver only applies there. Regressions could lead to a timer failing to initialize, or a system that requires errata not having the appropriate workaround applied. (Which are also the conditions that the suggested backports are attempting to fix). To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1713821/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp