From: Jan Kiszka <jan.kiszka@domain.hid>
To: Steven Scholz <steven.scholz@domain.hid>
Cc: Xenomai-core@domain.hid
Subject: Re: [Xenomai-core] latency hangs on AT91RM9200
Date: Fri, 23 Feb 2007 16:28:51 +0100 [thread overview]
Message-ID: <45DF0833.9080907@domain.hid> (raw)
In-Reply-To: <45DF0702.6020400@domain.hid>
[-- Attachment #1.1: Type: text/plain, Size: 6039 bytes --]
Gilles Chanteperdrix wrote:
> Steven Scholz wrote:
>> Hi all,
>>
>>
>>> I am running 2.6.19 + adeos-ipipe-2.6.19-arm-1.6-02.patch + xenomai-svn-2007-02-22
>>> on an AT91RM9200 (160MHz/80MHz).
>>>
>>> When starting "latency -p 200" it runs for a while printing
>>>
>>> RTT| 00:05:37 (periodic user-mode task, 200 us period, priority 99)
>>> RTH|-----lat min|-----lat avg|-----lat max|-overrun|----lat best|---lat worst
>>> RTD| 11.200| 139.200| 236.800| 1| 10.800| 280.800
>>> RTD| 11.200| 146.400| 253.200| 1| 10.800| 280.800
>>> RTD| 11.200| 144.400| 240.400| 1| 10.800| 280.800
>>>
>>> but then hangs. The timer LED stops blinking. No "soft lockup detected" appears.
>>
>> After patching kernel/sched.c
>>
>> #ifdef CONFIG_IPIPE
>> - if (unlikely(!ipipe_root_domain_p))
>> - return;
>> + if (unlikely(!ipipe_root_domain_p)) {
>> + ipipe_set_printk_sync(ipipe_current_domain);
>> + ipipe_trace_panic_freeze();
>> + ipipe_trace_panic_dump();
>> + BUG();
>> + }
>> #endif /* CONFIG_IPIPE */
>>
>> ~ # cat /dev/zero > /dev/null &
>> ~ # latency -p 400
>> == Sampling period: 400 us
>> == Test mode: periodic user-mode task
>> == All results in microseconds
>> warming up...
>> RTT| 00:00:01 (periodic user-mode task, 400 us period, priority 99)
>> RTH|-----lat min|-----lat avg|-----lat max|-overrun|----lat best|---lat worst
>> RTD| 146.000| 187.200| 258.000| 0| 146.000| 258.000
>> ...
>> RTD| 72.400| 188.800| 3793.600| 97| 68.800| 4746.800
>> RTD| 70.800| 188.800| 3256.400| 107| 68.800| 4746.800
>> I-pipe tracer log (30 points):
>> func 0 ipipe_trace_panic_freeze+0x10 (schedule+0x54)
>> func -2 schedule+0x14 (ret_slow_syscall+0x0)
>> func -6 __ipipe_walk_pipeline+0x10 (__ipipe_handle_irq+0x190)
>> [ 183] display- 0 -11 xnpod_schedule+0x60c (xnintr_irq_handler+0x128)
>> [ 184] samplin 99 -14 xnpod_schedule+0xb4 (xnpod_suspend_thread+0x178)
>> func -16 xnpod_schedule+0x14 (xnpod_suspend_thread+0x178)
>> func -18 xnpod_suspend_thread+0x14 (xnpod_wait_thread_period+0xb0)
>> func -21 xnpod_wait_thread_period+0x14 (rt_task_wait_period+0x4c)
>> func -23 rt_task_wait_period+0x10 (__rt_task_wait_period+0x54)
>> func -25 __rt_task_wait_period+0x14 (hisyscall_event+0x160)
>> func -27 hisyscall_event+0x14 (__ipipe_dispatch_event+0xc0)
>> func -29 __ipipe_dispatch_event+0x14 (__ipipe_syscall_root+0x88)
>> func -31 __ipipe_syscall_root+0x10 (vector_swi+0x68)
>> func -35 rt_timer_tsc+0x10 (__rt_timer_tsc+0x1c)
>> func -36 __rt_timer_tsc+0x14 (hisyscall_event+0x160)
>> func -39 hisyscall_event+0x14 (__ipipe_dispatch_event+0xc0)
>> func -40 __ipipe_dispatch_event+0x14 (__ipipe_syscall_root+0x88)
>> func -42 __ipipe_syscall_root+0x10 (vector_swi+0x68)
>> func -46 __ipipe_restore_pipeline_head+0x10 (xnpod_wait_thread_period+0x1b4)
>> [ 184] samplin 99 -49 xnpod_schedule+0x60c (xnpod_suspend_thread+0x178)
>> [ 183] display- 0 -53 xnpod_schedule+0xb4 (xnintr_irq_handler+0x128)
>> func -55 xnpod_schedule+0x14 (xnintr_irq_handler+0x128)
>> func -60 __ipipe_mach_set_dec+0x10 (xntimer_tick_aperiodic+0x2fc)
>> [ 184] samplin 99 -69 xnpod_resume_thread+0x5c (xnthread_periodic_handler+0x30)
>> func -71 xnpod_resume_thread+0x10 (xnthread_periodic_handler+0x30)
>> func -73 xnthread_periodic_handler+0x10 (xntimer_tick_aperiodic+0xcc)
>> func -77 xntimer_tick_aperiodic+0x14 (xnpod_announce_tick+0x14)
>> func -79 xnpod_announce_tick+0x10 (xnintr_irq_handler+0x54)
>> func -82 xnintr_irq_handler+0x14 (xnintr_clock_handler+0x20)
>> func -84 xnintr_clock_handler+0x10 (__ipipe_dispatch_wired+0xe4)
>> kernel BUG at kernel/sched.c:3337!
>> Unable to handle kernel NULL pointer dereference at virtual address 00000000
>> pgd = c1a44000
>> [00000000] *pgd=21a1a031, *pte=00000000, *ppte=00000000
>> Internal error: Oops: 817 [#1]
>> Modules linked in:
>> CPU: 0
>> PC is at __bug+0x44/0x58
>> LR is at __ipipe_sync_stage+0x10/0x294
>> pc : [<c001ed08>] lr : [<c0051414>] Not tainted
>> sp : c1e8ff64 ip : 00000000 fp : c1e8ff74
>> r10: 003a5b10 r9 : c1e8e000 r8 : 00000000
>> r7 : 33333333 r6 : 00000000 r5 : c01ba860 r4 : 00000000
>> r3 : 00000000 r2 : c01ba880 r1 : 00000000 r0 : 00000001
>> Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
>> Control: C000717F
>> Table: 21A44000 DAC: 00000015
>> Process display-181 (pid: 183, stack limit = 0xc1e8e250)
>> Stack: (0xc1e8ff64 to 0xc1e90000)
>> ff60: ffffffff c1e8ffac c1e8ff78 c0181588 c001ecd4 c1e8ff84 c0020340
>> ff80: c002007c ffffffff fefff000 00000000 33333333 00000000 c1e8e000 003a5b10
>> ffa0: 00000000 c1e8ffb0 c001ae04 c0181530 0011b333 33000000 07d00000 00000000
>> ffc0: 20280000 03200000 00000000 33333333 0000b714 0002e180 003a5b10 00011490
>> ffe0: 00800000 be7ffa4c fb500000 0000ace0 80000010 ffffffff d1208a16 010582a6
>> Backtrace:
>> [<c001ecc4>] (__bug+0x0/0x58) from [<c0181588>] (schedule+0x68/0x86c)
>> r4 = FFFFFFFF
>> [<c0181520>] (schedule+0x0/0x86c) from [<c001ae04>] (ret_slow_syscall+0x0/0x10)
>> Code: 1b0048fa e59f0014 eb0048f8 e3a03000 (e5833000)
>>
>>
>> Hope this helps!!!
>
> A litte more effort: could you set /proc/ipipe/trace/back_trace_points
> to a huge value like 16000 points.
>
But compress before submit...
The attached patch may help to increase the information of the trace.
Jan
[-- Attachment #1.2: Nachricht als Anhang --]
[-- Type: message/rfc822, Size: 4368 bytes --]
[-- Attachment #1.2.1.1.1: Type: text/plain, Size: 761 bytes --]
Index: linux-2.6.20.1/kernel/ipipe/tracer.c
===================================================================
--- linux-2.6.20.1.orig/kernel/ipipe/tracer.c
+++ linux-2.6.20.1/kernel/ipipe/tracer.c
@@ -622,6 +622,18 @@ void ipipe_trace_panic_dump(void)
struct ipipe_trace_point *point = &panic_path->point[pos];
long time;
char buf[16];
+ int i;
+
+ printk(" %c", (point->flags & IPIPE_TFLG_HWIRQ_OFF) ?
+ '|' : ' ');
+
+ for (i = IPIPE_TFLG_DOMSTATE_BITS; i >= 0; i--)
+ printk("%c",
+ (IPIPE_TFLG_CURRENT_DOMAIN(point) == i) ?
+ (IPIPE_TFLG_DOMAIN_STALLED(point, i) ?
+ '#' : '+') :
+ (IPIPE_TFLG_DOMAIN_STALLED(point, i) ?
+ '*' : ' '));
if (!point->eip)
printk("-<invalid>-\n");
[-- Attachment #1.2.1.1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
[-- Attachment #1.2.1.2: Type: text/plain, Size: 135 bytes --]
_______________________________________________
Adeos-main mailing list
Adeos-main@domain.hid
https://mail.gna.org/listinfo/adeos-main
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next prev parent reply other threads:[~2007-02-23 15:28 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-23 11:27 [Xenomai-core] latency hangs on AT91RM9200 Steven Scholz
2007-02-23 13:16 ` Gilles Chanteperdrix
2007-02-23 13:26 ` Philippe Gerum
2007-02-23 13:53 ` Steven Scholz
2007-02-23 13:50 ` Steven Scholz
2007-02-23 13:57 ` Philippe Gerum
2007-02-23 13:56 ` Steven Scholz
2007-02-23 14:12 ` Philippe Gerum
2007-02-23 14:16 ` Steven Scholz
2007-02-23 14:11 ` Gilles Chanteperdrix
2007-02-23 14:14 ` Steven Scholz
2007-02-23 14:21 ` Jan Kiszka
2007-02-23 15:02 ` Steven Scholz
2007-02-23 15:09 ` Jan Kiszka
2007-02-23 14:24 ` Gilles Chanteperdrix
2007-02-23 14:33 ` Steven Scholz
2007-02-23 15:05 ` Gilles Chanteperdrix
2007-02-23 14:36 ` Jan Kiszka
2007-02-23 14:39 ` Steven Scholz
2007-02-23 14:41 ` Jan Kiszka
2007-02-26 10:11 ` Steven Scholz
2007-02-23 13:25 ` Philippe Gerum
2007-02-23 13:49 ` Steven Scholz
2007-02-23 15:14 ` Steven Scholz
2007-02-23 15:23 ` Gilles Chanteperdrix
2007-02-23 15:28 ` Jan Kiszka [this message]
2007-02-23 16:41 ` Gilles Chanteperdrix
2007-02-26 10:17 ` Gilles Chanteperdrix
2007-02-26 11:21 ` Gilles Chanteperdrix
2007-02-26 13:36 ` Steven Scholz
2007-03-08 8:28 ` Steven Scholz
2007-03-08 8:43 ` Gilles Chanteperdrix
2007-03-08 8:46 ` Steven Scholz
2007-03-08 9:18 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45DF0833.9080907@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=Xenomai-core@domain.hid \
--cc=steven.scholz@domain.hid \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.