Re: arm64: pstore: printk causing hang during boot in __memcpy_toio with pstore enabled

From: Ivid Suvarna
Date: Wed Aug 01 2018 - 13:16:10 EST


On Wed, Aug 1, 2018 at 6:49 PM, Guenter Roeck <linux@xxxxxxxxxxxx> 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