rwl manipulation fails when
Yamato Kira <[email protected]> Thu, 1 Dec 2016 08:29:16 +0000
| Newsgroups | gmane.linux.real-time.rtai |
|---|---|
| Message-ID | <DM5PR19MB1548AED396A11DB459FAE2BBC58F0@DM5PR19MB1548.namprd19.prod.outlook.com> |
Hi, everyone
I am trying to use the RWL to achieve a synchronization of data processing on LinuxCNC which has an RTAI core of 3.9.
The RWL I used can be initialized correctly in a thread, but it caused a kernel error when I try to lock it or unlock it. Have you ever meet this problem before? Or can you help me to fix it? 3Q~
The RWL codes I used read as:
**************************************************
RWL * rt_RWL_01;
......
rt_RWL_01 = rt_rwl_init(nam2num("RWL1"));
if(0==rt_RWL_01){
printf("RWL Init Fails %d\n",rt_RWL_01);
}else{
printf("RWL Init Succeeds %d\n",rt_RWL_01);
}
......
while(1){
......
printf("Before RWL\n");
rt_rwl_wrlock(rt_RWL_01);
//rt_rwl_unlock(rt_RWL_01);
printf("After RWL\n");
}
**************************************************
and the dmesg command gives:
kern :alert : [ 2855.372788] BUG: unable to handle kernel NULL pointer dereference at 0000007c
kern :alert : [ 2855.372793] IP: [<f86f2760>] rt_rwl_wrlock+0x30/0x200 [rtai_sched]
kern :warn : [ 2855.372798] *pde = 00000000
kern :warn : [ 2855.372801] Oops: 0000 [#2] PREEMPT SMP
kern :warn : [ 2855.372804] Modules linked in: rtai_sched(O) rtai_hal(O) parport_pc ppdev lp parport rfcomm bnep uinput nfsd nfs nfs_acl auth_rpcgss fscache lockd sunrpc loop snd_hda_codec_realtek btusb bluetooth uvcvideo snd_hda_intel snd_hda_codec videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media ideapad_laptop i2c_core sparse_keymap snd_hwdep snd_pcm coretemp rfkill snd_page_alloc evdev serio_raw snd_seq snd_seq_device snd_timer snd crc32c_intel aesni_intel aes_i586 aes_generic battery ac cryptd power_supply wmi soundcore video button ext4 crc16 jbd2 mbcache usbhid hid sg sd_mod crc_t10dif microcode xhci_hcd ahci libahci r8169 mii libata scsi_mod ehci_hcd fan thermal_sys usbcore usb_common [last unloaded: psmouse]
kern :warn : [ 2855.372859]
kern :warn : [ 2855.372862] Pid: 4345, comm: RTAI1 Tainted: G D O 3.4-9-rtai-686-pae #1 LENOVO 80HR/ZHAOYANG E40-80
kern :warn : [ 2855.372866] EIP: 0060:[<f86f2760>] EFLAGS: 00213002 CPU: 1
kern :warn : [ 2855.372870] EIP is at rt_rwl_wrlock+0x30/0x200 [rtai_sched]
kern :warn : [ 2855.372872] EAX: 00000200 EBX: 00000000 ECX: f8702c00 EDX: 00000000
kern :warn : [ 2855.372874] ESI: 00000030 EDI: 00000201 EBP: f2b19f70 ESP: f2b19ee4
kern :warn : [ 2855.372876] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
kern :warn : [ 2855.372877] CR0: 80050033 CR2: 0000007c CR3: 36a9f000 CR4: 001407d0
kern :warn : [ 2855.372879] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
kern :warn : [ 2855.372881] DR6: fffe0ff0 DR7: 00000400
kern :emerg : [ 2855.372883] Process RTAI1 (pid: 4345, ti=f2b18000 task=f2b4ad80 task.ti=f2b18000)
kern :emerg : [ 2855.372885] I-pipe domain Linux
kern :emerg : [ 2855.372886] Stack:
kern :warn : [ 2855.372887] f77c8e00 d17a140a 00000298 1dcd6500 f8766220 f86f2730 b74ea324 f86e4375
kern :warn : [ 2855.372894] 00000000 b76514e0 00000000 f8766220 003d0f00 b74ea388 08049ab9 00000000
kern :warn : [ 2855.372901] 00000001 c1053a4d f77c8e00 f77c8e00 f77c8e00 f2b4ad80 f2b4af40 00000001
kern :emerg : [ 2855.372908] Call Trace:
kern :warn : [ 2855.372913] [<f86f2730>] ? rt_rwl_rdlock+0x210/0x210 [rtai_sched]
kern :warn : [ 2855.372917] [<f86e4375>] ? handle_lxrt_request+0xa5/0xaf0 [rtai_sched]
kern :warn : [ 2855.372922] [<c1053a4d>] ? pick_next_task_fair+0x4d/0x110
kern :warn : [ 2855.372925] [<c1362a62>] ? __schedule+0x132/0x400
kern :warn : [ 2855.372930] [<f86e4e18>] ? rtai_lxrt_invoke+0x58/0x180 [rtai_sched]
kern :warn : [ 2855.372934] [<f86e3945>] ? lxrt_intercept_syscall+0x75/0x100 [rtai_sched]
kern :warn : [ 2855.372938] [<c10e851b>] ? sys_write+0x5b/0x70
kern :warn : [ 2855.372941] [<c10979ec>] ? __ipipe_notify_kevent+0xc/0x10
kern :warn : [ 2855.372944] [<c101af46>] ? __ipipe_syscall_root+0x36/0xd0
kern :warn : [ 2855.372947] [<c1368bff>] ? sysenter_past_esp+0x5c/0x73
kern :emerg : [ 2855.372948] Code: 10 8b 5c 24 20 9c 58 fa 25 00 02 00 00 64 8b 15 10 e7 4f c1 f0 0f ab 15 90 d1 72 f8 19 d2 85 d2 0f 84 ed 00 00 00 89 c7 8d 73 30 <8b> 43 7c 85 c0 0f 84 85 00 00 00 89 34 24 e8 4d e9 ff ff 3d 00
kern :emerg : [ 2855.372991] EIP: [<f86f2760>] rt_rwl_wrlock+0x30/0x200 [rtai_sched] SS:ESP 0068:f2b19ee4
kern :warn : [ 2855.372996] CR2: 000000000000007c
kern :warn : [ 2855.372999] ---[ end trace 61a57933bf2bc264 ]---
kern :err : [ 2855.373002] BUG: Unhandled exception over domain RTAI at 0xf86f2760 - switching to ROOT
kern :warn : [ 2855.373004] Pid: 4345, comm: RTAI1 Tainted: G D O 3.4-9-rtai-686-pae #1
kern :warn : [ 2855.373005] Call Trace:
kern :warn : [ 2855.373007] [<c101adb0>] ? __ipipe_handle_exception+0x220/0x230
kern :warn : [ 2855.373009] [<f86f2760>] ? rt_rwl_wrlock+0x30/0x200 [rtai_sched]
kern :warn : [ 2855.373011] [<c13647f0>] ? error_code+0x6c/0x7c
kern :warn : [ 2855.373013] [<c104007b>] ? __alloc_workqueue_key+0x36b/0x3e0
kern :warn : [ 2855.373014] [<f86f2760>] ? rt_rwl_wrlock+0x30/0x200 [rtai_sched]
kern :warn : [ 2855.373016] [<f86f2730>] ? rt_rwl_rdlock+0x210/0x210 [rtai_sched]
kern :warn : [ 2855.373018] [<f86e4375>] ? handle_lxrt_request+0xa5/0xaf0 [rtai_sched]
kern :warn : [ 2855.373020] [<c1053a4d>] ? pick_next_task_fair+0x4d/0x110
kern :warn : [ 2855.373022] [<c1362a62>] ? __schedule+0x132/0x400
kern :warn : [ 2855.373024] [<f86e4e18>] ? rtai_lxrt_invoke+0x58/0x180 [rtai_sched]
kern :warn : [ 2855.373026] [<f86e3945>] ? lxrt_intercept_syscall+0x75/0x100 [rtai_sched]
kern :warn : [ 2855.373028] [<c10e851b>] ? sys_write+0x5b/0x70
kern :warn : [ 2855.373030] [<c10979ec>] ? __ipipe_notify_kevent+0xc/0x10
kern :warn : [ 2855.373032] [<c101af46>] ? __ipipe_syscall_root+0x36/0xd0
kern :warn : [ 2855.373033] [<c1368bff>] ? sysenter_past_esp+0x5c/0x73
kern :info : [ 2855.373036] note: RTAI1[4345] exited with preempt_count 2
kern :warn : [ 2855.373097] LXRT releases PID 4345 (ID: RTAI1).
kern :warn : [ 3065.563237] LXRT releases PID 4346 (ID: RTAI1).
kern :warn : [ 3065.572713] LXRT releases PID 4344 (ID: RTAI1).
**************************************************
_______________________________________________
Rtai mailing list
[email protected]
https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai