Panda-LEB build 154 suffers oops during power management

Bug #819718 reported by Zach Pfeffer
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro Android
Fix Released
High
Zach Pfeffer

Bug Description

# <6>request_suspend_state: sleep (0->3) at 103068559521 (2000-01-01 00:01:38.185106154 UTC)
[ 103.047515] request_suspend_state: sleep (0->3) at 103068559521 (2000-01-01 00:01:38.185106154 UTC)
<4>------------[ cut here ]------------
[ 103.086975] ------------[ cut here ]------------
<4>WARNING: at drivers/tty/tty_mutex.c:39 tty_unlock+0x44/0x54()
<d>Modules linked in:
[<c005b8f8>] (unwind_backtrace+0x0/0xf8) from [<c00958d8>] (warn_slowpath_common+0x4c/0x64)
[<c00958d8>] (warn_slowpath_common+0x4c/0x64) from [<c009590c>] (warn_slowpath_null+0x1c/0x24)
[<c009590c>] (warn_slowpath_null+0x1c/0x24) from [<c05ae418>] (tty_unlock+0x44/0x54)
[<c05ae418>] (tty_unlock+0x44/0x54) from [<c0307500>] (vt_event_wait+0x9c/0x118)
[[<c 030 751000>]3 (v.t1_eve0n5t2_wa2i4t+0x]9 cW/0xA1R18) NfIrNom G[<c:0 3076a5t0 >] d(vt_wraiitavcetirve+s0/xt30/t0xy60)/
t[<c0t307y6_50m>] u(tvt_ewaixt.acticv:e3+0x93 0/0xt6t0y) f_ruom n[<lc00od8cc60k>+] (0conxsol4e4_ea/rl0yx_su5sp4end(+0)x4
4/0x78)[
  1[<0c00d38.c601>] 0(co9n7so7le_1e]arl y_sMuspoednd+0uxl4e4s/0x7 8l)i frnokm [<ecd0 0d8i97n8:>] (ea
rly_s[u spe nd1+00xc30/0x1.7101)
6[<c4080d8957]8 >[] (<earlcy0_0sus5pbend8+0fx8c0/0>x]1 70)( fruonm [w<ci0n0ae8df_cb>a] (pcrkotcress_aocnee_w+o0rk+0xx01/900/0xx5f580)
) [<fc00areo8fc>m] [(pr<occess0_0o9n5e_wo8rdk8+0x>190/0]x 550()w froamr n[<c_00salf37o8w>] p(woraktehr_t_hcreado+m0mxo174n/0+x0370)x
4c/[<c000afx3678>]4 )(wor
ker_t[hre a d1+0x01743/0x.3701) f2rom8 [<8c004b3b5d0]> ] ([kth<reacd0+0x8009/50x888)
d8[<>c0]0b3 bd0(>]w a(ktrhnrea_d+0xs8l0o/0xw88)p fraom t[<hc_005c5doam4m>] (okne+rne0lx_t4hreca/d0_exixt6+40)x0/0 xf8r)
om [<4>-<-c-[ 0end t0r9ace5 9ff7f05c2>ce7]c 4b4(b6w1 ]a---r
n_slowpath_n<6u>PM:l lS+ync0inxg1 ficle/s0ystxems2 4... )
[do ne.
 10<7>3PM.: P1r3epa6rin7g4 sys9t]e m f[o<r mecm0 0s9le5ep
90c>] (warn_slowpath_null+0x1c/0x24) from [<c05ae418>] (tty_unlock+0x44/0x54)
[ 103.136779] [<c05ae418>] (tty_unlock+0x44/0x54) from [<c0307500>] (vt_event_wait+0x9c/0x118)
[ 103.155090] [<c0307500>] (vt_event_wait+0x9c/0x118) from [<c0307650>] (vt_waitactive+0x30/0x60)
[ 103.155090] [<c0307650>] (vt_waitactive+0x30/0x60) from [<c00d8c60>] (console_early_suspend+0x44/0x78)
[ 103.166961] [<c00d8c60>] (console_early_suspend+0x44/0x78) from [<c00d8978>] (early_suspend+0xc0/0x170)
[ 103.190826] [<c00d8978>] (early_suspend+0xc0/0x170) from [<c00ae8fc>] (process_one_work+0x190/0x550)
[ 103.190856] [<c00ae8fc>] (process_one_work+0x190/0x550) from [<c00af378>] (worker_thread+0x174/0x370)
[ 103.212768] [<c00af378>] (worker_thread+0x174/0x370) from [<c00b3bd0>] (kthread+0x80/0x88)
[ 103.223480] [<c00b3bd0>] (kthread+0x80/0x88) from [<c0055da4>] (kernel_thread_exit+0x0/0x8)
[ 103.228881] ---[ end trace ff7f52ce7c4b4b61 ]---
[ 103.233856] PM: Syncing filesystems ... done.
[ 103.234039] PM: Preparing system for mem sleep
<4>------------[ cut here ]------------
[<4>W ARN ING1: a0t3 dri.v3e4rs/0tty3/9tty3_mut]e x-.c:-39 -tty-_un-loc-k-+0x4-4-/-0x5-4-()
[ <d>cModuutles lhienkerd ien:
][<c0-0-5-b8f-8>]- (u-nwi-nd_-bac-ktr-ace-+0x-0/0xf
8) from [<c00958d8>] (warn_slowpath_common+0x4c/0x64)
[[<c0 0 91508d83>]. 3(wa4r8n_sl7o2w4pat]h_c ommWon+A0x4RcN/0x6I4N)G fr:om [<ca0t09 590dcr>] i(vwaern_rsslow/ptath_tnyu/ll+t0x1c/t0yx24_)m
u[<tc0e09x590.cc>] :(wa3rn_9s lowtpatth_yn_uull+0nxl1oc/0cxk24) +f0rxom 4[4<c05/a0ex4185>4] (t(t)y_un
lock+0[x4 4/0 x154)
03.[<c0355a1e34718>9] ]( tty_Muondlocukl+0x4e4s/ 0lx54)i nfkrome [<dc 0307i9n8:4>]
(vt_[i o ctl1+00x3184./30x1e6d1c2)3
6[<c]0 307[98<4c>] 0(vt0_io5cbtl+08xf1884/>0x1]e dc) (furnom w[<ci02ff7n2dc>]_ (tbtay_iocckttl+0rx16a0/0cxaec+4)
0x[<0c/002xff7f2c>8]) (tt yf_riocotl+m0x1 60/[0<xac4c)0 0fro9m [5<c0813cd29c8>] >(do]_vf s(_iocwtalr+0xn80/_0sx550l)o
wp[<ca013tch29c_>] c(doo_mvfsm_iocotnl++0x080x/40x5c50)/ 0fromx 6[4<c0)13c7d
c>] (sys_ioctl+0x70/0x78)
[[<c 013 c7d1c>]0 (s3ys_.i3octl6+102x709/0x778)] fr om [[<c<005c4d2000>] (9r5e8t_fdast8_s>y]sca ll+(0x0w/0xa3c)r
n_<4>s-l-o-w[ epnad trtahc_ec ff7ofm5m2ceo7cn4+b4b062x 4]--c-
/0x64) from [<c009590c>] (warn_slowpath_null+0x1c/0x24)
[ 103.384765] [<c009590c>] (warn_slowpath_null+0x1c/0x24) from [<c05ae418>] (tty_unlock+0x44/0x54)
[ 103.384796] [<c05ae418>] (tty_unlock+0x44/0x54) from [<c0307984>] (vt_ioctl+0x184/0x1edc)
[ 103.384796] [<c0307984>] (vt_ioctl+0x184/0x1edc) from [<c02ff72c>] (tty_ioctl+0x160/0xac4)
[ 103.405578] [<c02ff72c>] (tty_ioctl+0x160/0xac4) from [<c013c29c>] (do_vfs_ioctl+0x80/0x550)
[ 103.423034] [<c013c29c>] (do_vfs_ioctl+0x80/0x550) from [<c013c7dc>] (sys_ioctl+0x70/0x78)
[ 103.425323] [<c013c7dc>] (sys_ioctl+0x70/0x78) from [<c0054d20>] (ret_fast_syscall+0x0/0x3c)
[ 103.435516] ---[ end trace ff7f52ce7c4b4b62 ]---
Freezing user space processes ... [ 103.504913] Freezing user space processes ... (elapsed 0.02 seconds) (elapsed 0.02 seconds) done.
done.
Freezing remaining freezable tasks ... [ 103.536956] Freezing remaining freezable tasks ... (elapsed 0.04 seconds) (elapsed 0.04 seconds) done.done.

<7>PM: Entering mem sleep
[ 103.581787] PM: Entering mem sleep
Suspending console(s) (use no_console_suspend to debug)
[ 103.596496] Suspending console(s) (use no_console_suspend to debug)
<7>hdmi: Enter HDMI_W1_StopVideoFrame()
<7>hdmi: *** Set PHY power mode to 0
<7>hdmi: -------------DEBUG-------------------<7>hdmi: 4000000 hdmi_wp_irqstatus
<7>hdmi: 0 hdmi_core_intr_state
<7>hdmi: 0 hdmi_core_irqstate
<7>hdmi: 83 hdmi_core_sys_sys_stat
<7>hdmi: -------------DEBUG-------------------<7>hdmi: Disconnect<7>hdmi: Irqenable 66000001
<7>hdmi: 0 hpd
<7>hdmi: -------------DEBUG-------------------<7>hdmi: 40000000 hdmi_wp_irqstatus
<7>hdmi: 0 hdmi_core_intr_state
<7>hdmi: 0 hdmi_core_irqstate
<7>hdmi: 83 hdmi_core_sys_sys_stat
<7>hdmi: -------------DEBUG-------------------<7>hdmi: Irqenable 66000001
<7>hdmi: 0 hpd
<6>omapdss HDMI: hot plug event 0<4>omapdss HDMI: error sending hot plug event 0 (-16)<����r$/���T3����%!�%1�1�4�V���<��鬴�r$/���T3����%!�%0���i3դ�H����K��#�.�ռ�#�:3�#�s��<�%��)���K��#�.��#�:��+$�/�H90������<��K��%���魑 /�5���<�#���5��<����2岚��/���T3����%!�%1Ѯ��i3�<6>twl6030: Interrupt status 0x000008
<4>------------[ cut here ]------------
<4>WARNING: at kernel/irq/handle.c:130 handle_irq_event_percpu+0x298/0x2bc()
irq 379 handler twl_rtc_interrupt+0x0/0xa4 enabled interrupts
<d>Modules linked in:
[<c005b8f8>] (unwind_backtrace+0x0/0xf8) from [<c00958d8>] (warn_slowpath_common+0x4c/0x64)
[<c00958d8>] (warn_slowpath_common+0x4c/0x64) from [<c0095984>] (warn_slowpath_fmt+0x30/0x40)
[<c0095984>] (warn_slowpath_fmt+0x30/0x40) from [<c00dc960>] (handle_irq_event_percpu+0x298/0x2bc)
[<c00dc960>] (handle_irq_event_percpu+0x298/0x2bc) from [<c00dc9c0>] (handle_irq_event+0x3c/0x5c)
[<c00dc9c0>] (handle_irq_event+0x3c/0x5c) from [<c00de680>] (handle_simple_irq+0x8c/0xb4)
[<c00de680>] (handle_simple_irq+0x8c/0xb4) from [<c00dc050>] (generic_handle_irq+0x30/0x44)
[<c00dc050>] (generic_handle_irq+0x30/0x44) from [<c0359500>] (twl6030_irq_thread+0x118/0x198)
[<c0359500>] (twl6030_irq_thread+0x118/0x198) from [<c00b3bd0>] (kthread+0x80/0x88)
<6>wakeup wake lock: alarm_rtc
[<c00b3bd0>] (kthread+0x80/0x88) from [<c0055da4>] (kernel_thread_exit+0x0/0x8)
<4>---[ end trace ff7f52ce7c4b4b63 ]---
Temp_hsync = 280 , temp_vsync = 280 , timing_hsync = 280, timing_vsync = 45<6>Extension block presentdb 3 1f 84i = 84 cur_byte = 4c (current_byte & HDMI_EDID_EX_DATABLOCK_TAG_MASK) = 64i = 91 cur_byte = 23 (current_byte & HDMI_EDID_EX_DATABLOCK_TAG_MASK) = 32i = 95 cur_byte = 83 (current_byte & HDMI_EDID_EX_DATABLOCK_TAG_MASK) = 128i = 99 cur_byte = 65 (current_byte & HDMI_EDID_EX_DATABLOCK_TAG_MASK) = 96datablock 3 153 0 deep color bit 30 0 deep color 36 bit 0 max tmds freq<7>hdmi: Enter HDMI_W1_StopVideoFrame()
<7>hdmi: *** Set PHY power mode to 1
<7>hdmi: *** Set PHY power mode to 2
<7>hdmi: Enter HDMI_W1_GlobalInitVars()
<7>hdmi: Enter HDMI_Core_GlobalInitVars()
<7>hdmi: Enter HDMI_W1_ConfigVideoResolutionTiming()
<7>hdmi: Enter HDMI_W1_ConfigVideoTiming ()
<7>hdmi: Enter HDMI_W1_ConfigVideoInterface()
<7>hdmi: Enter DSS_HDMI_CORE_SW_RESET_ASSERT ()
<7>hdmi: Enter DSS_HDMI_CORE_POWER_DOWN_DISABLE()
<7>hdmi: Enter DSS_HDMI_CORE_SW_RESET_RELEASE()
<7>hdmi: Enter HDMI_W1_StartVideoFrame ()
<7>hdmi: -------------DEBUG-------------------<7>hdmi: 22000000 hdmi_wp_irqstatus
<7>hdmi: 0 hdmi_core_intr_state
<7>hdmi: 40 hdmi_core_irqstate
<7>hdmi: 83 hdmi_core_sys_sys_stat
<7>hdmi: -------------DEBUG-------------------<7>hdmi: connect, <7>hdmi: Irqenable 66000001
<7>hdmi: 0 hpd
<6>omapdss HDMI: hot plug event 1<4>omapdss HDMI: error sending hot plug event 1 (-16)$

Revision history for this message
Zach Pfeffer (pfefferz) wrote :

Here's the complete log.

Revision history for this message
Zach Pfeffer (pfefferz) wrote :

Log after adding no_console_suspend

Revision history for this message
Zach Pfeffer (pfefferz) wrote :

Another run.

Revision history for this message
Zach Pfeffer (pfefferz) wrote :

This seems to have helped.

$git diff
diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
index f9a2799..4d7594d 100644
--- a/drivers/rtc/rtc-twl.c
+++ b/drivers/rtc/rtc-twl.c
@@ -355,21 +355,8 @@ out:
        return ret;
 }

-static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)
+static void twl_rtc_interrupt_work(struct work_struct *work)
 {
- unsigned long events = 0;
- int ret = IRQ_NONE;
- int res;
- u8 rd_reg;
-
-#ifdef CONFIG_LOCKDEP
- /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
- * we don't want and can't tolerate. Although it might be
- * friendlier not to borrow this thread context...
- */
- local_irq_enable();
-#endif
-
        res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
        if (res)
                goto out;
@@ -409,10 +396,19 @@ static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)

        /* Notify RTC core on event */
        rtc_update_irq(rtc, 1, events);
-
- ret = IRQ_HANDLED;
 out:
- return ret;
+ return;
+}
+
+
+struct delayed_work delayed_work;
+
+INIT_DELAYED_WORK(&delayed_work, twl_rtc_interrupt_work);
+
+static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)
+{
+ schedule_delayed_work(&delayed_work, 0);
+ return IRQ_HANDLED;
 }

 static struct rtc_class_ops twl_rtc_ops = {

Zach Pfeffer (pfefferz)
Changed in linaro-android:
importance: Undecided → High
assignee: nobody → Andy Green (andy-openmoko)
Revision history for this message
Zach Pfeffer (pfefferz) wrote :

Our first 11.09 build doesn't have this issue.

Build 1 of https://android-build.linaro.org/builds/~linaro-android/stage-panda-11.09-release/ doesn't have this issue.

Changed in linaro-android:
assignee: Andy Green (andy-openmoko) → Zach Pfeffer (pfefferz)
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.