* [Xenomai-help] Kernel Opps calling rtdm_irq_request
@ 2007-08-14 10:15 Yeoh Chun Yeow
2007-08-14 10:43 ` Gilles Chanteperdrix
0 siblings, 1 reply; 9+ messages in thread
From: Yeoh Chun Yeow @ 2007-08-14 10:15 UTC (permalink / raw)
To: Xenomai-help@domain.hid
[-- Attachment #1: Type: text/plain, Size: 5614 bytes --]
Dear all,
I have try to attach a AT91 TC hardware interrupt using rtdm_irq_request.
Whenever the rtdm_irq_request is called, the kernel Oops occurs.
Any ideas on the problem?
Please help. Thanks
Regards,
chun yeow
Unable to handle kernel NULL pointer dereference at virtual address 00000010
pgd = c3564000
[00000010] *pgd=234da031, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1]
Modules linked in: rtdm_test
CPU: 0
PC is at xnintr_init+0x18/0x5c
LR is at 0x194
pc : [<c0079974>] lr : [<00000194>] Tainted: P
sp : c3553e0c ip : c0367804 fp : c3553e20
r10: 00000018 r9 : c03e7ac0 r8 : 00000000
r7 : bf003880 r6 : 00000001 r5 : 00000000 r4 : 00000000
r3 : bf003090 r2 : 00000012 r1 : bf003174 r0 : 00000000
Flags: nZcv IRQs on FIQs on Mode SVC_32 Segment user
Control: 317F
Table: 23564000 DAC: 00000015
Process user (pid: 265, stack limit = 0xc3552258)
Stack: (0xc3553e0c to 0xc3554000)
3e00: bf003090 00000000 c3553e40 c3553e24
c00abab4
3e20: c007996c 00000000 00000000 00000000 c0672600 c3553e60 c3553e44
bf003078
3e40: c00aba8c bf003174 00000000 c03e7ac0 00000000 c3553e98 c3553e64
c00aa83c
3e60: bf00304c 00000001 c00accb8 c07943e0 c0400cf0 ffffffff c3553e9c
00000000
3e80: c0672600 c3553fb0 c3553fb0 c3553ed8 c3553e9c c00acccc c00aa734
6f6d6564
3ea0: 30766564 00000000 276e6163 706f2074 25206e65 00000a73 00fff6e4
00000050
3ec0: 00000000 c3552000 00000008 c3553f08 c3553edc c0086b58 c00acc74
c3553f08
3ee0: 00000000 00000100 00000000 c03b5b20 20000013 c0086a8c c03b5b20
c3553f58
3f00: c3553f0c c0074aa0 c0086a9c c03b5aa4 00000000 00000020 c3553fb0
00000008
3f20: c03b5aa4 00000001 c03b5b20 c3553f58 40023e08 00000000 00000000
000f0042
3f40: c00256a8 c3553fb0 c3552000 c3553f90 c3553f5c c002c098 c0074a20
00000000
3f60: 00000000 00000000 40023e08 00000000 00000000 000f0042 c00256a8
c3552000
3f80: 009f0042 00000000 c3553f94 c0024fd4 c002c034 0103022b 00009038
00000000
3fa0: 00009038 00000000 40023e08 00000000 0103022b 00009038 00000000
00009038
3fc0: 40023e08 00000000 00000000 000f0042 00000000 00000000 40024000
bec17d64
3fe0: 400527b8 bec17d44 00008d5c 400527f8 20000010 0103022b 20002031
20002431
Backtrace:
[<c007995c>] (xnintr_init+0x0/0x5c) from [<c00abab4>]
(rtdm_irq_request+0x38/0x74)
r4 = 00000000
[<c00aba7c>] (rtdm_irq_request+0x0/0x74) from [<bf003078>]
(demo_open_rt+0x3c/0x54 [rtdm_test])
r5 = C0672600 r4 = 00000000
[<bf00303c>] (demo_open_rt+0x0/0x54 [rtdm_test]) from [<c00aa83c>]
(_rtdm_open+0x118/0x144)
r4 = 00000000
[<c00aa724>] (_rtdm_open+0x0/0x144) from [<c00acccc>]
(sys_rtdm_open+0x68/0x70)
r8 = C3553FB0 r7 = C3553FB0 r6 = C0672600 r5 = 00000000
r4 = C3553E9C
[<c00acc64>] (sys_rtdm_open+0x0/0x70) from [<c0086b58>]
(losyscall_event+0xcc/0x1e0)
r7 = 00000008 r6 = C3552000 r5 = 00000000 r4 = 00000050
[<c0086a8c>] (losyscall_event+0x0/0x1e0) from [<c0074aa0>]
(__ipipe_dispatch_event+0x90/0x23c)
[<c0074a10>] (__ipipe_dispatch_event+0x0/0x23c) from [<c002c098>]
(__ipipe_syscall_root+0x74/0x170)
[<c002c024>] (__ipipe_syscall_root+0x0/0x170) from [<c0024fd4>]
(vector_swi+0x74/0xb0)
Code: e24cb004 e24dd004 ebfeca1e e59fc03c (e5802010)
I-pipe tracer log (30 points):
+func 0 ipipe_trace_panic_freeze+0x14
(bust_spinlocks+0x20)
+func -5 bust_spinlocks+0x14 (__do_kernel_fault+0x38)
+func -13 ipipe_check_context+0x14
(search_module_extables+0xcc)
+func -19 sub_preempt_count+0x10
(search_module_extables+0xc4)
+func -25 ipipe_check_context+0x14
(search_module_extables+0xbc)
| +end 0x80000000 -31 __ipipe_unstall_root+0x4c
(__ipipe_restore_root+0x70)
| #begin 0x80000000 -37 __ipipe_unstall_root+0x70
(__ipipe_restore_root+0x70)
#func -43 __ipipe_unstall_root+0x10
(__ipipe_restore_root+0x70)
#func -48 __ipipe_restore_root+0x10
(search_module_extables+0xb4)
#func -60 add_preempt_count+0x10
(search_module_extables+0x50)
#func -66 ipipe_check_context+0x14
(search_module_extables+0x48)
+func -73 search_module_extables+0x14
(search_exception_tables+0x38)
+func -86 search_extable+0x14
(search_exception_tables+0x28)
+func -92 search_exception_tables+0x14
(fixup_exception+0x20)
+func -99 fixup_exception+0x14
(__do_kernel_fault+0x28)
+func -105 __do_kernel_fault+0x10 (do_page_fault+0x1b0)
+func -112 ipipe_check_context+0x14 (__up_read+0x90)
+func -118 sub_preempt_count+0x10 (__up_read+0x88)
+func -124 ipipe_check_context+0x14 (__up_read+0x80)
| +end 0x80000000 -130 __ipipe_unstall_root+0x4c
(__ipipe_restore_root+0x70)
| #begin 0x80000000 -136 __ipipe_unstall_root+0x70
(__ipipe_restore_root+0x70)
#func -144 __ipipe_unstall_root+0x10
(__ipipe_restore_root+0x70)
#func -149 __ipipe_restore_root+0x10 (__up_read+0x78)
#func -155 add_preempt_count+0x10 (__up_read+0x4c)
#func -161 ipipe_check_context+0x14 (__up_read+0x44)
+func -167 __up_read+0x10 (up_read+0x14)
+func -172 up_read+0x10 (do_page_fault+0x120)
+func -182 find_vma+0x14 (do_page_fault+0xe0)
+func -190 ipipe_check_context+0x14
(__down_read_trylock+0x94)
+func -196 sub_preempt_count+0x10
(__down_read_trylock+0x8c)
Segmentation fault
[-- Attachment #2: Type: text/html, Size: 9196 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-14 10:15 [Xenomai-help] Kernel Opps calling rtdm_irq_request Yeoh Chun Yeow
@ 2007-08-14 10:43 ` Gilles Chanteperdrix
2007-08-15 9:24 ` Yeoh Chun Yeow
0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2007-08-14 10:43 UTC (permalink / raw)
To: Yeoh Chun Yeow; +Cc: Xenomai-help@domain.hid
Yeoh Chun Yeow wrote:
> Dear all,
>
> I have try to attach a AT91 TC hardware interrupt using rtdm_irq_request.
Sorry, I misunderstood your question. No, you can not do that, the TC
hardware is driven by Xenomai in one shot mode, you can not expect it to
tick on a regular basis. Besides, timers (either posix timers or native
alarms) are really what you are looking for. Nevertheless, you should
not get a oops when trying to do that.
>
> Whenever the rtdm_irq_request is called, the kernel Oops occurs.
>
> Any ideas on the problem?
Either a programming error, or a bug in Xenomai. Could you show us the
code that triggers this behaviour ? Did you enable support for shared
IRQs in Xenomai ? The TC irq has to be shared in Xenomai domain, since
it is used by Xenomai and you also want to use it.
--
Gilles Chanteperdrix.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-14 10:43 ` Gilles Chanteperdrix
@ 2007-08-15 9:24 ` Yeoh Chun Yeow
2007-08-15 11:14 ` Yeoh Chun Yeow
2007-08-15 12:00 ` Jan Kiszka
0 siblings, 2 replies; 9+ messages in thread
From: Yeoh Chun Yeow @ 2007-08-15 9:24 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai-help@domain.hid
[-- Attachment #1: Type: text/plain, Size: 1407 bytes --]
Dear Gilles,
Sorry, it's my own mistake. I forgot to append the dev_private when openning
the device. I am actually using the TC1 for testing and not TC0 (TC0 is
selected for IPIPE usage).
By the way, do we need to invoke the rtdm_irq_enable after the
rtdm_irq_request? After excuting the ISR, is that the return of
RTDM_IRQ_HANDLED will reenble the interrupt?
Please advice. Thanks
regards,
chun yeow
On 8/14/07, Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote:
>
> Yeoh Chun Yeow wrote:
> > Dear all,
> >
> > I have try to attach a AT91 TC hardware interrupt using
> rtdm_irq_request.
>
> Sorry, I misunderstood your question. No, you can not do that, the TC
> hardware is driven by Xenomai in one shot mode, you can not expect it to
> tick on a regular basis. Besides, timers (either posix timers or native
> alarms) are really what you are looking for. Nevertheless, you should
> not get a oops when trying to do that.
>
> >
> > Whenever the rtdm_irq_request is called, the kernel Oops occurs.
> >
> > Any ideas on the problem?
>
>
> Either a programming error, or a bug in Xenomai. Could you show us the
> code that triggers this behaviour ? Did you enable support for shared
> IRQs in Xenomai ? The TC irq has to be shared in Xenomai domain, since
> it is used by Xenomai and you also want to use it.
>
> --
>
>
> Gilles Chanteperdrix.
>
[-- Attachment #2: Type: text/html, Size: 2007 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-15 9:24 ` Yeoh Chun Yeow
@ 2007-08-15 11:14 ` Yeoh Chun Yeow
2007-08-15 12:00 ` Jan Kiszka
1 sibling, 0 replies; 9+ messages in thread
From: Yeoh Chun Yeow @ 2007-08-15 11:14 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai-help@domain.hid
[-- Attachment #1: Type: text/plain, Size: 1936 bytes --]
Dear Gilles,
I have configured TC0 as IPIPE usage and would like to use the TC1 as
real-time interrupt. I have observed that TC1 is not generated its interrupt
continuously if it is configured as RC compare trigger with "Software
Trigger" (Same as what TC0 is configured). Is this AT91RM9200 Errata? Or I
was doing something wrong?
Please advice. Thanks
regards,
chun yeow
On 8/15/07, Yeoh Chun Yeow <yeohchunyeow@domain.hid> wrote:
>
> Dear Gilles,
>
> Sorry, it's my own mistake. I forgot to append the dev_private when
> openning the device. I am actually using the TC1 for testing and not TC0
> (TC0 is selected for IPIPE usage).
>
> By the way, do we need to invoke the rtdm_irq_enable after the
> rtdm_irq_request? After excuting the ISR, is that the return of
> RTDM_IRQ_HANDLED will reenble the interrupt?
>
> Please advice. Thanks
>
> regards,
> chun yeow
>
> On 8/14/07, Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org > wrote:
> >
> > Yeoh Chun Yeow wrote:
> > > Dear all,
> > >
> > > I have try to attach a AT91 TC hardware interrupt using
> > rtdm_irq_request.
> >
> > Sorry, I misunderstood your question. No, you can not do that, the TC
> > hardware is driven by Xenomai in one shot mode, you can not expect it to
> > tick on a regular basis. Besides, timers (either posix timers or native
> > alarms) are really what you are looking for. Nevertheless, you should
> > not get a oops when trying to do that.
> >
> > >
> > > Whenever the rtdm_irq_request is called, the kernel Oops occurs.
> > >
> > > Any ideas on the problem?
> >
> >
> > Either a programming error, or a bug in Xenomai. Could you show us the
> > code that triggers this behaviour ? Did you enable support for shared
> > IRQs in Xenomai ? The TC irq has to be shared in Xenomai domain, since
> > it is used by Xenomai and you also want to use it.
> >
> > --
> >
> >
> > Gilles Chanteperdrix.
> >
>
>
[-- Attachment #2: Type: text/html, Size: 2914 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-15 9:24 ` Yeoh Chun Yeow
2007-08-15 11:14 ` Yeoh Chun Yeow
@ 2007-08-15 12:00 ` Jan Kiszka
2007-08-15 13:09 ` Gilles Chanteperdrix
1 sibling, 1 reply; 9+ messages in thread
From: Jan Kiszka @ 2007-08-15 12:00 UTC (permalink / raw)
To: Yeoh Chun Yeow; +Cc: Xenomai-help@domain.hid
[-- Attachment #1: Type: text/plain, Size: 377 bytes --]
Yeoh Chun Yeow wrote:
> By the way, do we need to invoke the rtdm_irq_enable after the
> rtdm_irq_request? After excuting the ISR, is that the return of
> RTDM_IRQ_HANDLED will reenble the interrupt?
Depends on the version: With RTDM revision 6 (will be part of Xenomai
2.4), this is no longer required. Earlier revision needed it, though.
See documentation.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-15 12:00 ` Jan Kiszka
@ 2007-08-15 13:09 ` Gilles Chanteperdrix
2007-08-15 17:13 ` Jan Kiszka
0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2007-08-15 13:09 UTC (permalink / raw)
To: Jan Kiszka; +Cc: Xenomai-help@domain.hid
Jan Kiszka wrote:
> Yeoh Chun Yeow wrote:
> > By the way, do we need to invoke the rtdm_irq_enable after the
> > rtdm_irq_request? After excuting the ISR, is that the return of
> > RTDM_IRQ_HANDLED will reenble the interrupt?
>
> Depends on the version: With RTDM revision 6 (will be part of Xenomai
> 2.4), this is no longer required. Earlier revision needed it, though.
> See documentation.
An if I am not wrong, RTDM revision 6 offers timers services as well,
so, Yeoh, developing your own timer management system really looks like
going the wrong way.
--
Gilles Chanteperdrix.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-15 13:09 ` Gilles Chanteperdrix
@ 2007-08-15 17:13 ` Jan Kiszka
2007-08-16 3:16 ` Yeoh Chun Yeow
0 siblings, 1 reply; 9+ messages in thread
From: Jan Kiszka @ 2007-08-15 17:13 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai-help@domain.hid
[-- Attachment #1: Type: text/plain, Size: 727 bytes --]
Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
> > Yeoh Chun Yeow wrote:
> > > By the way, do we need to invoke the rtdm_irq_enable after the
> > > rtdm_irq_request? After excuting the ISR, is that the return of
> > > RTDM_IRQ_HANDLED will reenble the interrupt?
> >
> > Depends on the version: With RTDM revision 6 (will be part of Xenomai
> > 2.4), this is no longer required. Earlier revision needed it, though.
> > See documentation.
>
> An if I am not wrong, RTDM revision 6 offers timers services as well,
Yep.
> so, Yeoh, developing your own timer management system really looks like
> going the wrong way.
It takes fairly unusual requirements to go some non-standard way here.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-15 17:13 ` Jan Kiszka
@ 2007-08-16 3:16 ` Yeoh Chun Yeow
2007-08-16 5:15 ` Gilles Chanteperdrix
0 siblings, 1 reply; 9+ messages in thread
From: Yeoh Chun Yeow @ 2007-08-16 3:16 UTC (permalink / raw)
To: Jan Kiszka; +Cc: Xenomai-help@domain.hid
[-- Attachment #1: Type: text/plain, Size: 1030 bytes --]
Dear Jan and Gilles,
Thanks for your comment.
Is that the RTDM timer created using rtdm_timer_init uses the IPIPE time
base timer? In AT91, it will be the TCx which is configured as time base
Adeos IPIPE.
Regards,
Chun Yeow
On 8/16/07, Jan Kiszka <jan.kiszka@domain.hid> wrote:
>
> Gilles Chanteperdrix wrote:
> > Jan Kiszka wrote:
> > > Yeoh Chun Yeow wrote:
> > > > By the way, do we need to invoke the rtdm_irq_enable after the
> > > > rtdm_irq_request? After excuting the ISR, is that the return of
> > > > RTDM_IRQ_HANDLED will reenble the interrupt?
> > >
> > > Depends on the version: With RTDM revision 6 (will be part of Xenomai
> > > 2.4), this is no longer required. Earlier revision needed it, though.
> > > See documentation.
> >
> > An if I am not wrong, RTDM revision 6 offers timers services as well,
>
> Yep.
>
> > so, Yeoh, developing your own timer management system really looks like
> > going the wrong way.
>
> It takes fairly unusual requirements to go some non-standard way here.
>
> Jan
>
>
>
[-- Attachment #2: Type: text/html, Size: 1511 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Kernel Opps calling rtdm_irq_request
2007-08-16 3:16 ` Yeoh Chun Yeow
@ 2007-08-16 5:15 ` Gilles Chanteperdrix
0 siblings, 0 replies; 9+ messages in thread
From: Gilles Chanteperdrix @ 2007-08-16 5:15 UTC (permalink / raw)
To: Yeoh Chun Yeow; +Cc: Xenomai-help@domain.hid, Jan Kiszka
Yeoh Chun Yeow wrote:
> Dear Jan and Gilles,
>
> On 8/16/07, Jan Kiszka <jan.kiszka@domain.hid> wrote:
> >
> > Gilles Chanteperdrix wrote:
> > > Jan Kiszka wrote:
> > > > Yeoh Chun Yeow wrote:
> > > > > By the way, do we need to invoke the rtdm_irq_enable after the
> > > > > rtdm_irq_request? After excuting the ISR, is that the return of
> > > > > RTDM_IRQ_HANDLED will reenble the interrupt?
> > > >
> > > > Depends on the version: With RTDM revision 6 (will be part of Xenomai
> > > > 2.4), this is no longer required. Earlier revision needed it, though.
> > > > See documentation.
> > >
> > > An if I am not wrong, RTDM revision 6 offers timers services as well,
> >
> > Yep.
> >
> > > so, Yeoh, developing your own timer management system really looks like
> > > going the wrong way.
> >
> > It takes fairly unusual requirements to go some non-standard way here.
>
> Thanks for your comment.
>
> Is that the RTDM timer created using rtdm_timer_init uses the IPIPE time
> base timer? In AT91, it will be the TCx which is configured as time base
> Adeos IPIPE.
Yes.
--
Gilles Chanteperdrix.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-08-16 5:15 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-14 10:15 [Xenomai-help] Kernel Opps calling rtdm_irq_request Yeoh Chun Yeow
2007-08-14 10:43 ` Gilles Chanteperdrix
2007-08-15 9:24 ` Yeoh Chun Yeow
2007-08-15 11:14 ` Yeoh Chun Yeow
2007-08-15 12:00 ` Jan Kiszka
2007-08-15 13:09 ` Gilles Chanteperdrix
2007-08-15 17:13 ` Jan Kiszka
2007-08-16 3:16 ` Yeoh Chun Yeow
2007-08-16 5:15 ` Gilles Chanteperdrix
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.