lkml.org 
[lkml]   [2018]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: arm64: pstore: printk causing hang during boot in __memcpy_toio with pstore enabled
    On Wed, Aug 1, 2018 at 10:55 PM, Guenter Roeck <linux@roeck-us.net> wrote:
    > On Wed, Aug 01, 2018 at 10:46:06PM +0530, Ivid Suvarna wrote:
    >> On Wed, Aug 1, 2018 at 6:49 PM, Guenter Roeck <linux@roeck-us.net> wrote:
    >> > On 08/01/2018 05:35 AM, Ivid Suvarna wrote:
    >> >>
    >> >> Hi,
    >> >>
    >> >> When pstore is enabled and a *pr_info(any printk) in
    >> >> __memcpy_toio(arch/arm64/kernel/io.c)* is added, kernel wont boot and
    >> >> just hangs.
    >> >>
    >> >> The path where __memcpy_toio is called is below:
    >> >>
    >> >> ->persistent_ram_update
    >> >> -> memcpy_toio
    >> >> -> __memcpy_toio
    >> >>
    >> >> I tried with trace_printk and kernel boots fine. I understand that
    >> >> printk has overhead, but is this expected when we use some printk
    >> >> statement in __memcpy_toio?
    >> >>
    >> >
    >> > I think the problem may be that the printk() output is copied to pstore.
    >> > Since pstore calls memcpy_toio(), you get a nice recursion if you add a
    >> > printk() call to it.
    >> >
    >>
    >> Is there any solution to this other than not adding printk :p
    >
    > Well, disabling pstore would help. You could also use a trace function,
    > as you already found out, or you could use gdb for debugging. Since
    > this is obviously a debug image, you should be willing to accept some
    > limitations/restrictions.
    >

    Ok. But trace_printk output is available only after boot, so to debug
    any boot issues,
    it may not be helpful. And gdb for kernel debugging? Maybe u meant kgdb?

    Let me check if this issue is only for pstore path or not.

    \
     
     \ /
      Last update: 2018-08-01 19:52    [W:5.090 / U:1.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site