[FAQ] AM62P: How to measure wakeup latency for Low Power Modes on AM62x/A/P

Part Number: AM62P

Tool/software:

How can you measure the wakeup latency for Low Power Modes on AM62x/A/P? Low Power Mode's wakeup latency is the amount of time required from triggering a wakeup event to resuming normal operation. This FAQ shows to measure this time. This applies to AM62x, AM62A, AM62P.

  • Using strace

    strace is a function built in the default SDK. Add the -c flag to generate a report of time spent on system calls to measure the latency of the wakeup sequence.

    root@am62pxx-evm:~# strace -c echo mem > /sys/power/state
    [   21.837337] PM: suspend entry (deep)
    [   22.207596] Filesystems sync: 0.366 seconds
    [   22.216783] Freezing user space processes
    [   22.219505] Freezing user space processes completed (elapsed 0.002 seconds)
    [   22.219531] OOM killer disabled.
    [   22.219536] Freezing remaining freezable tasks
    [   22.220871] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
    [   22.220881] printk: Suspending console(s) (use no_console_suspend to debug)
    [   22.262892] omap8250 2800000.serial: PM domain pd:146 will not be powered off
    [   22.269272] Disabling non-boot CPUs ...
    [   22.271191] psci: CPU1 killed (polled 0 ms)
    [   22.274417] psci: CPU2 killed (polled 0 ms)
    [   22.277276] psci: CPU3 killed (polled 0 ms)
    [   22.278352] Enabling non-boot CPUs ...
    [   22.278672] Detected VIPT I-cache on CPU1
    [   22.278742] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [   22.278785] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [   22.279487] CPU1 is up
    [   22.279713] Detected VIPT I-cache on CPU2
    [   22.279751] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [   22.279775] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [   22.280255] CPU2 is up
    [   22.280478] Detected VIPT I-cache on CPU3
    [   22.280520] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [   22.280547] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [   22.281080] CPU3 is up
    [   22.281398] ti-sci 44043000.system-controller: ti_sci_resume: wakeup source: 0x80
    [   22.382049] OOM killer enabled.
    [   22.385192] Restarting tasks ... done.
    [   22.390920] random: crng reseeded on system resumption
    % time     seconds  usecs/call     calls    errors syscall
    ------ ----------- ----------- --------- --------- -------------[   22.396718] PM: suspend exit
    ---
     99.65    0.133407      133407         1           write
      0.10    0.000133          33         4           mprotect
      0.06    0.000081          27         3           munmap
      0.05    0.000072          18         4           close
      0.05    0.000070          11         6           mmap
      0.03    0.000040          13         3           newfstatat
      0.02    0.000024           8         3           brk
      0.01    0.000013          13         1           getrandom
      0.01    0.000009           9         1           prlimit64
      0.01    0.000008           8         1           set_tid_address
      0.01    0.000007           7         1           rseq
      0.00    0.000006           6         1           set_robust_list
      0.00    0.000000           0         1         1 faccessat
      0.00    0.000000           0         2           openat
      0.00    0.000000           0         1           read
      0.00    0.000000           0         1           pread64
      0.00    0.000000           0         1           execve
    ------ ----------- ----------- --------- --------- ----------------
    100.00    0.133870        3824        35         1 total
    root@am62pxx-evm:~# 

    The table shows 0.1339 seconds so the wakeup sequence took 133.9 ms.

  • Using /sys/power/pm_print_times

    This is not enabled by default in the SDK. In menuconfig, go to 'Power managment options --->'

    Enable 'Power Managment Debug Support'

    The changes should be reflected in the .config file:

    CONFIG_PM_DEBUG=y

    Then build the Linux Image and modules & copy over to the SD Card (or which ever boot method).

    At the command line, enable pm_print_times by running 'echo 1 > /sys/power/pm_print_times'

    root@am62pxx-evm:~# echo 1 > /sys/power/pm_print_times 
    root@am62pxx-evm:~# echo mem > /sys/power/state
    [  152.534525] PM: suspend entry (deep)
    [  152.563291] Filesystems sync: 0.024 seconds
    [  152.571367] Freezing user space processes
    [  152.577331] Freezing user space processes completed (elapsed 0.005 seconds)
    [  152.577402] OOM killer disabled.
    [  152.577416] Freezing remaining freezable tasks
    [  152.579050] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
    [  152.579065] printk: Suspending console(s) (use no_console_suspend to debug)
    [  152.623975] platform mcu_gpio_key: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.624006] platform mcu_gpio_key: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.624020] platform 2b300050.target-module: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000:bus@b00000
    [  152.624031] platform 2b300050.target-module: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.624101] input input0: PM: calling input_dev_suspend+0x0/0x80 @ 1033, parent: gpio_key
    [  152.624116] input input0: PM: input_dev_suspend+0x0/0x80 returned 0 after 1 usecs
    [  152.624113] mmcblk mmc1:aaaa: PM: calling mmc_bus_suspend+0x0/0x80 @ 1014, parent: mmc1
    [  152.624136] leds mmc1::: PM: calling led_suspend+0x0/0x60 @ 1033, parent: fa00000.mmc
    [  152.624154] leds mmc1::: PM: led_suspend+0x0/0x60 returned 0 after 1 usecs
    [  152.625903] mmcblk mmc1:aaaa: PM: mmc_bus_suspend+0x0/0x80 returned 0 after 1774 usecs
    [  152.625940] sdhci-am654 fa00000.mmc: PM: calling pm_runtime_force_suspend+0x0/0x14c @ 1033, parent: bus@f0000
    [  152.626038] sdhci-am654 fa00000.mmc: PM: pm_runtime_force_suspend+0x0/0x14c returned 0 after 80 usecs
    [  152.626058] regulator regulator.2: PM: calling regulator_suspend+0x0/0x114 @ 1033, parent: regulator-2
    [  152.626072] regulator regulator.2: PM: regulator_suspend+0x0/0x114 returned 0 after 1 usecs
    [  152.626085] reg-fixed-voltage regulator-2: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.626097] reg-fixed-voltage regulator-2: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626119] regulator regulator.1: PM: calling regulator_suspend+0x0/0x114 @ 1033, parent: regulator-3
    [  152.626131] regulator regulator.1: PM: regulator_suspend+0x0/0x114 returned 0 after 0 usecs
    [  152.626129] pca953x 1-0022: PM: calling pca953x_suspend+0x0/0x8c @ 51, parent: i2c-1
    [  152.626144] gpio-regulator regulator-3: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.626150] pca953x 1-0022: PM: pca953x_suspend+0x0/0x8c returned 0 after 4 usecs
    [  152.626155] gpio-regulator regulator-3: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626173] davinci_gpio 601000.gpio: PM: calling davinci_gpio_suspend+0x0/0xcc @ 1033, parent: bus@f0000
    [  152.626188] davinci_gpio 601000.gpio: PM: davinci_gpio_suspend+0x0/0xcc returned 0 after 2 usecs
    [  152.626207] davinci_gpio 600000.gpio: PM: calling davinci_gpio_suspend+0x0/0xcc @ 1033, parent: bus@f0000
    [  152.626222] davinci_gpio 600000.gpio: PM: davinci_gpio_suspend+0x0/0xcc returned 0 after 3 usecs
    [  152.626237] cpufreq-dt cpufreq-dt: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.626247] cpufreq-dt cpufreq-dt: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626262] omap8250 2800000.serial: PM: calling omap8250_suspend+0x0/0x140 @ 1033, parent: bus@f0000
    [  152.626426] omap8250 2800000.serial: PM domain pd:146 will not be powered off
    [  152.626447] omap8250 2800000.serial: PM: omap8250_suspend+0x0/0x140 returned 0 after 169 usecs
    [  152.626546] ti-udma 485c0000.dma-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000:bus@48000000
    [  152.626557] ti-udma 485c0000.dma-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626677] ti-udma 485c0100.dma-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000:bus@48000000
    [  152.626688] ti-udma 485c0100.dma-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626709] ti-sci-inta 48000000.interrupt-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000:bus@48000000
    [  152.626720] ti-sci-inta 48000000.interrupt-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626733] ti-sci-intr bus@f0000:interrupt-controller@a00000: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.626744] ti-sci-intr bus@f0000:interrupt-controller@a00000: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626779] pca953x 1-0023: PM: calling pca953x_suspend+0x0/0x8c @ 51, parent: i2c-1
    [  152.626796] pca953x 1-0023: PM: pca953x_suspend+0x0/0x8c returned 0 after 4 usecs
    [  152.626852] ti-sci-reset 44043000.system-controller:reset-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: 44043000.system-controller
    [  152.626865] ti-sci-reset 44043000.system-controller:reset-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626878] platform e000000.watchdog: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.626888] platform e000000.watchdog: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626901] platform e010000.watchdog: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.626911] platform e010000.watchdog: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626926] platform e020000.watchdog: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.626935] platform e020000.watchdog: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626948] platform e030000.watchdog: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.626958] platform e030000.watchdog: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.626973] ti-sci-clk 44043000.system-controller:clock-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: 44043000.system-controller
    [  152.626984] ti-sci-clk 44043000.system-controller:clock-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627000] ti_sci_pm_domains 44043000.system-controller:power-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: 44043000.system-controller
    [  152.627011] ti_sci_pm_domains 44043000.system-controller:power-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627025] ti-sci 44043000.system-controller: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.627035] ti-sci 44043000.system-controller: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627051] snd-soc-dummy snd-soc-dummy: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627061] snd-soc-dummy snd-soc-dummy: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627076] platform psci-cpuidle: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627086] platform psci-cpuidle: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627098] ti-cpufreq ti-cpufreq: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627108] ti-cpufreq ti-cpufreq: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627129] platform Fixed MDIO bus.0: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627139] platform Fixed MDIO bus.0: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627221] serial8250 serial8250: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627235] serial8250 serial8250: PM: platform_pm_suspend+0x0/0x70 returned 0 after 3 usecs
    [  152.627319] gpio-keys gpio_key: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627333] gpio-keys gpio_key: PM: platform_pm_suspend+0x0/0x70 returned 0 after 3 usecs
    [  152.627581] platform l2-cache0: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627592] platform l2-cache0: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627606] pinctrl-single f4000.pinctrl: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.627656] pinctrl-single f4000.pinctrl: PM: platform_pm_suspend+0x0/0x70 returned 0 after 40 usecs
    [  152.627670] ti-msgmgr 4d000000.mailbox: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000:bus@48000000
    [  152.627706] ti-msgmgr 4d000000.mailbox: PM: platform_pm_suspend+0x0/0x70 returned 0 after 25 usecs
    [  152.627722] simple-pm-bus bus@f0000:bus@48000000: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.627732] simple-pm-bus bus@f0000:bus@48000000: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627746] phy-gmii-sel 104044.phy: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: 100000.bus
    [  152.627757] phy-gmii-sel 104044.phy: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627769] simple-pm-bus 100000.bus: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.627779] simple-pm-bus 100000.bus: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627791] k3-chipinfo 43000014.chipid: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: 43000000.syscon
    [  152.627802] k3-chipinfo 43000014.chipid: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627814] platform 43000000.syscon: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000:bus@b00000
    [  152.627824] platform 43000000.syscon: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627837] simple-pm-bus bus@f0000:bus@b00000: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: bus@f0000
    [  152.627847] simple-pm-bus bus@f0000:bus@b00000: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627916] simple-pm-bus bus@f0000: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627929] simple-pm-bus bus@f0000: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627942] platform timer-cl0-cpu0: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627952] platform timer-cl0-cpu0: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627965] psci-cpuidle-domain firmware:psci: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.627975] psci-cpuidle-domain firmware:psci: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.627991] regulator regulator.0: PM: calling regulator_suspend+0x0/0x114 @ 1033, parent: reg-dummy
    [  152.628003] regulator regulator.0: PM: regulator_suspend+0x0/0x114 returned 0 after 1 usecs
    [  152.628016] reg-dummy reg-dummy: PM: calling platform_pm_suspend+0x0/0x70 @ 1033, parent: platform
    [  152.628026] reg-dummy reg-dummy: PM: platform_pm_suspend+0x0/0x70 returned 0 after 0 usecs
    [  152.628356] ti-udma 485c0000.dma-controller: PM: calling udma_pm_suspend+0x0/0xac @ 1033, parent: bus@f0000:bus@48000000
    [  152.628377] ti-udma 485c0000.dma-controller: PM: udma_pm_suspend+0x0/0xac returned 0 after 6 usecs
    [  152.628465] ti-udma 485c0100.dma-controller: PM: calling udma_pm_suspend+0x0/0xac @ 1033, parent: bus@f0000:bus@48000000
    [  152.628487] ti-udma 485c0100.dma-controller: PM: udma_pm_suspend+0x0/0xac returned 0 after 11 usecs
    [  152.629293] sdhci-am654 fa00000.mmc: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: bus@f0000
    [  152.629364] sdhci-am654 fa00000.mmc: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 50 usecs
    [  152.629396] davinci_gpio 601000.gpio: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: bus@f0000
    [  152.629440] davinci_gpio 601000.gpio: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 31 usecs
    [  152.629457] davinci_gpio 600000.gpio: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: bus@f0000
    [  152.629500] davinci_gpio 600000.gpio: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 31 usecs
    [  152.629516] omap8250 2800000.serial: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: bus@f0000
    [  152.629560] omap8250 2800000.serial: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 32 usecs
    [  152.629678] simple-framebuffer ff700000.framebuffer: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: platform
    [  152.632990] simple-framebuffer ff700000.framebuffer: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 3298 usecs
    [  152.633039] omap_i2c 20010000.i2c: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: bus@f0000
    [  152.633094] omap_i2c 20010000.i2c: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 41 usecs
    [  152.633126] omap_i2c 20000000.i2c: PM: calling genpd_suspend_noirq+0x0/0x20 @ 1033, parent: bus@f0000
    [  152.633138] omap_i2c 20000000.i2c: PM: genpd_suspend_noirq+0x0/0x20 returned 0 after 1 usecs
    [  152.633168] ti-sci 44043000.system-controller: PM: calling ti_sci_suspend+0x0/0xdc @ 1033, parent: bus@f0000
    [  152.633305] ti-sci 44043000.system-controller: PM: ti_sci_suspend+0x0/0xdc returned 0 after 123 usecs
    [  152.633665] Disabling non-boot CPUs ...
    [  152.635580] psci: CPU1 killed (polled 0 ms)
    [  152.638013] psci: CPU2 killed (polled 0 ms)
    [  152.640717] psci: CPU3 killed (polled 4 ms)
    [  152.642148] Enabling non-boot CPUs ...
    [  152.642470] Detected VIPT I-cache on CPU1
    [  152.642538] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [  152.642581] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [  152.643250] CPU1 is up
    [  152.643472] Detected VIPT I-cache on CPU2
    [  152.643509] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [  152.643534] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [  152.644019] CPU2 is up
    [  152.644249] Detected VIPT I-cache on CPU3
    [  152.644290] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [  152.644319] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [  152.644861] CPU3 is up
    [  152.644959] phy-gmii-sel 104044.phy: PM: calling phy_gmii_sel_resume_noirq+0x0/0xcc @ 1033, parent: 100000.bus
    [  152.644987] phy-gmii-sel 104044.phy: PM: phy_gmii_sel_resume_noirq+0x0/0xcc returned 0 after 1 usecs
    [  152.645145] ti-sci 44043000.system-controller: PM: calling ti_sci_resume+0x0/0xac @ 1033, parent: bus@f0000
    [  152.645229] ti-sci 44043000.system-controller: ti_sci_resume: wakeup source: 0x80
    [  152.645236] ti-sci 44043000.system-controller: PM: ti_sci_resume+0x0/0xac returned 0 after 76 usecs
    [  152.645263] omap_i2c 20000000.i2c: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: bus@f0000
    [  152.645313] omap_i2c 20000000.i2c: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 36 usecs
    [  152.645340] omap_i2c 20010000.i2c: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: bus@f0000
    [  152.645384] omap_i2c 20010000.i2c: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 32 usecs
    [  152.645411] simple-framebuffer ff700000.framebuffer: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: platform
    [  152.645475] simple-framebuffer ff700000.framebuffer: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 52 usecs
    [  152.645551] omap8250 2800000.serial: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: bus@f0000
    [  152.645593] omap8250 2800000.serial: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 31 usecs
    [  152.645610] davinci_gpio 600000.gpio: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: bus@f0000
    [  152.645653] davinci_gpio 600000.gpio: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 32 usecs
    [  152.645668] davinci_gpio 601000.gpio: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: bus@f0000
    [  152.645711] davinci_gpio 601000.gpio: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 31 usecs
    [  152.645756] sdhci-am654 fa00000.mmc: PM: calling genpd_resume_noirq+0x0/0xe0 @ 1033, parent: bus@f0000
    [  152.645812] sdhci-am654 fa00000.mmc: PM: genpd_resume_noirq+0x0/0xe0 returned 0 after 42 usecs
    [  152.646405] ti-udma 485c0100.dma-controller: PM: calling udma_pm_resume+0x0/0xb4 @ 1033, parent: bus@f0000:bus@48000000
    [  152.646432] ti-udma 485c0100.dma-controller: PM: udma_pm_resume+0x0/0xb4 returned 0 after 8 usecs
    [  152.646484] ti-udma 485c0000.dma-controller: PM: calling udma_pm_resume+0x0/0xb4 @ 1033, parent: bus@f0000:bus@48000000
    [  152.646501] ti-udma 485c0000.dma-controller: PM: udma_pm_resume+0x0/0xb4 returned 0 after 6 usecs
    [  152.646663] reg-dummy reg-dummy: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.646677] reg-dummy reg-dummy: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646688] regulator regulator.0: PM: calling regulator_resume+0x0/0x180 @ 1033, parent: reg-dummy
    [  152.646700] regulator regulator.0: PM: regulator_resume+0x0/0x180 returned 0 after 1 usecs
    [  152.646712] psci-cpuidle-domain firmware:psci: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.646722] psci-cpuidle-domain firmware:psci: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646733] platform timer-cl0-cpu0: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.646741] platform timer-cl0-cpu0: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646752] simple-pm-bus bus@f0000: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.646761] simple-pm-bus bus@f0000: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646771] simple-pm-bus bus@f0000:bus@b00000: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.646781] simple-pm-bus bus@f0000:bus@b00000: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646791] platform 43000000.syscon: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000:bus@b00000
    [  152.646800] platform 43000000.syscon: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646811] k3-chipinfo 43000014.chipid: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: 43000000.syscon
    [  152.646820] k3-chipinfo 43000014.chipid: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646830] simple-pm-bus 100000.bus: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.646839] simple-pm-bus 100000.bus: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646850] phy-gmii-sel 104044.phy: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: 100000.bus
    [  152.646859] phy-gmii-sel 104044.phy: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646869] simple-pm-bus bus@f0000:bus@48000000: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.646878] simple-pm-bus bus@f0000:bus@48000000: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.646889] ti-msgmgr 4d000000.mailbox: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000:bus@48000000
    [  152.646921] ti-msgmgr 4d000000.mailbox: PM: platform_pm_resume+0x0/0x6c returned 0 after 22 usecs
    [  152.646932] pinctrl-single f4000.pinctrl: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.646980] pinctrl-single f4000.pinctrl: PM: platform_pm_resume+0x0/0x6c returned 0 after 38 usecs
    [  152.646990] platform l2-cache0: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.646999] platform l2-cache0: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647075] gpio-keys gpio_key: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.647090] gpio-keys gpio_key: PM: platform_pm_resume+0x0/0x6c returned 0 after 5 usecs
    [  152.647122] serial8250 serial8250: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.647134] serial8250 serial8250: PM: platform_pm_resume+0x0/0x6c returned 0 after 2 usecs
    [  152.647165] platform Fixed MDIO bus.0: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.647174] platform Fixed MDIO bus.0: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647187] ti-cpufreq ti-cpufreq: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.647196] ti-cpufreq ti-cpufreq: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647207] platform psci-cpuidle: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.647216] platform psci-cpuidle: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647227] snd-soc-dummy snd-soc-dummy: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.647237] snd-soc-dummy snd-soc-dummy: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647248] ti-sci 44043000.system-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.647258] ti-sci 44043000.system-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647268] ti_sci_pm_domains 44043000.system-controller:power-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: 44043000.system-controller
    [  152.647279] ti_sci_pm_domains 44043000.system-controller:power-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647290] ti-sci-clk 44043000.system-controller:clock-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: 44043000.system-controller
    [  152.647300] ti-sci-clk 44043000.system-controller:clock-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647311] platform e030000.watchdog: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.647320] platform e030000.watchdog: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647330] platform e020000.watchdog: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.647340] platform e020000.watchdog: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647350] platform e010000.watchdog: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.647359] platform e010000.watchdog: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647370] platform e000000.watchdog: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.647379] platform e000000.watchdog: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647390] ti-sci-reset 44043000.system-controller:reset-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: 44043000.system-controller
    [  152.647400] ti-sci-reset 44043000.system-controller:reset-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647424] ti-sci-intr bus@f0000:interrupt-controller@a00000: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000
    [  152.647434] ti-sci-intr bus@f0000:interrupt-controller@a00000: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647430] pca953x 1-0023: PM: calling pca953x_resume+0x0/0x224 @ 51, parent: i2c-1
    [  152.647445] ti-sci-inta 48000000.interrupt-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000:bus@48000000
    [  152.647456] ti-sci-inta 48000000.interrupt-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647468] ti-udma 485c0100.dma-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000:bus@48000000
    [  152.647478] ti-udma 485c0100.dma-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647558] ti-udma 485c0000.dma-controller: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000:bus@48000000
    [  152.647568] ti-udma 485c0000.dma-controller: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.647602] omap8250 2800000.serial: PM: calling omap8250_resume+0x0/0x84 @ 1033, parent: bus@f0000
    [  152.648024] omap8250 2800000.serial: PM: omap8250_resume+0x0/0x84 returned 0 after 406 usecs
    [  152.648050] cpufreq-dt cpufreq-dt: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.648062] cpufreq-dt cpufreq-dt: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.648074] davinci_gpio 600000.gpio: PM: calling davinci_gpio_resume+0x0/0xc0 @ 1033, parent: bus@f0000
    [  152.648090] davinci_gpio 600000.gpio: PM: davinci_gpio_resume+0x0/0xc0 returned 0 after 4 usecs
    [  152.648105] davinci_gpio 601000.gpio: PM: calling davinci_gpio_resume+0x0/0xc0 @ 1033, parent: bus@f0000
    [  152.648118] davinci_gpio 601000.gpio: PM: davinci_gpio_resume+0x0/0xc0 returned 0 after 2 usecs
    [  152.648132] gpio-regulator regulator-3: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.648142] gpio-regulator regulator-3: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.648153] regulator regulator.1: PM: calling regulator_resume+0x0/0x180 @ 1033, parent: regulator-3
    [  152.648166] regulator regulator.1: PM: regulator_resume+0x0/0x180 returned 0 after 1 usecs
    [  152.648193] pca953x 1-0022: PM: calling pca953x_resume+0x0/0x224 @ 1014, parent: i2c-1
    [  152.649502] pca953x 1-0023: PM: pca953x_resume+0x0/0x224 returned 0 after 2053 usecs
    [  152.651120] pca953x 1-0022: PM: pca953x_resume+0x0/0x224 returned 0 after 2912 usecs
    [  152.651142] reg-fixed-voltage regulator-2: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.651154] reg-fixed-voltage regulator-2: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.651165] regulator regulator.2: PM: calling regulator_resume+0x0/0x180 @ 1033, parent: regulator-2
    [  152.651176] regulator regulator.2: PM: regulator_resume+0x0/0x180 returned 0 after 0 usecs
    [  152.651190] sdhci-am654 fa00000.mmc: PM: calling pm_runtime_force_resume+0x0/0x104 @ 1033, parent: bus@f0000
    [  152.651323] sdhci-am654 fa00000.mmc: PM: pm_runtime_force_resume+0x0/0x104 returned 0 after 118 usecs
    [  152.651339] leds mmc1::: PM: calling led_resume+0x0/0x70 @ 1033, parent: fa00000.mmc
    [  152.651355] leds mmc1::: PM: led_resume+0x0/0x70 returned 0 after 0 usecs
    [  152.651374] input input0: PM: calling input_dev_resume+0x0/0x50 @ 1033, parent: gpio_key
    [  152.651387] input input0: PM: input_dev_resume+0x0/0x50 returned 0 after 0 usecs
    [  152.651405] mmcblk mmc1:aaaa: PM: calling mmc_bus_resume+0x0/0x70 @ 1014, parent: mmc1
    [  152.651423] platform 2b300050.target-module: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: bus@f0000:bus@b00000
    [  152.651430] mmcblk mmc1:aaaa: PM: mmc_bus_resume+0x0/0x70 returned 0 after 11 usecs
    [  152.651433] platform 2b300050.target-module: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  152.651444] platform mcu_gpio_key: PM: calling platform_pm_resume+0x0/0x6c @ 1033, parent: platform
    [  152.651453] platform mcu_gpio_key: PM: platform_pm_resume+0x0/0x6c returned 0 after 0 usecs
    [  154.931058] OOM killer enabled.
    [  154.934200] Restarting tasks ... done.
    [  154.939454] random: crng reseeded on system resumption
    root@am62pxx-evm:~# [  154.947981] PM: suspend exit
    

    Each module will measure it own individual wakeup latency (measured in microseconds), but there is no cumulative latency. This is useful tool when optimizing wakeup latency.