From: 梁权 <liang_1911@163.com>
To: xenomai@xenomai.org
Subject: every millicsecond interrupt in xenomai domain on a am355x board can cause something wrong?
Date: Thu, 29 Nov 2018 16:03:00 +0800 (CST) [thread overview]
Message-ID: <6a75de9a.bb14.1675e7e151a.Coremail.liang_1911@163.com> (raw)
hi,
i'm work on a customed board with TI am335X; i have installed xenomai 3 on it correcttly , and can run the latency test.
On this board, an interrupt which cannot be masked and delayed will be generated every millicsecond by a FPGA ;
to handler this interrupt immediately, i register the interrupt handler in xenomai domain.Also there is a QT applictation running on the board; and here is the problem i encounter:
if i open the interrupt and run the QT application simultaneously, the QT application will get wrong like this after a few minutes(but the linux is still running fine):
[ 1601.496828] Unhandled fault: page domain fault (0x01b) at 0xb6fa135c
[ 1601.503233] pgd = c5ea4000
[ 1601.505947] [b6fa135c] *pgd=8571e831, *pte=80be818f, *ppte=80be8a3e
[ 1601.512291] Internal error: : 1b [#2] PREEMPT ARM
[ 1601.517019] Modules linked in: motionDrv(O) FPGA(O)
[ 1601.521930] CPU: 0 PID: 882 Comm: HMI_V2 Tainted: G D O 4.14.67-gd315a9bb00 #104
[ 1601.530317] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 1601.536418] I-pipe domain: Linux
[ 1601.539651] task: c5537600 task.stack: c52f4000
[ 1601.544226] PC is at __und_svc+0x70/0x84
[ 1601.548160] LR is at __und_svc+0x68/0x84
[ 1601.552095] pc : [<c010cef0>] lr : [<c010cee8>] psr: 60000193
[ 1601.558409] sp : c52f5fa8 ip : 20000193 fp : 32450e8c
[ 1601.563624] r10: b6fb8dc8 r9 : c52f4000 r8 : 0000001a
[ 1601.568870] r7 : c52f5fdc r6 : ffffffff r5 : 60000113 r4 : b6fa1360
[ 1601.575428] r3 : c0c901c0 r2 : 20000193 r1 : c52f5fa8 r0 : 00000000
[ 1601.581986] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
[ 1601.589245] Control: 10c5387d Table: 85ea4019 DAC: 00000051
[ 1601.595010] Process HMI_V2 (pid: 882, stack limit = 0xc52f4218)
[ 1601.600957] Stack: (0xc52f5fa8 to 0xc52f6000)
[ 1601.605319] 5fa0: 00000000 0000021b 000003eb b616f100 00000004 00000000
[ 1601.613554] 5fc0: b5400708 b6fb3550 0000001a 00000000 b6fb8dc8 32450e8c bedfd7b8 c52f5ff8
[ 1601.621759] 5fe0: b6fa135a b6fa1360 60000113 ffffffff 00000055 bf000000 00000000 00000000
[ 1601.629964] Backtrace: invalid frame pointer 0x32450e8c
[ 1601.635210] Code: e1a0100d eb0265e0 e3500000 1a000006 (e5140004)
[ 1601.641340] ---[ end trace 0eef451faa9b7a24 ]---
or like this:
Unable to handle kernel paging request at virtual address e5bcfe84
[ 1789.775575] pgd = c5ef0000
[ 1789.778320] [e5bcfe84] *pgd=00000000
[ 1789.781919] Internal error: Oops: 80000005 [#4] PREEMPT ARM
[ 1789.787500] Modules linked in: motionDrv(O) FPGA(O)
[ 1789.792442] CPU: 0 PID: 1135 Comm: HMI_V2 Tainted: G D O 4.14.67-gd315a9bb00 #104
[ 1789.800890] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 1789.807021] I-pipe domain: Linux
[ 1789.810254] task: c5423600 task.stack: c5e14000
[ 1789.814799] PC is at 0xe5bcfe84
[ 1789.817971] LR is at 0xb57a00fb
[ 1789.821112] pc : [<e5bcfe84>] lr : [<b57a00fb>] psr: 000f0113
[ 1789.827395] sp : c5e15ff8 ip : b59b1cdc fp : 0016e634
[ 1789.832642] r10: 0016e636 r9 : 0000000a r8 : bec38350
[ 1789.837888] r7 : 0031c7e8 r6 : bec38218 r5 : bec38204 r4 : 008c2a38
[ 1789.844445] r3 : 00000000 r2 : 00000000 r1 : 0000003a r0 : 00000001
[ 1789.851003] Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 1789.858171] Control: 10c5387d Table: 85ef0019 DAC: 00000055
[ 1789.863935] Process HMI_V2 (pid: 1135, stack limit = 0xc5e14218)
[ 1789.869975] Stack: (0xc5e15ff8 to 0xc5e16000)
[ 1789.874336] 5fe0: 00000000 00000000
[ 1789.882541] Backtrace: invalid frame pointer 0x0016e634
[ 1789.887787] Code: bad PC value
[ 1789.890868] ---[ end trace 0eef451faa9b7a26 ]---
i don't think it is something wrong with the QT application; becase if i shut down the every millicsecond interrupt,
it can run fine for 24 hours or more. And i use the 'top' command to check the QT application , found that
it only occupy %2~%3 cpu usage, and its physical memory consumption is about 40M, the system still get 35M memory free.
here is the isr of the interrupt, i just do very simple things:
static int int1msHandler(rtdm_irq_t *irq_handle)
{
*(unsigned int *)(intc_reg_base + OFFSET_INTC_CONTROL) = 0x1;//enable new IRQ generation
times1ms++; //just for test
//udd_notify_event(&device);
return RTDM_IRQ_HANDLED;
}
so it is possible that the xenomai domain interrupt is too frequently that the linux domain system call cannot be handle somtimes ? and how to slove this problem?
and here is my board info: linux 4.14 + ipipe-core-4.14.71-arm-4.patch + xenomai3.0.7 ; the am3352 is runing at 800M HZ frequency
Any help or clue are OK.
Thanks,
liang
--
----------------------------------------------
梁权
THANKS & BR!
next reply other threads:[~2018-11-29 8:03 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-29 8:03 梁权 [this message]
2018-11-29 11:14 ` every millicsecond interrupt in xenomai domain on a am355x board can cause something wrong? Jan Kiszka
2018-11-29 15:15 ` 梁权
2018-11-29 15:25 ` Jan Kiszka
2018-11-29 15:58 ` 梁权
2018-11-29 14:34 ` Philippe Gerum
2018-11-29 15:27 ` 梁权
2018-11-29 15:39 ` Greg Gallagher
2018-11-29 15:50 ` 梁权
2018-11-29 16:40 ` Philippe Gerum
2018-11-30 16:44 ` 梁权
2018-12-02 7:07 ` 梁权
2018-12-02 10:00 ` Philippe Gerum
2018-12-05 4:17 ` 梁权
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=6a75de9a.bb14.1675e7e151a.Coremail.liang_1911@163.com \
--to=liang_1911@163.com \
--cc=xenomai@xenomai.org \
/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.