Re: 3.12: kernel panic when resuming from suspend to RAM (x86_64)

Samuel Ortiz
2013-12-09T22:28:07Z

Hi Francis,

On Mon, Dec 09, 2013 at 08:33:32PM +0100, Francis Moreau wrote:
> On 12/03/2013 09:14 AM, Francis Moreau wrote:
> > Hello Thomas,
> >
> > On 12/02/2013 12:20 PM, Thomas Gleixner wrote:
> >> On Mon, 2 Dec 2013, Thomas Gleixner wrote:
> >>> On Sat, 30 Nov 2013, Francis Moreau wrote:
> >>>> Hello Thomas,
> >>>>
> >>>> Sorry for the delay.
> >>>>
> >>>> On 11/29/2013 10:02 AM, Thomas Gleixner wrote:
> >>>>> On Fri, 29 Nov 2013, Francis Moreau wrote:
> >>>>>> Since it seems to be related to rtsx driver or its upper layer, could
> >>>>>> the folks involved in this area have a look to this issue please ?
> >>>>>
> >>>>> I'm not involved, but looking at the debug objects backtrace it's
> >>>>> related to the delayed work in rtsx.
> >>>>>
> >>>>> Does the untested patch below cure the issue?
> >>>>>
> >>>>
> >>>> It seems it does since I can't see the debug object trace anymore
> >>>> however Ican see this now:
> >>>
> >>> <SNIP>
> >>>
> >>>> So I don't think it completely solve the problem but it's a good start.
> >>>
> >>> I kinda expected that, but I wanted to confirm my suspicion, that the
> >>> interrupt hits after the delayed work is canceled and just requeues it
> >>> again, which then leads to an armed timer being freed further down.
> >>>
> >>> I'm not familiar with that driver and I leave the final fixup to the
> >>> driver maintainers. It's enough data for them to figure out the real
> >>> solution.
> >>
> >> Just had a quick look and the obvious solution is to disable the
> >> interrupts at the device level _BEFORE_ doing anything else in the
> >> teardown path. Updated patch below. That should avoid the nobody cared
> >> splat on the other irq line.
> >>
> >
> > Yes it does.
> >
> > Now that you did the hard work, I hope driver's maintainer/developper
> > will care about this issue.
> >
>
> Unfortunately he/she doesn't seem to care.
>
> Moreover I've been by this now:
>
> [ 241.003324] INFO: task kworker/u16:4:108 blocked for more than 120
> seconds.
> [ 241.003331] Not tainted 3.12.2-1-ARCH #1
> [ 241.003332] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
> disables this message.
> [ 241.003335] kworker/u16:4 D ffff880405bc8000 0 108 2
> 0x00000000
> [ 241.003355] Workqueue: kmemstick memstick_check [memstick]
> [ 241.003358] ffff880405bc3c90 0000000000000046 00000000000144c0
> ffff880405bc3fd8
> [ 241.003362] ffff880405bc3fd8 00000000000144c0 ffff880405bc8000
> ffff880405bc3c68
> [ 241.003366] ffffffff814ef57c ffff880405bc3fd8 0000000000000286
> 0000000000000000
> [ 241.003370] Call Trace:
> [ 241.003380] [<ffffffff814ef57c>] ? schedule_timeout+0x13c/0x290
> [ 241.003385] [<ffffffff8106f590>] ? detach_if_pending+0x120/0x120
> [ 241.003388] [<ffffffff8106f590>] ? detach_if_pending+0x120/0x120
> [ 241.003392] [<ffffffff814f2e79>] schedule+0x29/0x70
> [ 241.003396] [<ffffffff814ef659>] schedule_timeout+0x219/0x290
> [ 241.003401] [<ffffffff8129a4d1>] ? vsnprintf+0x1e1/0x680
> [ 241.003405] [<ffffffff814f2213>] wait_for_common+0xd3/0x180
> [ 241.003411] [<ffffffff81095100>] ? wake_up_process+0x40/0x40
> [ 241.003414] [<ffffffff814f22dd>] wait_for_completion+0x1d/0x20
> [ 241.003419] [<ffffffffa061334a>] memstick_set_rw_addr+0x4a/0x50
> [memstick]
> [ 241.003424] [<ffffffffa061388e>] memstick_check+0x10e/0x370 [memstick]
> [ 241.003429] [<ffffffff8107daf7>] process_one_work+0x167/0x450
> [ 241.003432] [<ffffffff8107e501>] worker_thread+0x121/0x3a0
> [ 241.003436] [<ffffffff8107e3e0>] ? manage_workers.isra.23+0x2b0/0x2b0
> [ 241.003441] [<ffffffff81084e90>] kthread+0xc0/0xd0
> [ 241.003446] [<ffffffff81084dd0>] ? kthread_create_on_node+0x120/0x120
> [ 241.003450] [<ffffffff814fc33c>] ret_from_fork+0x7c/0xb0
> [ 241.003454] [<ffffffff81084dd0>] ? kthread_create_on_node+0x120/0x120
>
> looks like a different issue.
Indeed. I assume you don't see issue that on the resume path ?
Wei, is that something you've ever seen with the rtsx memstick driver ?

Cheers,
Samuel.

--
Intel Open Source Technology Centre