Re: Suspend broken on linux-next on am437x-gp-evm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux