----- Den 13 sep 2019, på kl 17:02, Jan Kiszka jan.kis...@siemens.com skrev:

> On 13.09.19 16:58, Per Oberg via Xenomai wrote:
> > Dear all

>> I'm trying to figure out the significance and meaning of the following 
>> warning,
>> see [1] below . It's from when using the peak-linux-driver for their CAN
> > devices.

>> This warning happens every time my software opens or closes a rtdm/pcanx 
>> device.
>> I briefly touched upon this when talking to peak about other issues and got 
>> the
> > impression that they hadn't seen it themselves.

>> Everything is working just fine with full speed and real time performance so
>> there is no major problems that I can see. I use Yocto and thus have a quite
>> complicated build setup which can perhaps make things slip through, so I was
>> wondering if error in build flags could be the reason for this warning. The
>> code calls a library (pcanlib) which in turn makes the syscall, so I was
> > thinking that perhaps there be a problem with the linking of this library?

> > Any ideas?


> > [1]
> > ------------------------------------------------------------------------------------------------------------------------------------------------------
>> [357740.718504] WARNING: CPU: 1 PID: 1993 at
>> /usr/src/kernel/kernel/xenomai/rtdm/drvlib.c:1349
> > rtdm_mutex_timedlock+0x43/0x2f0
>> [357740.718505] Modules linked in: pcan(O) rtudp rtipv4 intel_powerclamp
>> intel_rapl i915 coretemp rt_igb e1000e rtnet video fan thermal_sys [last
> > unloaded: pcan]
>> [357740.718516] CPU: 1 PID: 1993 Comm: pcanfdtst Tainted: G W O
> > 4.9.90-xeno-cobolt #1
>> [357740.718517] Hardware name: Default string Default string/SKYBAY, BIOS
> > 5.0.1.1 04/18/2016
> > [357740.718518] I-pipe domain: Linux
>> [357740.718519] ffffc90005e0fd18 ffffffff81446e18 0000000000000000
> > 0000000000000000
>> [357740.718522] ffffffff81bb1370 ffffc90005e0fd58 ffffffff810785d1
> > 0000054505e0fdb0
>> [357740.718524] ffff880262a93000 ffff88024a342800 0000000000000002
> > ffff880262a93380
> > [357740.718527] Call Trace:
> > [357740.718530] [<ffffffff81446e18>] dump_stack+0xbf/0xe7
> > [357740.718533] [<ffffffff810785d1>] __warn+0xe1/0x100
> > [357740.718534] [<ffffffff810786bd>] warn_slowpath_null+0x1d/0x20
> > [357740.718536] [<ffffffff81170c43>] rtdm_mutex_timedlock+0x43/0x2f0
> > [357740.718538] [<ffffffff81170f02>] rtdm_mutex_lock+0x12/0x20
> > [357740.718542] [<ffffffffa06ab2ee>] pcan_open_nrt+0x6e/0x130 [pcan]

> You are taken a sleepy RT lock (mutex) over a non-RT context (open). That does
> not work.

> Either use a rtdm_lock_t or a different context.

So, definitely something in the driver-code then? 

I'm guessing that open is always non-rt and therefore a rtdm_lock should be 
used? (I remember seeing that in the peak-can code, but wrapped in ifdefs 
depending on build case....)

> Jan

> > [357740.718543] [<ffffffff8116c913>] __rtdm_dev_open+0x123/0x360
> > [357740.718545] [<ffffffff81205ce3>] ? getname_flags+0x53/0x190
> > [357740.718547] [<ffffffff81178c30>] ? get_timespec+0x70/0x70
> > [357740.718548] [<ffffffff81178c5a>] CoBaLt_open+0x2a/0x40
> > [357740.718550] [<ffffffff81188472>] ipipe_syscall_hook+0x112/0x350
> > [357740.718552] [<ffffffff810842cb>] ? recalc_sigpending+0x1b/0x50
> > [357740.718555] [<ffffffff8110acb8>] __ipipe_notify_syscall+0xc8/0x190
> > [357740.718556] [<ffffffff8110adaa>] ipipe_handle_syscall+0x2a/0xb0
> > [357740.718558] [<ffffffff81001c3d>] do_syscall_64+0x2d/0xf0
> > [357740.718561] [<ffffffff818dffbe>] entry_SYSCALL_64_after_swapgs+0x58/0xc6
> > [357740.718562] ---[ end trace 8c611fed369f2a4c ]---
> > ------------------------------------------------------------------------------------------------------------------------------------------------------


> --
> Siemens AG, Corporate Technology, CT RDA IOT SES-DE
> Corporate Competence Center Embedded Linux

Per Öberg 


Reply via email to