Re: fix for dmesg crash dump from TOI on resume...

Oleksandr Natalenko <[email protected]> Fri, 29 Nov 2013 17:45:15 +0200
Newsgroups gmane.linux.swsusp.devel
Message-ID <6027431.sx7vbcTtJB@spock>
Unfortunately, this patch breaks hibernation for me causing "No image found" 
error right after starting hibernating process.

On Friday 29 November 2013 08:42:03 Woody Suwalski wrote:
> Nigel, if there is no TOI hibernation image, currently TOI will produce
> a stack trace:
> /...
> [101058.105322] PM: Starting manual resume from disk
> [101058.118616] Restarting tasks ...
> [101058.118736] ------------[ cut here ]------------
> [101058.118770] WARNING: CPU: 0 PID: 15027 at kernel/power/process.c:199
> thaw_processes+0xff/0x110()
> [101058.118780] Modules linked in: isofs nls_iso8859_1 nls_cp850 vfat
> fat sg usb_storage snd_pcm_oss snd_mixer_oss cpufreq_conservative
> cpufreq_powersave cpufreq_ondemand cpufreq_stats coretemp speedstep_lib
> uvcvideo hid_generic videobuf2_vmalloc videobuf2_memops videobuf2_core
> videodev media usbhid snd_hda_codec_realtek arc4 ath5k snd_hda_intel ath
> mac80211 snd_hda_codec cfg80211 snd_hwdep rfkill ehci_pci snd_pcm
> uhci_hcd snd_page_alloc snd_timer snd lpc_ich mfd_core ehci_hcd
> acpi_cpufreq soundcore usbcore usb_common atl1e rng_core thermal processor
> [101058.118922] CPU: 0 PID: 15027 Comm: cat Tainted: G        W
> 3.12-pingu #1
> [101058.118927] Hardware name: ASUSTeK Computer INC. 900HA/900HA, BIOS
> 0001    09/09/2008
> [101058.118931]  00000009 c1666b1a 00000000 c1038f05 c18b19a8 00000000
> 00003ab3 c18b0544
> [101058.118942]  000000c7 c1079c2f c1079c2f f6689b90 c1964880 f668b720
> c169052c c1038f4b
> [101058.118953]  00000009 00000000 c1079c2f c18b052e c1964990 00000000
> 00000000 00000000
> [101058.118964] Call Trace:
> [101058.118976]  [<c1666b1a>] ? dump_stack+0x48/0x6f
> [101058.118985]  [<c1038f05>] ? warn_slowpath_common+0x85/0xb0
> [101058.118993]  [<c1079c2f>] ? thaw_processes+0xff/0x110
> [101058.119000]  [<c1079c2f>] ? thaw_processes+0xff/0x110
> [101058.119007]  [<c1038f4b>] ? warn_slowpath_null+0x1b/0x20
> [101058.119014]  [<c1079c2f>] ? thaw_processes+0xff/0x110
> [101058.119022]  [<c106a273>] ? do_cleanup+0xc3/0x2b0
> [101058.119029]  [<c106ce6e>] ? toi_stop_other_threads+0x5e/0x70
> [101058.119037]  [<c106b1ce>] ? toi_try_resume+0x3e/0x80
> [101058.119044]  [<c106b235>] ? toi_sys_power_disk_try_resume+0x25/0x40
> [101058.119051]  [<c1068d99>] ? try_tuxonice_resume+0x19/0x60
> [101058.119059]  [<c107b095>] ? software_resume+0x15/0x260
> [101058.119066]  [<c107b382>] ? resume_store+0xa2/0xb0
> [101058.119074]  [<c107b2e0>] ? software_resume+0x260/0x260
> [101058.119082]  [<c12a10ab>] ? kobj_attr_store+0x1b/0x30
> [101058.119090]  [<c114279b>] ? sysfs_write_file+0x9b/0x100
> [101058.119097]  [<c1142700>] ? sysfs_open_file+0x1d0/0x1d0
> [101058.119104]  [<c10ef66d>] ? vfs_write+0x9d/0x1a0
> [101058.119112]  [<c10efab7>] ? SyS_write+0x57/0xa0
> [101058.119119]  [<c166c74c>] ? syscall_call+0x7/0xb
> [101058.119125] ---[ end trace f8c80e7bc70a06e7 ]---
> [101058.119132] done.
> [101058.137404] PM: Syncing filesystems ... done.
> 
> There seems to be no big side effects, just the dmesg log...
> 
> The problem is in the toi_bio_core code, where it knows to avoid resume
> attempt if check for hibernation image returns -1 == no signature,
> however still tries when it is 0 == no image found.
> 
> Here is a simple patch to fix that logic (also attached to prevent
> format mangling):
> --- a/kernel/power/tuxonice_bio_core.c    2013-11-28 22:33:39.000000000
> -0500
> +++ b/kernel/power/tuxonice_bio_core.c    2013-11-28 23:03:32.000000000
> -0500
> @@ -1706,7 +1706,7 @@ static int toi_bio_parse_sig_location(ch
> 
>       signature_found = toi_bio_image_exists(quiet);
> 
> -    if (signature_found != -1) {
> +    if ( signature_found > 0 ) {
>           result = 0;
>           /*
>            * TODO: If only file storage, CAN_HIBERNATE should only be
> @@ -1714,11 +1714,11 @@ static int toi_bio_parse_sig_location(ch
>            */
>           set_toi_state(TOI_CAN_HIBERNATE);
>           set_toi_state(TOI_CAN_RESUME);
> -    } else
> +    } else if (signature_found < 0 ) {
>           if (!quiet)
>               printk(KERN_ERR "TuxOnIce: Block I/O: No "
>                   "signature found at %s.\n", devstart);
> -
> +    }
>       return result;
>   }
> 
> Thanks for your time in this project and wish you more job satisfaction
> in the next year 8-)
> 
> Woody Suwalski
> Ottawa
-- 
Oleksandr post-factum Natalenko, MSc
pf-kernel community
https://natalenko.name/

_______________________________________________
TuxOnIce-devel mailing list
[email protected]
http://lists.tuxonice.net/listinfo/tuxonice-devel
signature.asc (application/pgp-signature, 230 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iF4EABEIAAYFAlKYtpIACgkQj0K5Zbh/jjOXIwD/TjwacrNFGRp+V1mBsjxmSOvD
yXRAsFuNec0ipzLlKvkA/0ZxOGRyDW5KGmf/H3gHeG4MLZwT2x0FMqxR77I2jDnq
=Xe7C
-----END PGP SIGNATURE-----