Re: [Bisected Regression in 2.6.35] A full tmpfs filesystem causeshibernationto hang

From: KOSAKI Motohiro
Date: Sun Aug 29 2010 - 22:28:18 EST


> On 26/08/10 11:09 AM, KOSAKI Motohiro wrote:
> >> If there is anything I can do to debug this problem please let me
> >> know.
> >
> > Vefa, your above log is very useful. really thanks.
> > So, I'm convinced two things.
> > - my patch is purely unrelated.
> > - how to fix your issue.
> >
> > Can you please try attached patch? I bet this can solve your issue.
> >
> > Thanks for your patience.
>
> Hello!
>
> First of all, thanks a lot for your help - I really appreciate it.
>
> I applied your new patches on top of your old patches. Hopefully that
> was okay.
>
> Unfortunately, it didn't work this time. Here's a sample output from the
> new patch.
>
> === 8< ===
> [58.050208] PM: Preallocating image memory...
> [58.159881] shrink_all_memory start
> [58.232411] PM: shrink memory: pass=1, req:312373 reclaimed:15864 free:358420
> [58.342041] PM: shrink memory: pass=2, req:296509 reclaimed:21837 free:362167
> [60.690035] PM: shrink memory: pass=3, req:274672 reclaimed:25982 free:348006
> [61.754931] PM: shrink memory: pass=4, req:248690 reclaimed:49623 free:371589
> [64.361714] PM: shrink memory: pass=5, req:199067 reclaimed:74683 free:396695
> [64.361769] shrink_all_memory: req:124384 reclaimed:74683 free:396695
> === >8 ===
>
> The interesting thing is that even though there is a lot of free memory at the
> end, it still hangs.

Grr. I'm surprised this result ;-)
shrink_all_memory() finish to shrink memory successfully. but your
system still hang immediately after. I have no idea why this mysterious
occur.

I prepared next debugging patch. It added prenty debug printk. I hope
it enlighten up which path makes system hang-up.

1. apply my new patch

2. Enable following PM debug option in Kconfig

[*] Power Management support
[*] Power Management Debug Support
[*] Extra PM attributes in sysfs for low-level debugging/testing
[*] Verbose Power Management debugging

3. append following kernel boot option into grub configration file

no_console_suspend=1

3. kernel build and reboot
4. some prepare
# echo 8 > /proc/sysrq-trigger
# cd /sys/power
# echo 1 > pm_trace
# echo 0 > pm_async

5. run your test program


> I also included the timestamps; note the one and two second
> delays between the passes.

This is expected result because tmpfs shrink need swap-out. then
we need i/o time.

>
> Please let me know if there is anything I can do.

Please send me your .config and full dmesg.


Thanks many and many help us!

Attachment: 0001-debug-messages.patch
Description: Binary data