Re: OMAP1 realtime patch

Dirk Behme
2007-02-08T18:09:57Z

[-- Attachment #1: Type: text/plain, Size: 4663 bytes --]

Kevin Hilman wrote:
> Here is a patch which leaves out the raw_spinlock conversions. It goes
> on the OMAP git tree on top of -rt5 (ignoring conflicts.) I've left out
> all the raw_spinlock conversions. This has been tested on an
> OMAP1623/H2 platform.

Update of Kevins update. Tested on OSK.

Changes:

- Remove kernel/printk.c "+ zap_rt_locks();". It's
already in -rt5.

- Re-add HRTIMER conversion to ads7846.c

With this patch I get Oops below after playing mp3 via NFS.
Add raw_spinlock_t to sound/arm/omap/omap-alsa-dma.c like in
my original patch doesn't seem to help.

Dirk

10337 frames decoded (0:04:30.0), +1.3 dB peak amplitude,
295 clipped samples
kernel BUG at kernel/rtmutex.c:650!
Unable to handle kernel NULL pointer dereference at virtual
address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 817 [#1]
Modules linked in: ppp_async ppp_generic slhc crc_ccitt
rfcomm l2cap hci_usb blueti
CPU: 0
PC is at __bug+0x20/0x2c
LR is at 0xc02350f0
pc : [<c0028aa8>] lr : [<c02350f0>] Not tainted
sp : c032fe04 ip : 60000093 fp : c032fe10
r10: 00000000 r9 : 00000013 r8 : 00000000
r7 : 00000000 r6 : c1979d14 r5 : c032e000 r4 : a0000013
r3 : 00000000 r2 : 00000001 r1 : c032e000 r0 : 00000027
Flags: nzcv IRQs off FIQs on Mode SVC_32 Segment kernel
Control: 5317F
Table: 11F90000 DAC: 00000017
Process IRQ-19 (pid: 30, stack limit = 0xc032e250)
Stack: (0xc032fe04 to 0xc0330000)
fe00: c032fe68 c032fe14 c01bcc58 c0028a98 c035d160
c032fe4c c032fe28
fe20: c00467f0 c0045fac 00000007 c02482a4 c035d160 00000000
00000001 00000000
fe40: c032fe74 c1979cec 00000000 c1979d14 00000000 00000000
00000000 c032fe78
fe60: c032fe6c c01bd04c c01bcbc8 c032fe94 c032fe7c bf0b92b0
c01bd01c bf0b6e6c
fe80: c1e20e00 00000001 c032fea4 c032fe98 bf0a7978 bf0b9250
c032fec4 c032fea8
fea0: bf0a77c8 bf0a7934 c1c13c00 00b5bffe c1e20e00 c1c13c00
c032fed4 c032fec8
fec0: bf0a799c bf0a7798 c032fef4 c032fed8 bf0ade9c bf0a7990
c1979cec c1979d14
fee0: 00000000 00000013 c032ff0c c032fef8 bf0b94ac bf0adcdc
0000ff7f c024677c
ff00: c032ff20 c032ff10 bf0b9bc0 bf0b9494 00000020 c032ff3c
c032ff24 c0036b8c
ff20: bf0b9b68 00000000 00000000 c032e000 c032ff54 c032ff40
c0036bc4 c0036ae4
ff40: c02c2d20 00000000 c032ff80 c032ff58 c006fef8 c0036bb8
c0224740 c032e000
ff60: c0224740 00000013 c02c2d20 00000000 00000000 c032ffa4
c032ff84 c0070590
ff80: c006fe9c c0224740 c032e000 c007099c 00000013 60000013
c032ffcc c032ffa8
ffa0: c0070a90 c0070534 00000032 c0224740 c032e000 c007099c
c02cbe88 00000000
ffc0: c032fff4 c032ffd0 c0060e24 c00709ac ffffffff ffffffff
00000000 00000000
ffe0: 00000000 00000000 00000000 c032fff8 c004e1f4 c0060d4c
00000000 00000000
Backtrace:
[<c0028a88>] (__bug+0x0/0x2c) from [<c01bcc58>]
(rt_spin_lock_slowlock+0xa0/0x204)
[<c01bcbb8>] (rt_spin_lock_slowlock+0x0/0x204) from
[<c01bd04c>] (rt_spin_lock+0x4)
[<c01bd00c>] (rt_spin_lock+0x0/0x44) from [<bf0b92b0>]
(snd_omap_alsa_trigger+0x70)
[<bf0b9240>] (snd_omap_alsa_trigger+0x0/0xac
[snd_omap_alsa_aic23]) from [<bf0a797)
r6 = 00000001 r5 = C1E20E00 r4 = BF0B6E6C
[<bf0a7924>] (snd_pcm_do_stop+0x0/0x5c [snd_pcm]) from
[<bf0a77c8>] (snd_pcm_actio)
[<bf0a7788>] (snd_pcm_action_single+0x0/0x7c [snd_pcm]) from
[<bf0a799c>] (snd_pcm)
r7 = C1C13C00 r6 = C1E20E00 r5 = 00B5BFFE r4 = C1C13C00
[<bf0a7980>] (snd_pcm_drain_done+0x0/0x24 [snd_pcm]) from
[<bf0ade9c>] (snd_pcm_pe)
[<bf0adccc>] (snd_pcm_period_elapsed+0x0/0x278 [snd_pcm])
from [<bf0b94ac>] (callb)
r7 = 00000013 r6 = 00000000 r5 = C1979D14 r4 = C1979CEC
[<bf0b9484>] (callback_omap_alsa_sound_dma+0x0/0x54
[snd_omap_alsa_aic23]) from [<)
r5 = C024677C r4 = 0000FF7F
[<bf0b9b58>] (sound_dma_irq_handler+0x0/0x80
[snd_omap_alsa_aic23]) from [<c0036b8)
r4 = 00000020
[<c0036ad4>] (omap1_dma_handle_ch+0x0/0xd4) from
[<c0036bc4>] (omap1_dma_irq_handl)
r6 = C032E000 r5 = 00000000 r4 = 00000000
[<c0036ba8>] (omap1_dma_irq_handler+0x0/0x34) from
[<c006fef8>] (handle_IRQ_event+)
r5 = 00000000 r4 = C02C2D20
[<c006fe8c>] (handle_IRQ_event+0x0/0xf8) from [<c0070590>]
(thread_simple_irq+0x6c)
[<c0070524>] (thread_simple_irq+0x0/0xf4) from [<c0070a90>]
(do_irqd+0xf4/0x398)
r8 = 60000013 r7 = 00000013 r6 = C007099C r5 = C032E000
r4 = C0224740
[<c007099c>] (do_irqd+0x0/0x398) from [<c0060e24>]
(kthread+0xe8/0x128)
r8 = 00000000 r7 = C02CBE88 r6 = C007099C r5 = C032E000
r4 = C0224740
[<c0060d3c>] (kthread+0x0/0x128) from [<c004e1f4>]
(do_exit+0x0/0x860)
r7 = 00000000 r6 = 00000000 r5 = 00000000 r4 = 00000000
Code: e1a01000 e59f000c eb008bf1 e3a03000 (e5833000)
<6>note: IRQ-19[30] exited with preempt_count 1

[-- Attachment #2: patch-2.6.20-rt5-omap1 --]
[-- Type: text/plain, Size: 8104 bytes --]