Hi Keerthy, On 26 July 2018 at 14:58, J, KEERTHY <j-keerthy@xxxxxx> wrote: > > > On 7/26/2018 8:04 AM, Baolin Wang wrote: >> >> Hi, >> >> On 26 July 2018 at 09:59, Baolin Wang <baolin.wang@xxxxxxxxxx> wrote: >>> >>> Hi, >>> >>> On 26 July 2018 at 06:01, Dave Gerlach <d-gerlach@xxxxxx> wrote: >>>> >>>> Hi, >>>> On 07/25/2018 08:10 AM, Keerthy wrote: >>>>> >>>>> Hi Baolin, >>>>> >>>>> commit 39232ed5a1793f67b11430c43ed8a9ed6e96c6eb >>>>> Author: Baolin Wang <baolin.wang@xxxxxxxxxx> >>>>> Date: Tue Jul 17 15:55:16 2018 +0800 >>>>> >>>>> time: Introduce one suspend clocksource to compensate the suspend time >>>>> >>>>> This patch seems to have broken suspend to memory on AM437x-gp-evm on >>>>> linux-next. 4.18-rc6 works well linux-next has this broken on >>>>> am437x-gp-evm and i could bisect to the above patch. >>> >>> >>> Could you point out which clocksource (or clocksource driver) is used >>> on AM437x-gp-evm? >>> If you have one non-stop clocksource, maybe you have suspended it when >>> system suepends, but we should not. >>> I am not sure what is the problem with your AM437x-gp-evm board, but I >>> will help to look at your clocksource driver to find the reason. >> >> >> I did a little investigation, you will use "arm_global_timer" as the >> clocksource for timekeeping, right? >> But "arm_global_timer" is not a non-stop clocksource, so that means >> you will not compensate the suspend time from non-stop clocksource. >> Or you have another non-stop clocksource on this board that I missed? >> (Sorry, I am not familiar with AM437x-gp-evm) > > > Baolin, > > For AM437X we are using gptimer1 as clocksource which is in always-on OK, I found it in time-pistachio.c file. > domain. We do idle that during suspend and enable it back during resume. > I tried removing suspend/resume hooks but that did not help either. I did not see the gptimer supplies suspend/resume interfaces, but it supplies enable/disable interfaces. That means if the non-stop gptimer is selected as the suspend clocksource (not the current clocksource for timekeeping), it will be enabled when system suspends and disabled when system resumes to save power. But if the non-stop gptimer is also the current clocksource for timekeeping, it will not be disabled when system resumes. So in your system gptimer1 is selected as the clocksource for timekeeping or not? > > Dave, > > Feel free to add more details. > > - Keerthy > > >> >>>> I was able to capture the following using no_console_suspend: >>>> >>>> root@am437x-evm:~# echo no > >>>> /sys/module/printk/parameters/console_suspend >>>> root@am437x-evm:~# echo mem > /sys/power/state >>>> [ 225.177180] PM: suspend entry (deep) >>>> [ 225.182069] PM: Syncing filesystems ... done. >>>> [ 225.230947] Freezing user space processes ... (elapsed 0.005 seconds) >>>> done. >>>> [ 225.245154] OOM killer disabled. >>>> [ 225.248592] Freezing remaining freezable tasks ... (elapsed 0.002 >>>> seconds) done. >>>> [ 225.609865] Disabling non-boot CPUs ... >>>> [ 225.614573] Unhandled fault: imprecise external abort (0x1406) at >>>> 0xf4517000 >>>> [ 225.614573] pgd = 9592fa65 >>>> [ 225.614573] [f4517000] *pgd=ad3cf811, *pte=fe24124f, *ppte=fe24101f >>>> [ 225.614573] Internal error: : 1406 [#1] SMP ARM >>>> [ 225.614573] Modules linked in: xhci_plat_hcd omapdrm xhci_hcd >>>> drm_kms_helper >>>> cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt fb_sys_fops >>>> usbcore >>>> cfbcopyarea drm joydev evdev mousedev dwc3 drm_panel_orientation_quirks >>>> udc_core u4 >>>> [ 225.614573] CPU: 0 PID: 695 Comm: sh Not tainted >>>> 4.18.0-rc6-next-20180725 #1 >>>> [ 225.614573] Hardware name: Generic AM43 (Flattened Device Tree) >>>> [ 225.614573] PC is at timekeeping_update+0x0/0x160 >>>> [ 225.614573] LR is at timekeeping_suspend+0xb8/0x32c >>>> [ 225.614573] pc : [<c01d77f8>] lr : [<c01d9320>] psr: 600f0093 >>>> [ 225.614573] sp : ed67fd60 ip : 00000006 fp : c0601190 >>>> [ 225.614573] r10: c0e08974 r9 : c0ec2168 r8 : c0ec571c >>>> [ 225.614573] r7 : c15e5600 r6 : c15e58a0 r5 : c15e5880 r4 : >>>> c15e5600 >>>> [ 225.614573] r3 : 00000000 r2 : 42bef1ea r1 : 00000002 r0 : >>>> c15e5658 >>>> [ 225.614573] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM >>>> Segment none >>>> [ 225.614573] Control: 10c5387d Table: ad4dc059 DAC: 00000051 >>>> [ 225.614573] Process sh (pid: 695, stack limit = 0x9a606816) >>>> [ 225.614573] Stack: (0xed67fd60 to 0xed680000) >>>> [ 225.614573] fd60: 00000001 00000000 c0601190 c0e08974 00000004 >>>> cbf72c59 >>>> c15e6348 600f0093 >>>> [ 225.614573] fd80: eedc5640 c0e08948 eedc56a0 c0ec28c4 c0e08974 >>>> c0e08974 >>>> 200f0093 c0903440 >>>> [ 225.614573] fda0: 00000001 c15e6348 c0e08948 c01d47a8 200f0093 >>>> cbf72c59 >>>> c15e6348 00000000 >>>> [ 225.614573] fdc0: c0ec57a0 cbf72c59 c0ec571c c0e47428 c0e9b1dc >>>> c0ec57a0 >>>> c0ec2bbc c0ec571c >>>> [ 225.614573] fde0: c0ec2168 c0e08974 00000001 c0601190 c0e08a80 >>>> c013dc70 >>>> 00000000 c15d1e14 >>>> [ 225.614573] fe00: c15d1e14 00000000 c0e08940 c15d1df8 00000003 >>>> c0e08948 >>>> c0ec2bbc c01aa108 >>>> [ 225.614573] fe20: c0ec55d4 c15d1e14 c0a0502c c01aeff4 c0bb083c >>>> ed67fe54 >>>> 00000000 cbf72c59 >>>> [ 225.614573] fe40: c0ec12fb c0e08948 00000003 c0ec12fb c0e08974 >>>> 00000000 >>>> c0bc1038 c0ec12fb >>>> [ 225.614573] fe60: c0a0502c c01ab0f0 c0bc1024 00000000 00000006 >>>> cbf72c59 >>>> 006000c0 00000003 >>>> [ 225.614573] fe80: c0bb9dbc 00000003 c15d1e34 00000004 ed209a40 >>>> 00000000 >>>> 00000000 c01a8e34 >>>> [ 225.614573] fea0: 00000000 00000004 ed4b39c0 ed209a40 ed4b39d0 >>>> ed67ff80 >>>> 00000000 c036f254 >>>> [ 225.614573] fec0: 00000000 00000000 00000000 ed653080 c0e08948 >>>> cbf72c59 >>>> ed653080 00000004 >>>> [ 225.614573] fee0: ed67e000 00000004 00000000 c02dea6c 00000000 >>>> 600e0013 >>>> ee7b39fc 00000009 >>>> [ 225.614573] ff00: c02dedd0 c019e290 c0e87a74 ee7b39fc ee7b39fc >>>> c01bdf8c >>>> c0ec1316 c01be488 >>>> [ 225.614573] ff20: 00000000 ee7b3a8c ee7b39fc c02e0ee0 00000001 >>>> 00000000 >>>> c02dedd0 cbf72c59 >>>> [ 225.614573] ff40: 00000000 00000004 b6f16000 ed67ff80 ed653080 >>>> 00000004 >>>> ed67e000 c02ded10 >>>> [ 225.614573] ff60: ed67ffb0 00000004 ed653080 ed653080 c0e08948 >>>> b6f16000 >>>> 00000004 c02def28 >>>> [ 225.614573] ff80: 00000000 00000000 00000006 cbf72c59 00000004 >>>> b6f16000 >>>> b6eadd60 00000004 >>>> [ 225.614573] ffa0: c01011c4 c01011a0 00000004 b6f16000 00000001 >>>> b6f16000 >>>> 00000004 00000000 >>>> [ 225.614573] ffc0: 00000004 b6f16000 b6eadd60 00000004 00000000 >>>> 000a8e44 >>>> 00000001 00000000 >>>> [ 225.614573] ffe0: 00000000 bee549f4 b6e11df3 b6e4d556 400e0030 >>>> 00000001 >>>> 00000000 00000000 >>>> [ 225.614573] [<c01d77f8>] (timekeeping_update) from [<600f0093>] >>>> (0x600f0093) >>>> [ 225.614573] Code: e5933004 e5812000 e5813004 e8bd8070 (e3110001) >>>> [ 225.614573] ---[ end trace f3de49703b3fa3f3 ]--- >>>> >>>> Perhaps we are now poking the clocksource while it is powered off? >>>> >>>> Regards, >>>> Dave >>> >>> >>> >>> >>> -- >>> Baolin Wang >>> Best Regards >> >> >> >> > -- Baolin Wang Best Regards -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html