All of lore.kernel.org
 help / color / mirror / Atom feed
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!


             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.