raspberrypi / linux

Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
Other
11.15k stars 4.99k forks source link

Wrong system time during clock reduction due to high temperature. #6016

Open Kronsed0 opened 8 months ago

Kronsed0 commented 8 months ago

Describe the bug

When the clock is reduced due to high CPU temperature, the system time of the CM4 runs significantly slower than another reference time. The difference here is approximately 9 seconds per minute.

This issue occurs when the CM4 is exposed to high temperatures, causing the CPU to throttle down to approximately 300MHz. The problem can also be replicated without high temperatures by lowering the temp_limit in the config.txt file to, for example, 30°C, and without any cooling present.

Steps to reproduce the behaviour

A Raspberry Pi CM4 without WiFi/BT, featuring 4GB RAM and 16GB memory on the official I/O board, is being used. The current Raspberry Pi x64 Lite is flashed onto the CM4 and put into operation.

In the config.txt file, the entry temp_limit=30 is added, the current time is set, and the system is restarted. After a while, the system time deviates significantly from the actual time, which does not occur without the limit setting.

Device (s)

Raspberry Pi CM4

System

OS and Version: Raspberry Pi reference 2023-12-11 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 2acf7afcba7d11500313a7b93bb55a2aae20b2d6, stage2

Firmware: Oct 17 2023 15:39:16 Copyright (c) 2012 Broadcom version 30f0c5e4d076da3ab4f341d88e7d505760b93ad7 (clean) (release) (start)

Kernel: Linux raspberrypi 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux

Logs

The following log output was accessed on the CM4 via the serial interface from a second host system. The following code was executed on the host system:

bash -c 'while true ; do echo -ne "date #my time: `date -u +%T`\rcat /proc/uptime\r"; sleep 180; done' >> /dev/ttyUSB0
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[    0.000000] Linux version 6.1.0-rpi7-rpi-v8 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24)
[    0.000000] random: crng init done
[    0.000000] Machine model: Raspberry Pi Compute Module 4 Rev 1.1
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x000000000e400000, size 512 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003b3fffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000fbffffff]
[    0.000000] On node 0, zone DMA32: 19456 pages in unavailable ranges
[    0.000000] On node 0, zone DMA32: 16384 pages in unavailable ranges
[    0.000000] percpu: Embedded 29 pages/cpu s79144 r8192 d31448 u118784
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-v3a
[    0.000000] CPU features: detected: Spectre-v4
[    0.000000] CPU features: detected: Spectre-BHB
[    0.000000] CPU features: kernel page table isolation forced ON by KASLR
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] CPU features: detected: ARM erratum 1742098
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 996912
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0  smsc95xx.macaddr=E4:5F:01:E6:A9:8C vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=caffd76e-02 rootfstype=ext4 fsck.repair=yes rootwait panic=10
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x0000000037400000-0x000000003b400000] (64MB)
[    0.000000] Memory: 3344880K/4050944K available (12352K kernel code, 2172K rwdata, 4076K rodata, 4288K init, 1082K bss, 181776K reserved, 524288K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 40060 entries in 157 pages
[    0.000000] ftrace: allocated 157 pages with 5 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[    0.000001] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[    0.000546] Console: colour dummy device 80x25
[    0.001569] printk: console [tty1] enabled
[    0.001690] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=216000)
[    0.001764] pid_max: default: 32768 minimum: 301
[    0.001992] LSM: Security Framework initializing
[    0.002330] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.002448] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.004800] cgroup: Disabling memory control group subsystem
[    0.008348] cblist_init_generic: Setting adjustable number of callback queues.
[    0.008405] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.008727] cblist_init_generic: Setting adjustable number of callback queues.
[    0.008777] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.009084] cblist_init_generic: Setting adjustable number of callback queues.
[    0.009133] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.009912] rcu: Hierarchical SRCU implementation.
[    0.009956] rcu:     Max phase no-delay instances is 1000.
[    0.013814] EFI services will not be available.
[    0.014663] smp: Bringing up secondary CPUs ...
[    0.016415] Detected PIPT I-cache on CPU1
[    0.016631] CPU1: Booted secondary processor 0x0000000001 [0x410fd083]
[    0.018501] Detected PIPT I-cache on CPU2
[    0.018689] CPU2: Booted secondary processor 0x0000000002 [0x410fd083]
[    0.020571] Detected PIPT I-cache on CPU3
[    0.020768] CPU3: Booted secondary processor 0x0000000003 [0x410fd083]
[    0.021023] smp: Brought up 1 node, 4 CPUs
[    0.021175] SMP: Total of 4 processors activated.
[    0.021214] CPU features: detected: 32-bit EL0 Support
[    0.021248] CPU features: detected: 32-bit EL1 Support
[    0.021287] CPU features: detected: CRC32 instructions
[    0.021527] CPU: All CPU(s) started at EL2
[    0.021581] alternatives: applying system-wide alternatives
[    0.024522] devtmpfs: initialized
[    0.041865] Enabled cp15_barrier support
[    0.041956] Enabled setend support
[    0.042298] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.042384] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.060639] pinctrl core: initialized pinctrl subsystem
[    0.061910] DMI not present or invalid.
[    0.062930] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.068937] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.069453] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.071228] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.071386] audit: initializing netlink subsys (disabled)
[    0.071806] audit: type=2000 audit(0.068:1): state=initialized audit_enabled=0 res=1
[    0.072880] thermal_sys: Registered thermal governor 'step_wise'
[    0.073029] cpuidle: using governor menu
[    0.073417] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.073773] ASID allocator initialised with 32768 entries
[    0.075523] Serial: AMBA PL011 UART driver
[    0.103771] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[    0.140753] raspberrypi-firmware soc:firmware: Attached to firmware from 2023-10-17T15:39:16, variant start
[    0.144777] raspberrypi-firmware soc:firmware: Firmware hash is 30f0c5e4d076da3ab4f341d88e7d505760b93ad7
[    0.171387] KASLR enabled
[    0.221667] bcm2835-dma fe007000.dma: DMA legacy API manager, dmachans=0x1
[    0.231351] iommu: Default domain type: Translated 
[    0.231404] iommu: DMA domain TLB invalidation policy: strict mode 
[    0.232105] SCSI subsystem initialized
[    0.232476] usbcore: registered new interface driver usbfs
[    0.232588] usbcore: registered new interface driver hub
[    0.232724] usbcore: registered new device driver usb
[    0.233547] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    0.234469] pps_core: LinuxPPS API ver. 1 registered
[    0.234513] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.234582] PTP clock support registered
[    0.236288] vgaarb: loaded
[    0.237153] clocksource: Switched to clocksource arch_sys_counter
[    0.238611] VFS: Disk quotas dquot_6.6.0
[    0.238761] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.239088] FS-Cache: Loaded
[    0.239379] CacheFiles: Loaded
[    0.255668] NET: Registered PF_INET protocol family
[    0.256419] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.264718] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.264828] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.264900] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.265252] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.266222] TCP: Hash tables configured (established 32768 bind 32768)
[    0.266885] MPTCP token hash table entries: 4096 (order: 4, 98304 bytes, linear)
[    0.267145] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.267261] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.267697] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.268851] RPC: Registered named UNIX socket transport module.
[    0.268904] RPC: Registered udp transport module.
[    0.268939] RPC: Registered tcp transport module.
[    0.268972] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.269032] PCI: CLS 0 bytes, default 64
[    0.269886] Trying to unpack rootfs image as initramfs...
[    0.292996] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    0.293802] kvm [1]: IPA Size Limit: 44 bits
[    0.296039] kvm [1]: vgic interrupt IRQ9
[    0.296457] kvm [1]: Hyp mode initialized successfully
[    1.182209] Freeing initrd memory: 10844K
[    2.091511] Initialise system trusted keyrings
[    2.092217] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    2.103080] zbud: loaded
[    2.107471] NFS: Registering the id_resolver key type
[    2.107569] Key type id_resolver registered
[    2.107607] Key type id_legacy registered
[    2.107788] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.107840] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    2.110010] Key type asymmetric registered
[    2.110066] Asymmetric key parser 'x509' registered
[    2.110248] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    2.110703] io scheduler mq-deadline registered
[    2.110755] io scheduler kyber registered
[    2.115810] irq_brcmstb_l2: registered L2 intc (/soc/interrupt-controller@7ef00100, parent irq: 27)
[    2.134323] gpio-507 (ant1): hogged as output/high
[    2.135637] gpio-511 (ant2): hogged as output/low
[    2.139724] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[    2.139807] brcm-pcie fd500000.pcie:   No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[    2.139994] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[    2.140184] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00ffffffff -> 0x0400000000
[    2.140884] brcm-pcie fd500000.pcie: setting SCB_ACCESS_EN, READ_UR_MODE, MAX_BURST_SIZE
[    2.141729] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[    2.141786] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.141837] pci_bus 0000:00: root bus resource [mem 0x600000000-0x63fffffff] (bus address [0xc0000000-0xffffffff])
[    2.141991] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[    2.142487] pci 0000:00:00.0: PME# supported from D0 D3hot
[    2.149046] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.149547] pci_bus 0000:01: supply vpcie3v3 not found, using dummy regulator
[    2.149821] pci_bus 0000:01: supply vpcie3v3aux not found, using dummy regulator
[    2.150018] pci_bus 0000:01: supply vpcie12v not found, using dummy regulator
[    2.259293] brcm-pcie fd500000.pcie: link up, 2.5 GT/s PCIe x1 (SSC)
[    2.259468] pci 0000:01:00.0: [1055:7430] type 00 class 0x020000
[    2.259617] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    2.259727] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x000000ff 64bit]
[    2.259834] pci 0000:01:00.0: reg 0x20: [mem 0x00000000-0x000000ff 64bit]
[    2.260390] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.261493] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    2.261587] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff]
[    2.261650] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600001fff 64bit]
[    2.261755] pci 0000:01:00.0: BAR 2: assigned [mem 0x600002000-0x6000020ff 64bit]
[    2.261855] pci 0000:01:00.0: BAR 4: assigned [mem 0x600002100-0x6000021ff 64bit]
[    2.261953] pci 0000:00:00.0: PCI bridge to [bus 01]
[    2.262012] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff]
[    2.262791] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    2.263201] pcieport 0000:00:00.0: PME: Signaling with IRQ 31
[    2.264018] pcieport 0000:00:00.0: AER: enabled with IRQ 31
[    2.264702] brcm-pcie fd500000.pcie: clkreq control enabled
[    2.282707] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
[    2.289575] iproc-rng200 fe104000.rng: hwrng registered
[    2.290721] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    2.312337] brd: module loaded
[    2.324865] loop: module loaded
[    2.326448] Loading iSCSI transport class v2.0-870.
[    2.336242] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    2.433439] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[    2.435209] usbcore: registered new interface driver r8152
[    2.435386] usbcore: registered new interface driver lan78xx
[    2.435501] usbcore: registered new interface driver smsc95xx
[    2.458964] xhci-hcd fe9c0000.xhci: xHCI Host Controller
[    2.459041] xhci-hcd fe9c0000.xhci: new USB bus registered, assigned bus number 1
[    2.459452] xhci-hcd fe9c0000.xhci: USB3 root hub has no ports
[    2.459504] xhci-hcd fe9c0000.xhci: hcc params 0x0220fe65 hci version 0x110 quirks 0x0000000000010010
[    2.459667] xhci-hcd fe9c0000.xhci: irq 34, io mem 0xfe9c0000
[    2.460641] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[    2.460704] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.460754] usb usb1: Product: xHCI Host Controller
[    2.460796] usb usb1: Manufacturer: Linux 6.1.0-rpi7-rpi-v8 xhci-hcd
[    2.460838] usb usb1: SerialNumber: fe9c0000.xhci
[    2.461903] hub 1-0:1.0: USB hub found
[    2.462047] hub 1-0:1.0: 1 port detected
[    2.463293] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    2.466573] usbcore: registered new interface driver uas
[    2.466727] usbcore: registered new interface driver usb-storage
[    2.468506] mousedev: PS/2 mouse device common for all mice
[    2.481035] sdhci: Secure Digital Host Controller Interface driver
[    2.481091] sdhci: Copyright(c) Pierre Ossman
[    2.482531] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.488945] ledtrig-cpu: registered to indicate activity on CPUs
[    2.489717] hid: raw HID events driver (C) Jiri Kosina
[    2.489986] usbcore: registered new interface driver usbhid
[    2.490032] usbhid: USB HID core driver
[    2.490621] bcm2835_vchiq fe00b840.mailbox: there is not valid maps for state default
[    2.506427] NET: Registered PF_PACKET protocol family
[    2.506639] Key type dns_resolver registered
[    2.508305] registered taskstats version 1
[    2.508472] Loading compiled-in X.509 certificates
[    2.553333] Loaded X.509 cert 'Debian Secure Boot CA: 6ccece7e4c6c0d1f6149f3dd27dfcc5cbb419ea1'
[    2.553555] Loaded X.509 cert 'Debian Secure Boot Signer 2022 - linux: 14011249c2675ea8e5148542202005810584b25f'
[    2.554933] Key type .fscrypt registered
[    2.554980] Key type fscrypt-provisioning registered
[    2.578248] uart-pl011 fe201000.serial: there is not valid maps for state default
[    2.579851] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    2.580127] fe201000.serial: ttyAMA1 at MMIO 0xfe201000 (irq = 36, base_baud = 0) is a PL011 rev2
[    2.580593] serial serial0: tty port ttyAMA1 registered
[    2.591407] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[    2.592984] printk: console [ttyS0] disabled
[    2.593247] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 37, base_baud = 62500000) is a 16550
[    3.885114] printk: console [ttyS0] enabled
[    3.891934] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    3.898318] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    3.907395] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    3.912677] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[    3.949184] of_cfs_init
[    3.951500] of_cfs_init: OK
[    3.984003] mmc0: SDHCI controller on fe340000.mmc [fe340000.mmc] using ADMA
[    4.000340] Freeing unused kernel memory: 4288K
[    4.004640] Run /init as init process
[    4.065312] mmc0: new DDR MMC card at address 0001
[    4.071423] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB 
[    4.079804]  mmcblk0: p1 p2
[    4.083192] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB
[    4.088007] mmcblk0boot0: mmc0:0001 AJTD4R 4.00 MiB 
[    4.095984] mmcblk0boot1: mmc0:0001 AJTD4R 4.00 MiB 
[    4.103226] mmcblk0rpmb: mmc0:0001 AJTD4R 4.00 MiB, chardev (243:0)
[    5.471332] lan743x 0000:01:00.0: enabling device (0000 -> 0002)
[    5.497526] lan743x 0000:01:00.0 (unnamed net_device) (uninitialized): PCI: Vendor ID = 0x1055, Device ID = 0x7430
[    5.581525] lan743x 0000:01:00.0 (unnamed net_device) (uninitialized): ID_REV = 0x74300011, FPGA_REV = 0.0
[    5.597082] brcmstb-i2c fef04500.i2c:  @97500hz registered in polling mode
[    5.610794] i2c i2c-22: Added multiplexed i2c bus 0
[    5.611187] brcmstb-i2c fef09500.i2c:  @97500hz registered in polling mode
[    5.646700] i2c i2c-22: Added multiplexed i2c bus 10
[    5.725336] lan743x 0000:01:00.0 (unnamed net_device) (uninitialized): MAC address set to 1a:e4:a3:b0:d9:2f
[    6.400754] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
[    6.990665] systemd[1]: System time before build time, advancing clock.
[    7.250295] NET: Registered PF_INET6 protocol family
[    7.257764] Segment Routing with IPv6
[    7.261031] In-situ OAM (IOAM) with IPv6
[    7.352926] systemd[1]: systemd 252.19-1~deb12u1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
[    7.381534] systemd[1]: Detected architecture arm64.
[    7.393459] systemd[1]: Hostname set to <raspberrypi>.
[    8.633193] systemd[1]: Queued start job for default target multi-user.target.
[    8.663718] systemd[1]: Created slice system-getty.slice - Slice /system/getty.
[    8.673760] systemd[1]: Created slice system-modprobe.slice - Slice /system/modprobe.
[    8.684253] systemd[1]: Created slice system-serial\x2dgetty.slice - Slice /system/serial-getty.
[    8.695111] systemd[1]: Created slice system-systemd\x2dfsck.slice - Slice /system/systemd-fsck.
[    8.705215] systemd[1]: Created slice user.slice - User and Session Slice.
[    8.712788] systemd[1]: Started systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
[    8.723782] systemd[1]: Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[    8.735307] systemd[1]: Set up automount proc-sys-fs-binfmt_misc.automount - Arbitrary Executable File Formats File System Automount Point.
[    8.747260] systemd[1]: Reached target cryptsetup.target - Local Encrypted Volumes.
[    8.754724] systemd[1]: Reached target integritysetup.target - Local Integrity Protected Volumes.
[    8.763341] systemd[1]: Reached target paths.target - Path Units.
[    8.769608] systemd[1]: Reached target slices.target - Slice Units.
[    8.775832] systemd[1]: Reached target swap.target - Swaps.
[    8.781534] systemd[1]: Reached target veritysetup.target - Local Verity Protected Volumes.
[    8.790979] systemd[1]: Listening on systemd-fsckd.socket - fsck to fsckd communication Socket.
[    8.799903] systemd[1]: Listening on systemd-initctl.socket - initctl Compatibility Named Pipe.
[    8.811308] systemd[1]: Listening on systemd-journald-audit.socket - Journal Audit Socket.
[    8.820937] systemd[1]: Listening on systemd-journald-dev-log.socket - Journal Socket (/dev/log).
[    8.831276] systemd[1]: Listening on systemd-journald.socket - Journal Socket.
[    8.843820] systemd[1]: Listening on systemd-udevd-control.socket - udev Control Socket.
[    8.853221] systemd[1]: Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
[    8.862517] systemd[1]: dev-hugepages.mount - Huge Pages File System was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
[    8.901946] systemd[1]: Mounting dev-mqueue.mount - POSIX Message Queue File System...
[    8.918059] systemd[1]: Mounting sys-kernel-debug.mount - Kernel Debug File System...
[    8.934190] systemd[1]: Mounting sys-kernel-tracing.mount - Kernel Trace File System...
[    8.942689] systemd[1]: auth-rpcgss-module.service - Kernel Module supporting RPCSEC_GSS was skipped because of an unmet condition check (ConditionPathExists=/etc/krb5.keytab).
[    8.965638] systemd[1]: Starting fake-hwclock.service - Restore / save the current clock...
[    8.982537] systemd[1]: Starting keyboard-setup.service - Set the console keyboard layout...
[    8.999905] systemd[1]: Starting kmod-static-nodes.service - Create List of Static Device Nodes...
[    9.017874] systemd[1]: Starting modprobe@configfs.service - Load Kernel Module configfs...
[    9.037223] systemd[1]: Starting modprobe@dm_mod.service - Load Kernel Module dm_mod...
[    9.054529] systemd[1]: Starting modprobe@drm.service - Load Kernel Module drm...
[    9.072521] systemd[1]: Starting modprobe@efi_pstore.service - Load Kernel Module efi_pstore...
[    9.109480] systemd[1]: Starting modprobe@fuse.service - Load Kernel Module fuse...
[    9.122443] device-mapper: ioctl: 4.47.0-ioctl (2022-07-28) initialised: dm-devel@redhat.com
[    9.127288] systemd[1]: Starting modprobe@loop.service - Load Kernel Module loop...
[    9.138908] systemd[1]: systemd-fsck-root.service - File System Check on Root Device was skipped because of an unmet condition check (ConditionPathExists=!/run/initramfs/fsck-root).
[    9.168686] systemd[1]: Starting systemd-journald.service - Journal Service...
[    9.187766] systemd[1]: Starting systemd-modules-load.service - Load Kernel Modules...
[    9.207027] systemd[1]: Starting systemd-remount-fs.service - Remount Root and Kernel File Systems...
[    9.224420] systemd[1]: Starting systemd-udev-trigger.service - Coldplug All udev Devices...
[    9.239198] fuse: init (API version 7.37)
[    9.300281] systemd[1]: Mounted dev-mqueue.mount - POSIX Message Queue File System.
[    9.311517] systemd[1]: Mounted sys-kernel-debug.mount - Kernel Debug File System.
[    9.327015] systemd[1]: Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[    9.329232] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
[    9.359522] systemd[1]: Finished fake-hwclock.service - Restore / save the current clock.
[    9.371734] systemd[1]: Finished kmod-static-nodes.service - Create List of Static Device Nodes.
[    9.383944] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    9.392837] systemd[1]: Finished modprobe@configfs.service - Load Kernel Module configfs.
[    9.405973] systemd[1]: modprobe@dm_mod.service: Deactivated successfully.
[    9.413950] systemd[1]: Finished modprobe@dm_mod.service - Load Kernel Module dm_mod.
[    9.425978] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    9.433682] systemd[1]: Finished modprobe@drm.service - Load Kernel Module drm.
[    9.444584] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
[    9.452614] systemd[1]: Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[    9.464774] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    9.472379] systemd[1]: Finished modprobe@fuse.service - Load Kernel Module fuse.
[    9.483193] systemd[1]: modprobe@loop.service: Deactivated successfully.
[    9.491634] systemd[1]: Finished modprobe@loop.service - Load Kernel Module loop.
[    9.501697] systemd[1]: Finished systemd-modules-load.service - Load Kernel Modules.
[    9.511975] systemd[1]: Finished systemd-remount-fs.service - Remount Root and Kernel File Systems.
[    9.562263] systemd[1]: Mounting sys-fs-fuse-connections.mount - FUSE Control File System...
[    9.592505] systemd[1]: Mounting sys-kernel-config.mount - Kernel Configuration File System...
[    9.602657] systemd[1]: systemd-firstboot.service - First Boot Wizard was skipped because of an unmet condition check (ConditionFirstBoot=yes).
[    9.615302] systemd[1]: systemd-pstore.service - Platform Persistent Storage Archival was skipped because of an unmet condition check (ConditionDirectoryNotEmpty=/sys/fs/pstore).
[    9.684761] systemd[1]: Starting systemd-random-seed.service - Load/Save Random Seed...
[    9.693554] systemd[1]: systemd-repart.service - Repartition Root Disk was skipped because no trigger condition checks were met.
[    9.713530] systemd[1]: Starting systemd-sysctl.service - Apply Kernel Variables...
[    9.732117] systemd[1]: Starting systemd-sysusers.service - Create System Users...
[    9.768535] systemd[1]: Started systemd-journald.service - Journal Service.

Debian GNU/Linux 12 raspberrypi ttyS0

raspberrypi login: pi

Password: 
Linux raspberrypi 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Mar  7 08:29:55 GMT 2024 on ttyS0
pi@raspberrypi:~$ date #my time: 08:35:45
Thu  7 Mar 08:35:46 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
31.04 73.44
pi@raspberrypi:~$ date #my time: 08:38:45
Thu  7 Mar 08:38:20 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
184.39 685.60
pi@raspberrypi:~$ date #my time: 08:41:45
Thu  7 Mar 08:40:53 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
337.73 1297.94
pi@raspberrypi:~$ date #my time: 08:44:45
Thu  7 Mar 08:43:26 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
491.07 1910.46
pi@raspberrypi:~$ date #my time: 08:47:45
Thu  7 Mar 08:46:00 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
644.41 2522.47
pi@raspberrypi:~$ date #my time: 08:50:45
Thu  7 Mar 08:48:33 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
797.75 3135.00
pi@raspberrypi:~$ date #my time: 08:53:45
Thu  7 Mar 08:51:06 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
951.09 3747.05
pi@raspberrypi:~$ date #my time: 08:56:45
Thu  7 Mar 08:53:40 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
1104.42 4359.56
pi@raspberrypi:~$ date #my time: 08:59:45
Thu  7 Mar 08:56:13 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
1257.76 4972.05
pi@raspberrypi:~$ date #my time: 09:02:45
Thu  7 Mar 08:58:46 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
1411.10 5583.95
pi@raspberrypi:~$ date #my time: 09:05:45
Thu  7 Mar 09:01:20 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
1564.45 6196.50
pi@raspberrypi:~$ date #my time: 09:08:45
Thu  7 Mar 09:03:53 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
1717.79 6809.00
pi@raspberrypi:~$ date #my time: 09:11:45
Thu  7 Mar 09:06:26 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
1871.13 7421.53
pi@raspberrypi:~$ date #my time: 09:14:45
Thu  7 Mar 09:09:00 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2024.47 8033.96
pi@raspberrypi:~$ date #my time: 09:17:45
Thu  7 Mar 09:11:33 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2177.81 8645.92
pi@raspberrypi:~$ date #my time: 09:20:45
Thu  7 Mar 09:14:07 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2331.15 9258.43
pi@raspberrypi:~$ date #my time: 09:23:45
Thu  7 Mar 09:16:40 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2484.49 9870.94
pi@raspberrypi:~$ date #my time: 09:26:45
Thu  7 Mar 09:19:13 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2637.83 10483.34
pi@raspberrypi:~$ date #my time: 09:29:45
Thu  7 Mar 09:21:47 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2791.17 11095.87
pi@raspberrypi:~$ date #my time: 09:32:45
Thu  7 Mar 09:24:20 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
2944.51 11707.90
pi@raspberrypi:~$ date #my time: 09:35:45
Thu  7 Mar 09:26:53 GMT 2024
pi@raspberrypi:~$ cat /proc/uptime
3097.86 12320.46
pi@raspberrypi:~$ 

Additional context

No response

pelwell commented 8 months ago

[ To save everyone else the bother of checking, the uptime and system time are consistent, all pointing to a start time of ~08:35:15 ]

popcornmix commented 8 months ago

On a Pi4, (64-bit bookworm) I've added temp_limit=30 and I observe throttling:

pi@pi4:~ $ vcgencmd get_throttled
throttled=0x60006
pi@pi4:~ $ vcgencmd measure_clock core arm
frequency(1)=219994624
frequency(48)=360123040

I'm disabling the ntp service, to ensure clock is not being "corrected".

pi@pi4:~ $ systemctl stop systemd-timesyncd
pi@pi4:~ $ systemctl status systemd-timesyncd
○ systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
     Active: inactive (dead) since Thu 2024-03-07 15:27:02 GMT; 4min 3s ago
   Duration: 10min 47.786s
       Docs: man:systemd-timesyncd.service(8)
    Process: 243 ExecStart=/lib/systemd/systemd-timesyncd (code=exited, status=0/SUCCESS)
   Main PID: 243 (code=exited, status=0/SUCCESS)
     Status: "Idle."
        CPU: 593ms

I'm then timing sleep 60 externally. The time I get is within a second. Do you see the clock drift when using sleep 60?

I also tried running date, waiting 60s (using external stopwatch), then date again, and again I get the expected times.

I wouldn't expect a Pi4 and CM4 to behave differently. Do you have any other Pi devices you can test on?

pelwell commented 8 months ago

FYI I just tested on a CM4 from my drawer, still running a 5.10 kernel, and it showed a 9 second per minute slow down (pressing Return at 1 minute intervals using a stopwatch):

pi@raspberrypi:~$ date
Fri  7 May 16:05:27 BST 2021
pi@raspberrypi:~$ date
Fri  7 May 16:06:18 BST 2021

I've handed the board over to @popcornmix.

Kronsed0 commented 8 months ago

I also noticed that this issue actually only occurs when throttling down to 300 MHz (lowest frequency?). I didn't observe any deviation at intermediate stages of 600 MHz or higher. This could possibly explain @popcornmix effect. Here, it was throttled 'only' to 360 MHz.

popcornmix commented 8 months ago

I can remove temp_limit=30 and replace it with arm_freq=300 and CM4 shows the 9s/min drift. arm_freq=360 doesn't show the drift.

On my Pi4 there is no drift with arm_freq=300 (this is with systemd-timesyncd.service stopped). I do have network connected on Pi4 though (my current image is nfs booted), whereas the CM4 had no network.

popcornmix commented 8 months ago

CM4 doesn't show the issue with network connected, but does after sudo systemctl stop systemd-timesyncd.service (so that presumably can correct the clock drift).

Switching to 64-bit kernel doesn't affect CM4. It is somewhat dated (5.10.17-v8+).

Pi4 with fresh bookwork lite 64-bit install is not showing issue with arm_freq=300 and no network.

popcornmix commented 8 months ago

Running rpi-update on the (32-bit buster) CM4 has not stopped the drift occurring.

before:

Linux raspberrypi 5.10.17-v8+ #1414 SMP PREEMPT Fri Apr 30 13:23:25 BST 2021 aarch64 GNU/Linux
Oct  2 2020 08:44:17
version bfe1c7ddc094b735134e96f2338c0ab2c9b10a5b (release)
timestamp 1601624657
update-time 0
capabilities 0x00000000
Apr 30 2021 13:45:52 
Copyright (c) 2012 Broadcom
version d7f29d96450abfc77cd6cf011af1faf1e03e5e56 (clean) (release) (start)

after:

Linux raspberrypi 6.6.20-v8+ #1739 SMP PREEMPT Thu Mar  7 11:46:23 GMT 2024 aarch64 GNU/Linux
Oct  2 2020 08:44:17
version bfe1c7ddc094b735134e96f2338c0ab2c9b10a5b (release)
timestamp 1601624657
update-time 0
capabilities 0x00000000

Feb 29 2024 12:24:53 
Copyright (c) 2012 Broadcom
version f4e2138c2adc8f3a92a3a65939e458f11d7298ba (clean) (release) (start)

I've now reflashed emmc with bullseye 64-bit, and I'm not seeing the drift:

Linux cm4 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux
Oct  2 2020 08:44:17
version bfe1c7ddc094b735134e96f2338c0ab2c9b10a5b (release)
timestamp 1601624657
update-time 0
capabilities 0x00000000

Oct 17 2023 15:39:16 
Copyright (c) 2012 Broadcom
version 30f0c5e4d076da3ab4f341d88e7d505760b93ad7 (clean) (release) (start)

a subsequent rpi-update still is not drifting:

Linux cm4 6.6.20-v8+ #1739 SMP PREEMPT Thu Mar  7 11:46:23 GMT 2024 aarch64 GNU/Linux
Oct  2 2020 08:44:17
version bfe1c7ddc094b735134e96f2338c0ab2c9b10a5b (release)
timestamp 1601624657
update-time 0
capabilities 0x00000000

Feb 29 2024 12:24:53 
Copyright (c) 2012 Broadcom
version f4e2138c2adc8f3a92a3a65939e458f11d7298ba (clean) (release) (start)

So it's not looking like bootloader, firmware or kernel related.

I've seen drift on cm4, 32-bit buster. I'll try 32-bit buster on Pi4.

popcornmix commented 8 months ago

Pi4 with 32-bit buster seems to have accurate time with arm_freq=300 and no network.

popcornmix commented 8 months ago

Searching suggests that ntpd does store previous drift in a driftfile which is possibly a mechanism where some state may lie within an installation which isn't network connected (e.g. it could be hiding the 15% drift that it has previously seen).

However rpios doesn't use ntpd, but systemd-timesyncd and I've not found documented a similar driftfile. But even with systemd-timesyncd disabled, then rebooted, I'm still not seeing drift on a Pi4 with arm_freq=300.

popcornmix commented 8 months ago

I reflashed CM4 with this image.

I booted with no network, ran sudo systemctl disable systemd-timesyncd. Added arm_freq=300 to config.txt and rebooted. I get the drift.

I've done exactly the same sequence on Pi4 and I don't get the drift. This is surprising.

The kernel/firmware are the same on CM4/Pi4. The bootloader is newer on Pi4.

popcornmix commented 8 months ago

On CM4, with 60s wall clock time elapsing we measure:

arm_freq=350 61s
arm_freq=300 52s
arm_freq=250 33s
arm_freq=200 14s
arm_freq=150 4s

(note I'm running sh pi@pi "date"; sleep 60; ssh pi@pi "date"; which has about .5 seconds overhead in the ssh calls, increasing the numbers slightly).

My current thinking is the arm generic timer has a resynchroniser between the timer's clock (Pi oscillator at 54MHz) and the arm core clock.

If the ratio of those two is too small, updates get missed and so the arm "wall clock" slows down.

The behaviour of the Pi4 is confusing though, as it should suffer the same. There are very few differences between a Pi4 and CM4(*).

Possibly somewhere the drift is being detected and compensated for (we know systemd-timesyncd can do this, but possibly there is another route).

(*) CM4 does support PTP hardware timestamping, which Pi4 doesn't but it's hard to imagine that causing this issue - especially in the case of no ethernet cable connected.

popcornmix commented 8 months ago

I've bumped CM4 to same bootloader as Pi4:

2024/01/22 10:41:21
version 51ed67b03b3dde4e76b345370f312d07aabf45b8 (release)
timestamp 1705920081
update-time 1709918044
capabilities 0x0000007f

but no change (CM4 drifts).

popcornmix commented 8 months ago

I've got CM4 booting from my normal nfs rootfs. This is bookworm 64-bit (with systemd-timesyncd disabled). Latest rpi-update kernel. Drift still present.

(*) CM4 does support PTP hardware timestamping, which Pi4 doesn't but it's hard to imagine that causing this issue - especially in the case of no ethernet cable connected.

I've nobbled bcm_ptp_probe to always return NULL which removes one difference in CM4 and Pi4. But CM4 still drifts.

popcornmix commented 7 months ago

I've written some assembly as an armstub that reads the generic timer (CNTPCT_EL0) and outputs a character on the uart each time it crossed 54M. This should be once a second. So, counting characters based on an external 60s timer gives: CM4

arm_freq: 350 60
arm_freq: 300 52
arm_freq: 250 33
arm_freq: 200 15
arm_freq: 150 5
arm_freq: 100 14

Pi4

arm_freq: 350 60
arm_freq: 300 60
arm_freq: 250 60
arm_freq: 200 52
arm_freq: 150 23
arm_freq: 100 5

So they both suffer from this issue, but my particular Pi4 only starts failing at a lower frequency. I believe this is just silicon related, rather than any actual difference in Pi4/CM4.

I still think this is the synchroniser between generic timer clock and arm clock. I suspect there is documented a requirement that the ratio exceeds some value (at least 6 - possibly 8), although searching around I couldn't find it.

I'll check, but I don't think we have control over the generic timer clock (I think it can only come from oscillator). If there is no way of reducing that clock, then the only way to avoid this issue is to enforce a higher minimum arm clock.

popcornmix commented 7 months ago

The armstub test on a Pi5 doesn't observe any clock drift when arm_freq=125MHz.

It looks like on Pi3 the generic timer is clocked at 1MHz, so the issue doesn't occur.

P33M commented 7 months ago

There may be an intermediate clock domain running at neither 54MHz nor arm_freq - does the ARM AXI and/or L2 frequency change with arm_freq?

Kronsed0 commented 7 months ago

Are there any updates here, or are there still areas where I can provide support?

pelwell commented 7 months ago

I think we have all the input we need. The current feeling is that it's a fact of life caused by a possibly-undocumented minimum ratio between clocks, the likely fix being to raise the minimum core clock, but we'd rather have a definitive answer from Broadcom to that effect.

Kronsed0 commented 7 months ago

Okay, thank you very much for the quick response. If I understand correctly, we are currently waiting for feedback from Broadcom, right?

Is there a workaround here to set the minimum CPU frequency, for example, similar to the arm_freq=300? So far, I haven't been able to find anything concrete about such a function.

pelwell commented 7 months ago

If I understand correctly, we are currently waiting for feedback from Broadcom, right?

Probably - @popcornmix has been looking after this one.

Is there a workaround here to set the minimum CPU frequency

Try core_freq_min=350.

Kronsed0 commented 7 months ago

I inserted the parameter core_freq_min=350 and temp_limit=30 into /boot/firmware/config.txt under the [all] section, but I didn't achieve the desired result:

pi@raspberrypi:~$ vcgencmd measure_temp
temp=39.9'C
pi@raspberrypi:~$ vcgencmd measure_clock arm
frequency(48)=300111328
pelwell commented 7 months ago

Can you confirm that your value "stuck"?

$ vcgencmd get_config core_freq_min
Kronsed0 commented 7 months ago

Yes, I can confirm that the value has stuck:

pi@raspberrypi:~$ vcgencmd get_config core_freq_min
core_freq_min=350
pi@raspberrypi:~$ vcgencmd measure_temp
temp=35.0'C
pi@raspberrypi:~$ vcgencmd measure_clock arm
frequency(48)=300111328
popcornmix commented 7 months ago

This needs a firmware update. The throttling code can go below arm_freq_min. If a user set, say arm_freq_min=1800 you wouldn't want no throttling to be applied at all.

We need to decide on a safe value for this (e.g. 350 or 400MHz).

eandreini commented 6 months ago

Any news on this thread? I noticed that when arm frequency goes at 180 MHz due to heavy throttling , system time is unusable as it moves one second forward every 9 real seconds. This make the system unusable.