Re: Kernel panic on Lenovo X60 with tracing enabled

From: Steven Rostedt
Date: Thu Mar 09 2017 - 09:46:42 EST


On Thu, 9 Mar 2017 13:12:28 +0100
Paul Menzel <pmenzel@xxxxxxxxxxxxx> wrote:

> Dear Steven, dear Ingo,
>
>
> Hopefully, I am contacting the right people for my issue.
>
> Suspending a system with Linux 4.9.13 with tracing enabled, it fails
> with the screen still enabled, and the LED blinking. Attaching a serial
> console to the dock, shows the messages below.

I'm betting this is a compiler bug, as that bug that printed is the
internal ftrace check for it. (note the bug is only in x86-32 not
x86-64)

Funny, we are just talking about this bug in another thread, but with a
different symptom.

Josh, did you say this goes away if you disable optimize for size or
does it need to be enabled?

-- Steve


>
> > [â]
> > [ 59.063238] PM: Syncing filesystems ... done.
> > [ 59.197490] Freezing user space processes ... (elapsed 0.002 seconds) done.
> > [ 59.207510] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
> > [ 59.234169] sd 2:0:0:0: [sda] Synchronizing SCSI cache
> > [ 59.240355] sd 2:0:0:0: [sda] Stopping disk
> > [ 59.250859] ------------[ cut here ]------------
> > [ 59.255562] WARNING: CPU: 0 PID: 774 at /build/linux-ROBWaj/linux-4.9.13/kernel/trace/trace_functions_graph.c:233 ftrace_return_to_handler+0x1aa/0x1e0
> > [ 59.269228] Bad frame pointer: expected f6919d98, received f6919db0
> > [ 59.269228] from func acpi_pm_device_sleep_wake return to c43b6f9d
> > [ 59.281993] Modules linked in: cpufreq_powersave(E) cpufreq_conservative(E) cpufreq_userspace(E) iTCO_wdt(E) arc4(E) iTCO_vendor_support(E) coretemp(E) pcmcia(E) kvm_intel(E) iwl3945(E) kvm(E) iwlegacy(E) mac80211(E) irqbypass(E) i915(E) lpc_ich(E) mfd_core(E) evdev(E) yenta_socket(E) serio_raw(E) snd_hda_codec_analog(E) pcmcia_rsrc(E) cfg80211(E) snd_hda_codec_generic(E) pcmcia_core(E) thinkpad_acpi(E) rng_core(E) snd_hda_intel(E) nvram(E) drm_kms_helper(E) rfkill(E) snd_hda_codec(E) battery(E) snd_hda_core(E) snd_hwdep(E) drm(E) snd_pcm(E) snd_timer(E) snd(E) soundcore(E) video(E) i2c_algo_bit(E) shpchp(E) ac(E) acpi_cpufreq(E) tpm_tis(E) button(E) tpm_tis_core(E) tpm(E) fuse(E) parport_pc(E) ppdev(E) lp(E) parport(E) autofs4(E) ext4(E) crc16(E) jbd2(E) fscrypto(E) mbcache(E) ecb(E) cbc(E) algif_skcipher(E) af_alg(E) dm_crypt(E) dm_mod(E) sr_mod(E) cdrom(E) sg(E) sd_mod(E) ata_generic(E) ehci_pci(E) uhci_hcd(E) ehci_hcd(E) ata_piix(E) ahci(E) libahci(E) firewire_ohci(E) sdhci_pci(E) psmouse(E) e1000e(E) libata(E) usbcore(E) i2c_i801(E) i2c_smbus(E) firewire_core(E) crc_itu_t(E) sdhci(E) mmc_core(E) ptp(E) scsi_mod(E) usb_common(E) pps_core(E) thermal(E)
> > [ 59.388749] CPU: 0 PID: 774 Comm: analyze_suspend Tainted: G E 4.9.0-0.bpo.2-686-pae #1 Debian 4.9.13-1~bpo8+1
> > [ 59.392532] Hardware name: LENOVO 636338U/636338U, BIOS CBET4000 4.5-1169-g7129ccb 03/09/2017
> > [ 59.392532] f6919d28 c42ee6ec f6919d3c 00000000 c4067c0a c469d538 f6919d5c 00000306
> > [ 59.392532] c469d4f0 000000e9 c412e95a 000000e9 00000009 c412e95a c4164039 c43b6f9d
> > [ 59.392532] 00000002 f6919d48 c4067c76 00000009 00000000 f6919d3c c469d538 f6919d5c
> > [ 59.392532] Call Trace:
> > [ 59.392532] [<c42ee6ec>] ? dump_stack+0x55/0x79
> > [ 59.392532] [<c4067c0a>] ? __warn+0xea/0x110
> > [ 59.392532] [<c412e95a>] ? ftrace_return_to_handler+0x1aa/0x1e0
> > [ 59.392532] [<c412e95a>] ? ftrace_return_to_handler+0x1aa/0x1e0
> > [ 59.392532] [<c4164039>] ? cgroup_threadgroup_change_end.isra.39+0x1e/0x1e
> > [ 59.392532] [<c43b6f9d>] ? pnpacpi_suspend+0x5d/0xe0
> > [ 59.392532] [<c4067c76>] ? warn_slowpath_fmt+0x46/0x60
> > [ 59.392532] [<c412e95a>] ? ftrace_return_to_handler+0x1aa/0x1e0
> > [ 59.392532] [<c43804a0>] ? acpi_pm_device_sleep_wake+0x14/0xa8
> > [ 59.392532] [<c43b6f9d>] ? pnpacpi_suspend+0x5d/0xe0
> > [ 59.392532] [<c43b6f9d>] ? pnpacpi_suspend+0x5d/0xe0
> > [ 59.392532] [<c459c542>] ? return_to_handler+0x9/0xf
> > [ 59.392532] [<c459c539>] ? ftrace_graph_caller+0x19/0x19
> > [ 59.392532] [<c43b2e12>] ? pnp_bus_suspend+0x12/0x20
> > [ 59.392532] [<c459c539>] ? ftrace_graph_caller+0x19/0x19
> > [ 59.392532] [<c4427c66>] ? dpm_run_callback+0x46/0x120
> > [ 59.392532] [<c43b2e00>] ? pnp_bus_freeze+0x20/0x20
> > [ 59.392532] [<c459c539>] ? ftrace_graph_caller+0x19/0x19
> > [ 59.392532] [<c4428659>] ? __device_suspend+0xe9/0x2a0
> > [ 59.392532] [<c4429d08>] ? dpm_suspend+0xf8/0x290
> > [â]
>
> The full log from the suspend is attached.
>
> The tracing is enabled by the script `analyze_suspend.py` [1], which I
> call like below.
>
> ```
> $ sudo ./analyze_suspend.py -config config/suspend-callgraph.cfg \
> -filter i915
> ```
>
> Suspend and resume with tracing enabled works fine.
>
> Please tell me, if you need anything else from my side.
>
>
> Kind regards,
>
> Paul
>
>
> [1] https://01.org/suspendresume/
> [2] https://github.com/01org/suspendresume/