Re: OMAP34xx

Luciano Coelho
2012-02-16T07:56:36Z

On Wed, 2012-02-15 at 17:28 -0800, Kevin Hilman wrote:
> NeilBrown <neilb@suse.de> writes:
>
> > On Wed, 15 Feb 2012 16:13:02 -0800 Kevin Hilman <khilman@deeprootsystems.com>
> > wrote:
> >
> >> On 02/15/2012 03:54 PM, Kevin Hilman wrote:
> >> > Luciano Coelho<coelho@ti.com> writes:
> >> >
> >> > [...]
> >> >
> >> >> I just tried this on my Panda and I keep getting this kind of BUGs. It
> >> >> spams my console so much that is pretty much unusable:
> >> >>
> >> >> [ 336.172302] BUG: sleeping function called from invalid context at include/linux/freezer.h:46
> >> >> [ 336.181213] in_atomic(): 0, irqs_disabled(): 128, pid: 1618, name: ntpd
> >> >> [ 336.181213] INFO: lockdep is turned off.
> >> >> [ 336.181213] irq event stamp: 0
> >> >> [ 336.181213] hardirqs last enabled at (0): [< (null)>] (null)
> >> >> [ 336.201660] hardirqs last disabled at (0): [<c0042314>] copy_process+0x3ec/0x105c
> >> >> [ 336.209625] softirqs last enabled at (0): [<c0042314>] copy_process+0x3ec/0x105c
> >> >> [ 336.217498] softirqs last disabled at (0): [< (null)>] (null)
> >> >> [ 336.217498] [<c001e1e4>] (unwind_backtrace+0x0/0x148) from [<c0502c24>] (dump_stack+0x20/0x24)
> >> >> [ 336.232879] [<c0502c24>] (dump_stack+0x20/0x24) from [<c0077998>] (__might_sleep+0x130/0x134)
> >> >> [ 336.232879] [<c0077998>] (__might_sleep+0x130/0x134) from [<c0018998>] (do_signal+0x54/0x600)
> >> >> [ 336.250793] [<c0018998>] (do_signal+0x54/0x600) from [<c0018fa4>] (do_notify_resume+0x60/0x6c)
> >> >> [ 336.250793] [<c0018fa4>] (do_notify_resume+0x60/0x6c) from [<c00154e4>] (work_pending+0x24/0x28)
> >> >>
> >> >> I have also seen this in 3.3-rc3 (both on Panda (OMAP4460) and on Blaze
> >> >> (OMAP4430) boards) and I was hoping your tree would have the fix for it,
> >> >> but it doesn't. :( The device boots and seems to work otherwise, but
> >> >> this is annoying and looks shaky.
> >> >>
> >> >> I saw something related to this in another thread from a few months ago,
> >> >> and one patch proposal by Russell, but I didn't find any conclusion or
> >> >> any related patch queued up for upstream.
> >> >>
> >> >> Is there any solution for this? I use a tuned .config (attached) and not
> >> >> the one generated by omap2plus_defconfig (which I didn't try as
> >> >> vanilla).
> >> >
> >> > I see the same thing with your ~/.config, but I don't think this is OMAP
> >> > specific. I suspect this will happen on any ARM platform that has
> >> > CONFIG_DEBUG_ATOMIC_SLEEP=y.
> >> >
> >> > It appears to be a problem with the recently added audit support for
> >> > ARM, since reverting the commit below makes this BUG go away.
> >>
> >> False alarm. reverting the audit commit didn't make the problem go
> >> away. It was gone only because I also disabled
> >> CONFIG_DEBUG_ATOMIC_SLEEP. :/
> >>
> >> To debug this further, you might bisect it back to v3.2 because the
> >> problem isn't there in v3.2
> >
> > I "fixed" this by applying
> >
> > https://lkml.org/lkml/2011/8/25/231
> >
> > as shown here:
> >
> > http://neil.brown.name/git?p=gta04;a=commitdiff;h=b43a97aefed9990811ed95676db58538f7279eb6
> >
> > because google found some email that suggested it. It worked but I didn't
> > even try to understand the patch.
>
> Great, thanks for the pointer.

I had found this patch also when I searched the list. That's what I
meant by "one patch proposal by Russell", but it was back in August and
the patch doesn't seem to have been ever applied. The discussion also
seemed to end abruptly, so my assumption was that no conclusion has been
really reached.

Instead of applying that, I have simply removed the might_sleep() call
in the try_to_freeze() function. This definitely doesn't solve the
problem, but at least my console doesn't get spammed and it's better
than disabling CONFIG_DEBUG_ATOMIC_SLEEP, because at least I still catch
other sleeps while atomic. ;)

--
Cheers,
Luca.