From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8B4DA.434E6B67" Date: Tue, 13 May 2008 11:18:12 +0200 Message-ID: From: "Kaeppeler, Oliver" Subject: [Xenomai-help] gdb + multi-threaded application + Intel dual core processor + Xenomai => frozen system List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C8B4DA.434E6B67 Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C8B4DA.434E6B67" ------_=_NextPart_002_01C8B4DA.434E6B67 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Hello, =20 we get an frozen system, if we start a multi-threaded posix-skin application within the GNU-Debugger (gdb) on an Intel dual core processor. Precisely, the system freezes when threads are being created. Often the problem occurs when the third or fourth thread is being created. =20 Some further remarks: o We use OpenSUSE Linux 10.3 and Xenomai 2.4.3 over Linux Vanilla 2.6.24.5. Xenomai 2.4.0 over 2.6.23.9 shows simular behavier. o Toolchain SUSE 10.3 as is. =20 o We run "init 3", so no x-server o We tested some gdb-Versions (6.3, 6.6, 6.8), but the result remains the same. o The system does NOT freeze, if the dual core feature is deactivated in the BIOS (so the processor works just with ONE core)! o Without gdb the program runs as expected. =20 We attached a very small example program that creates 50 threads via pthread_create(). Each thread prints "Hello world", sleeps a few seconds and exits. We also attached the result of xeno-test (xeno-test.log.bz2) and /proc/config.gz. =20 To start the application "test1" within the debugger, just type the following: # gdb test1 (gdb) run =20 Does anybody know, why the system freezes? Thanks in advance! Oliver Kaeppeler. =20 =20 =20 =20 =20 ------_=_NextPart_002_01C8B4DA.434E6B67 Content-Type: text/html; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable
Hello,
 
we get an frozen system, if we start a=20 multi-threaded posix-skin application within the GNU-Debugger (gdb) on = an Intel=20 dual core processor. Precisely, the system freezes when threads are = being=20 created. Often the problem occurs when the third or fourth thread is = being=20 created.
 
Some further remarks:
o We use = OpenSUSE Linux=20 10.3 and Xenomai 2.4.3 over = Linux=20 Vanilla 2.6.24.5. Xenomai 2.4.0 over 2.6.23.9 shows simular=20 behavier.
o Toolchain SUSE 10.3 as is. 
o We run "init 3", so no x-server
o = We tested=20 some gdb-Versions (6.3, 6.6, 6.8), but the result remains the same.
o = The=20 system does NOT freeze, if the dual core feature is deactivated in the = BIOS=20 (so the processor works just = with ONE=20 core)!
o Without gdb the program runs as = expected.
 
We attached a very small example = program that=20 creates 50 threads via pthread_create(). Each thread prints "Hello = world",=20 sleeps a few seconds and exits. We also attached = the result of=20 xeno-test (xeno-test.log.bz2) and=20 /proc/config.gz.
 
To start the = application=20 "test1" within the debugger, just type the following:
# gdb = test1
(gdb)=20 run
 
Does anybody know, why the = system freezes?
Thanks in advance!
Oliver Kaeppeler.
 
 
 
 
 
------_=_NextPart_002_01C8B4DA.434E6B67-- ------_=_NextPart_001_01C8B4DA.434E6B67 Content-Type: application/octet-stream; name="test1.tar.bz2" Content-Transfer-Encoding: base64 Content-Description: test1.tar.bz2 Content-Disposition: attachment; filename="test1.tar.bz2" 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 ------_=_NextPart_001_01C8B4DA.434E6B67 Content-Type: application/octet-stream; name="xeno-test.log.bz2" Content-Transfer-Encoding: base64 Content-Description: xeno-test.log.bz2 Content-Disposition: attachment; filename="xeno-test.log.bz2" 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 ------_=_NextPart_001_01C8B4DA.434E6B67 Content-Type: application/x-gzip; name="config.gz" Content-Transfer-Encoding: base64 Content-Description: config.gz Content-Disposition: attachment; filename="config.gz" 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 ------_=_NextPart_001_01C8B4DA.434E6B67-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4829613B.3000500@domain.hid> Date: Tue, 13 May 2008 11:36:59 +0200 From: Jan Kiszka MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] gdb + multi-threaded application + Intel dual core processor + Xenomai => frozen system List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Kaeppeler, Oliver" Cc: xenomai@xenomai.org Kaeppeler, Oliver wrote: > Hello, > > we get an frozen system, if we start a multi-threaded posix-skin > application within the GNU-Debugger (gdb) on an Intel dual core > processor. Precisely, the system freezes when threads are being created. > Often the problem occurs when the third or fourth thread is being > created. > > Some further remarks: > o We use OpenSUSE Linux 10.3 and Xenomai 2.4.3 over Linux Vanilla > 2.6.24.5. Xenomai 2.4.0 over 2.6.23.9 shows simular behavier. > o Toolchain SUSE 10.3 as is. > o We run "init 3", so no x-server > o We tested some gdb-Versions (6.3, 6.6, 6.8), but the result remains > the same. > o The system does NOT freeze, if the dual core feature is deactivated in > the BIOS (so the processor works just with ONE core)! > o Without gdb the program runs as expected. > > We attached a very small example program that creates 50 threads via > pthread_create(). Each thread prints "Hello world", sleeps a few seconds > and exits. We also attached the result of xeno-test (xeno-test.log.bz2) > and /proc/config.gz. > > To start the application "test1" within the debugger, just type the > following: > # gdb test1 > (gdb) run > > Does anybody know, why the system freezes? Yep. Known issue. Already fixed in latest SVN trunk and 2.4.x. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Date: Tue, 13 May 2008 12:46:05 +0200 Message-ID: <0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid> References: <4829613B.3000500@domain.hid> From: "DOURNES Guillaume" Subject: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org Hello, I try to manage irq on my digital I/O board rtdm driver. So, I call rtdm_irq_request with RTDM_IRQTYPE_SHARED | RTDM_IRQTYPE_EDGE option to define my irq handler, in my rtdm open function. This irq handler works very good. So, I try to establish a callback system to inform my sofware when an valid interrupt is arrived. I don't know callback system, so i establish a rtdm semaphore. So, in my irq handler I call rtdm_sem_up, and I have an blocant ioctl where I call only rtdm_sem_down. To test this method, I write a test code, where I create a rt task by calling rt_task_create(&Handler_IT_task, "Handler IT Task",0,50,0); and rt_task_start(&Handler_IT_task, &Handler_IT_task_proc, NULL); And my task procedure is : void Handler_IT_task_proc (void * arg) { int ret; while(1) { ret =3D rt_dev_ioctl(IO_Card_ID, DISCRETS_IOC_WAIT_IT, 0); if (!ret) printf("IT detected\n"); else goto exit_Handler_IT_task; //rt_task_suspend(&Handler_IT_task); } exit_Handler_IT_task: printf("Exit Handler IT task\n"); } My problem is that on IT reception, my work station freeze. But, if I call a suspend task after my blocant ioctl (see comment), and I call an task resume by a gets in my main function, all my interrupts are founded correctly. I try to change the rtdm semaphore by a rtdm event, but the results are the same. So, why my sofware is frozen when the Handler task procedure keep the hand ? Can I establish a really callback function instead of a blocant ioctl ? Tanks. Guillaume Dournes. From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <48297566.1010607@domain.hid> Date: Tue, 13 May 2008 13:03:02 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid> In-Reply-To: <0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: DOURNES Guillaume Cc: xenomai@xenomai.org [ Please don't reply on earlier postings when starting a new thread. ] DOURNES Guillaume wrote: > Hello, > > I try to manage irq on my digital I/O board rtdm driver. > So, I call rtdm_irq_request with RTDM_IRQTYPE_SHARED | RTDM_IRQTYPE_EDGE > option to define my irq handler, in my rtdm open function. > This irq handler works very good. > So, I try to establish a callback system to inform my sofware when an > valid interrupt is arrived. > I don't know callback system, so i establish a rtdm semaphore. > So, in my irq handler I call rtdm_sem_up, and I have an blocant ioctl > where I call only rtdm_sem_down. > > To test this method, I write a test code, where I create a rt task by > calling rt_task_create(&Handler_IT_task, "Handler IT Task",0,50,0); and > rt_task_start(&Handler_IT_task, &Handler_IT_task_proc, NULL); > > And my task procedure is : > > void Handler_IT_task_proc (void * arg) > { > int ret; > while(1) > { > ret = rt_dev_ioctl(IO_Card_ID, DISCRETS_IOC_WAIT_IT, 0); > if (!ret) > printf("IT detected\n"); > else > goto exit_Handler_IT_task; > //rt_task_suspend(&Handler_IT_task); > } > exit_Handler_IT_task: > printf("Exit Handler IT task\n"); > } > > My problem is that on IT reception, my work station freeze. But, if I > call a suspend task after my blocant ioctl (see comment), and I call an > task resume by a gets in my main function, all my interrupts are founded > correctly. > > I try to change the rtdm semaphore by a rtdm event, but the results are > the same. > > So, why my sofware is frozen when the Handler task procedure keep the > hand ? Can I establish a really callback function instead of a blocant > ioctl ? Use CONFIG_XENO_OPT_WATCHDOG to ensure that you don't see a runaway thread here. Alternatively, you could break out of the loop after some iterations to check if this is the reason for your "locked-up" system. Note that, if we should help you beyond this, we will need the driver source code as well. How should we know otherwise when your driver returns 0 and how long it suspends the caller? Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8B4FA.D9429260" Date: Tue, 13 May 2008 15:11:25 +0200 Message-ID: <0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> References: <4829613B.3000500@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid> <48297566.1010607@domain.hid> From: "DOURNES Guillaume" Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai@xenomai.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C8B4FA.D9429260 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I join to this mail my source code of my driver and my test software. = The read and write function of this driver version are already tested, = and work as waiting. I tried to break out the loop. If I break out after 1 loop, the software = works, but if I break out after 2 loops, the sofware freeze and the = result (printf) of the first loop is not printed. For my test, the interrupt is generated every 10 secondes, but in fact = for my real software the interrupt will be generated every 5ms. =20 -----Message d'origine----- De : Jan Kiszka [mailto:jan.kiszka@domain.hid Envoy=E9 : mardi 13 mai 2008 13:03 =C0 : DOURNES Guillaume Cc : xenomai@xenomai.org Objet : Re: [Xenomai-help] Interrupt management under rtdm driver [ Please don't reply on earlier postings when starting a new thread. ] DOURNES Guillaume wrote: > Hello, >=20 > I try to manage irq on my digital I/O board rtdm driver. > So, I call rtdm_irq_request with RTDM_IRQTYPE_SHARED |=20 > RTDM_IRQTYPE_EDGE option to define my irq handler, in my rtdm open = function. > This irq handler works very good. > So, I try to establish a callback system to inform my sofware when an=20 > valid interrupt is arrived. > I don't know callback system, so i establish a rtdm semaphore. > So, in my irq handler I call rtdm_sem_up, and I have an blocant ioctl=20 > where I call only rtdm_sem_down. >=20 > To test this method, I write a test code, where I create a rt task by=20 > calling rt_task_create(&Handler_IT_task, "Handler IT Task",0,50,0);=20 > and rt_task_start(&Handler_IT_task, &Handler_IT_task_proc, NULL); >=20 > And my task procedure is : >=20 > void Handler_IT_task_proc (void * arg) { > int ret; > while(1) > { > ret =3D rt_dev_ioctl(IO_Card_ID, DISCRETS_IOC_WAIT_IT, 0); > if (!ret) > printf("IT detected\n"); > else > goto exit_Handler_IT_task; > //rt_task_suspend(&Handler_IT_task); > } > exit_Handler_IT_task: > printf("Exit Handler IT task\n"); > } >=20 > My problem is that on IT reception, my work station freeze. But, if I=20 > call a suspend task after my blocant ioctl (see comment), and I call=20 > an task resume by a gets in my main function, all my interrupts are=20 > founded correctly. >=20 > I try to change the rtdm semaphore by a rtdm event, but the results=20 > are the same. >=20 > So, why my sofware is frozen when the Handler task procedure keep the=20 > hand ? Can I establish a really callback function instead of a blocant = > ioctl ? Use CONFIG_XENO_OPT_WATCHDOG to ensure that you don't see a runaway = thread here. Alternatively, you could break out of the loop after some = iterations to check if this is the reason for your "locked-up" system. Note that, if we should help you beyond this, we will need the driver = source code as well. How should we know otherwise when your driver = returns 0 and how long it suspends the caller? Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center = Embedded Linux ------_=_NextPart_001_01C8B4FA.D9429260 Content-Type: application/octet-stream; name="V02R00.rar" Content-Transfer-Encoding: base64 Content-Description: V02R00.rar Content-Disposition: attachment; filename="V02R00.rar" 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 I7za2KdneB6kE+VrzwzX0YMN5XoYV57iO3DQEWRpStiHEVRyjKcjpK1Bk3IWC+lhUP+OF735pkoz XlaZCDIQ2w1zmHI45hNXVBOyoYU6jXI9dCfdg5uTFy473Nz4tMiJEMURzJYRRXQOko4lnETuBQU6 kd3f48Kd8YTu6G64Dc0JImwtclkKQHYMZGnUs5if87O98csyXdoBrSFUQkNQMTNcVSg/e0cxDKL6 6E/BGVn43nebOVxCiLdggbSwpMsjGJUkqtcdsOqT37UHj+9VV+yAGnd0IJA5AAIAAAACAAAAAhYI Jhrgipw4HTAXACEgAABWMDJSMDBcdGVzdFwuc3ZuXGZvcm1hdADANAqySHQggE8ABAAAAAQAAAAC xrRKg+GKnDgdMC8AISAAAFYwMlIwMFx0ZXN0XC5zdm5ccHJvcC1iYXNlXERJU0NSRVQuU1lSLnN2 bi1iYXNlRU5ECppSdCCATwAEAAAABAAAAALGtEqD4YqcOB0wLwAhIAAAVjAyUjAwXHRlc3RcLnN2 blxwcm9wLWJhc2VcZHJpdmVyX0lPLmMuc3ZuLWJhc2VFTkQKOxd0IIBPAAQAAAAEAAAAAsa0SoPh ipw4HTAvACEgAABWMDJSMDBcdGVzdFwuc3ZuXHByb3AtYmFzZVxJT19Db25maWcuYy5zdm4tYmFz ZUVORAr6xnQgkFEABAAAAAQAAAACxrRKg+CKnDgdMC8AISAAAFYwMlIwMFx0ZXN0XC5zdm5ccHJv cC1iYXNlXElPX0NvbmZpZy5oLnN2bi1iYXNlAMBFTkQKlqd0IIBPAAQAAAAEAAAAAsa0SoPhipw4 HTAvACEgAABWMDJSMDBcdGVzdFwuc3ZuXHByb3AtYmFzZVxJT19HbG9iYWwuYy5zdm4tYmFzZUVO RAphXHQggE8ABAAAAAQAAAACxrRKg+GKnDgdMC8AISAAAFYwMlIwMFx0ZXN0XC5zdm5ccHJvcC1i YXNlXElPX0dsb2JhbC5oLnN2bi1iYXNlRU5ECmbVdCCQUAAEAAAABAAAAALGtEqD4IqcOB0wLgAh IAAAVjAyUjAwXHRlc3RcLnN2blxwcm9wLWJhc2VcSU9fVHlwZXMuaC5zdm4tYmFzZQDARU5ECkqP dCCATAAEAAAABAAAAALGtEqD4YqcOB0wLAAhIAAAVjAyUjAwXHRlc3RcLnN2blxwcm9wLWJhc2Vc TWFrZWZpbGUuc3ZuLWJhc2VFTkQK3VV04JA/AAAAAAAAAAAAAgAAAABaeK04FDAaABAgAABWMDJS MDBcdGVzdFwuc3ZuXHByb3AtYmFzZQCw5U1Ap3l0IIBLAAQAAAAEAAAAAsa0SoPhipw4HTArACEg AABWMDJSMDBcdGVzdFwuc3ZuXHByb3BzXERJU0NSRVQuU1lSLnN2bi13b3JrRU5ECo9jdCCASwAE AAAABAAAAALGtEqD4YqcOB0wKwAhIAAAVjAyUjAwXHRlc3RcLnN2blxwcm9wc1xkcml2ZXJfSU8u Yy5zdm4td29ya0VORAouJnQggEsABAAAAAQAAAACxrRKg+GKnDgdMCsAISAAAFYwMlIwMFx0ZXN0 XC5zdm5ccHJvcHNcSU9fQ29uZmlnLmMuc3ZuLXdvcmtFTkQKY5Z0IJBNAAQAAAAEAAAAAsa0SoPg ipw4HTArACEgAABWMDJSMDBcdGVzdFwuc3ZuXHByb3BzXElPX0NvbmZpZy5oLnN2bi13b3JrAMBF TkQKg5Z0IIBLAAQAAAAEAAAAAsa0SoPhipw4HTArACEgAABWMDJSMDBcdGVzdFwuc3ZuXHByb3Bz XElPX0dsb2JhbC5jLnN2bi13b3JrRU5ECnRtdCCASwAEAAAABAAAAALGtEqD4YqcOB0wKwAhIAAA VjAyUjAwXHRlc3RcLnN2blxwcm9wc1xJT19HbG9iYWwuaC5zdm4td29ya0VORAqgXHQgkEwABAAA AAQAAAACxrRKg+CKnDgdMCoAISAAAFYwMlIwMFx0ZXN0XC5zdm5ccHJvcHNcSU9fVHlwZXMuaC5z dm4td29yawDARU5ECp6SdCCASAAEAAAABAAAAALGtEqD4YqcOB0wKAAhIAAAVjAyUjAwXHRlc3Rc LnN2blxwcm9wc1xNYWtlZmlsZS5zdm4td29ya0VORArkv3TgkDsAAAAAAAAAAAACAAAAAFp4rTgU MBYAECAAAFYwMlIwMFx0ZXN0XC5zdm5ccHJvcHMAsN2Fef6ZdCCQPQBuAAAAdgAAAAKwT9wy4Iqc OB0zGwAhIAAAVjAyUjAwXHRlc3RcLnN2blxSRUFETUUudHh0AMANUVDMvhD7yiv0E33KNBHeDbjm oTja16EUvuKISAeiT5FGZwzhmVL6gvJe9R/TMqi5iOfjt5gdSnoNZn3LSIdOm1pfL61Ch4oSgDyO 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 o8JhDZpQabDdUDyxb5DjEedU6plUUBgTNeZbHKJb/wtGZMfRYtz/6XWIlUavpyN9QDj/dCCATQCH AAAAhwAAAAJnV+lq4YqcOB0wLQAhIAAAVjAyUjAwXHRlc3RcLnN2blx3Y3Byb3BzXElPX0NvbmZp Zy5jLnN2bi13b3JrSyAyNQpzdm46d2M6cmFfZGF2OnZlcnNpb24tdXJsClYgOTQKL1JFUE9TSVRP UlkvMjAwNy4wODEwLyFzdm4vdmVyLzQvdHJ1bmsvQ1NJLjA3MDgxMC4wMzMvZHJpdmVycy9kaXNj cmV0cy9WMDFSMDAvdGVzdC9JT19Db25maWcuYwpFTkQKIBl0IIBNAIcAAACHAAAAAqSnLgDhipw4 HTAtACEgAABWMDJSMDBcdGVzdFwuc3ZuXHdjcHJvcHNcSU9fQ29uZmlnLmguc3ZuLXdvcmtLIDI1 CnN2bjp3YzpyYV9kYXY6dmVyc2lvbi11cmwKViA5NAovUkVQT1NJVE9SWS8yMDA3LjA4MTAvIXN2 bi92ZXIvNC90cnVuay9DU0kuMDcwODEwLjAzMy9kcml2ZXJzL2Rpc2NyZXRzL1YwMVIwMC90ZXN0 L0lPX0NvbmZpZy5oCkVORApys3QggE0AhwAAAIcAAAAC9S4Z8+GKnDgdMy0AISAAAFYwMlIwMFx0 ZXN0XC5zdm5cd2Nwcm9wc1xJT19HbG9iYWwuYy5zdm4td29yawmQGMy9lBE3zhVeAN/l8EqzatEo gxIpQdVKyzRBhKH8lj312VZot4xnhynNHxnFukk+4joNN8SYb7sL4GgoXLxbtyFhLZOFJARX2P3s 8HR5CcpapS75ihs0oNHCkHjk32HGIv81ajzqKAwFeuZ63JFT/wtLMiPYsU54WHu5sx9XslSSvryJ 9X1RdCCATQCHAAAAhwAAAAI23t6Z4YqcOB0wLQAhIAAAVjAyUjAwXHRlc3RcLnN2blx3Y3Byb3Bz XElPX0dsb2JhbC5oLnN2bi13b3JrSyAyNQpzdm46d2M6cmFfZGF2OnZlcnNpb24tdXJsClYgOTQK L1JFUE9TSVRPUlkvMjAwNy4wODEwLyFzdm4vdmVyLzQvdHJ1bmsvQ1NJLjA3MDgxMC4wMzMvZHJp dmVycy9kaXNjcmV0cy9WMDFSMDAvdGVzdC9JT19HbG9iYWwuaApFTkQKoAd0IIBMAIYAAACGAAAA Aln3+C7hipw4HTAsACEgAABWMDJSMDBcdGVzdFwuc3ZuXHdjcHJvcHNcSU9fVHlwZXMuaC5zdm4t d29ya0sgMjUKc3ZuOndjOnJhX2Rhdjp2ZXJzaW9uLXVybApWIDkzCi9SRVBPU0lUT1JZLzIwMDcu MDgxMC8hc3ZuL3Zlci80L3RydW5rL0NTSS4wNzA4MTAuMDMzL2RyaXZlcnMvZGlzY3JldHMvVjAx UjAwL3Rlc3QvSU9fVHlwZXMuaApFTkQKlUR0IIBKAIQAAACEAAAAAkq+ISThipw4HTAqACEgAABW MDJSMDBcdGVzdFwuc3ZuXHdjcHJvcHNcTWFrZWZpbGUuc3ZuLXdvcmtLIDI1CnN2bjp3YzpyYV9k YXY6dmVyc2lvbi11cmwKViA5MQovUkVQT1NJVE9SWS8yMDA3LjA4MTAvIXN2bi92ZXIvNC90cnVu ay9DU0kuMDcwODEwLjAzMy9kcml2ZXJzL2Rpc2NyZXRzL1YwMVIwMC90ZXN0L01ha2VmaWxlCkVO RArCb3TgkD0AAAAAAAAAAAACAAAAAFp4rTgUMBgAECAAAFYwMlIwMFx0ZXN0XC5zdm5cd2Nwcm9w cwCw4elcUGZ04JA1AAAAAAAAAAAAAgAAAABaeK04FDAQABIgAABWMDJSMDBcdGVzdFwuc3ZuALDZ IZbMyXQggDcAVwEAADsCAAAC5zDzBOGKnDgdMxcAICAAAFYwMlIwMFx0ZXN0XERJU0NSRVQuU1lS DdlQzMvVwRN84Vk1AJFStJFLuhCUrSicqkcojVFC2UIlSSpuWovGzacOvMRCVLXXJHLAqoF0nA2m l9mez5/xx/2Y0/e9jfsS/fuHqg06O8LtgeZII5DsbBxncbLxDjsE+082R8MDQrV1dfqUQ0WUNIRA wuEcs5dXtGYM0xjSeGX589u0wt0bpnrOaYs8nINQI3ZbDx2kuyLEfBloSNplxeRZpZDRIvtkNZga gpQRsJeaP03LOiGaIyb2DAmbzlDIWZNvzTomB002u9w+MGOjHFTHj3jSo63SX7DVplRTYyVNtw1X wv942r7zql0KGVLwhw/0SuGJFdeSgyRO1KI7x09ZIs/xUqFCoXKWEZEQTLkOHZwV3L1QDhFLe+a5 Y1XN/HqWezOcRaZjjV6ho+8fksxNbRGU1dGvqP7LxJ7glDqs4Y5cUWUT54wt+EXHQVBIfqZ/j4T3 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 ------_=_NextPart_001_01C8B4FA.D9429260-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Tue, 13 May 2008 16:06:28 +0200 Message-ID: In-Reply-To: <4829613B.3000500@domain.hid> References: <4829613B.3000500@domain.hid> From: "Kaeppeler, Oliver" Subject: Re: [Xenomai-help] gdb + multi-threaded application + Intel dual core processor + Xenomai => frozen system List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai@xenomai.org Hello Jan, thanks for your answer. We had used Xenomai 2.4.3 in our tests. Now, I = also tried the daily snapshot version, but the problem remains. The problem should be reproducable by the sample program, we attached in = our last message... Regards, Oliver. =20 -----Urspr=FCngliche Nachricht----- Von: Jan Kiszka [mailto:jan.kiszka@domain.hid Gesendet: Dienstag, 13. Mai 2008 11:37 An: Kaeppeler, Oliver Cc: xenomai@xenomai.org Betreff: Re: [Xenomai-help] gdb + multi-threaded application + Intel = dual core processor + Xenomai =3D> frozen system Kaeppeler, Oliver wrote: > Hello, > =20 > we get an frozen system, if we start a multi-threaded posix-skin=20 > application within the GNU-Debugger (gdb) on an Intel dual core=20 > processor. Precisely, the system freezes when threads are being = created. > Often the problem occurs when the third or fourth thread is being=20 > created. > =20 > Some further remarks: > o We use OpenSUSE Linux 10.3 and Xenomai 2.4.3 over Linux Vanilla=20 > 2.6.24.5. Xenomai 2.4.0 over 2.6.23.9 shows simular behavier. > o Toolchain SUSE 10.3 as is. =20 > o We run "init 3", so no x-server > o We tested some gdb-Versions (6.3, 6.6, 6.8), but the result remains=20 > the same. > o The system does NOT freeze, if the dual core feature is deactivated=20 > in the BIOS (so the processor works just with ONE core)! > o Without gdb the program runs as expected. > =20 > We attached a very small example program that creates 50 threads via=20 > pthread_create(). Each thread prints "Hello world", sleeps a few=20 > seconds and exits. We also attached the result of xeno-test=20 > (xeno-test.log.bz2) and /proc/config.gz. > =20 > To start the application "test1" within the debugger, just type the > following: > # gdb test1 > (gdb) run > =20 > Does anybody know, why the system freezes? Yep. Known issue. Already fixed in latest SVN trunk and 2.4.x. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center = Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4829A948.6080806@domain.hid> Date: Tue, 13 May 2008 16:44:24 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] gdb + multi-threaded application + Intel dual core processor + Xenomai => frozen system List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Kaeppeler, Oliver" Cc: xenomai@xenomai.org Kaeppeler, Oliver wrote: > Hello Jan, > > thanks for your answer. We had used Xenomai 2.4.3 in our tests. Now, I also tried the daily snapshot version, but the problem remains. > > The problem should be reproducable by the sample program, we attached in our last message... OK, will give this a try later today. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482B3BCF.8090700@domain.hid> Date: Wed, 14 May 2008 21:21:51 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> In-Reply-To: <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig5B7F2E98ED999034DF6E0D77" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: DOURNES Guillaume Cc: xenomai@xenomai.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig5B7F2E98ED999034DF6E0D77 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable DOURNES Guillaume wrote: > Since I add the watchdog option in my kernel configuration, The softwar= e doesn't block. > But I obtain an EPREM (-1) error on the second call of rtdm_event_timed= wait, and in dmesg : Xenomai: assertion failed at kernel/xenomai/skins/rt= dm/drvlib.c:919 (!xnpod_unblockable_p()). See, that is interesting. > I don't understand why I have this error, because the rtdm_event_timedw= ait is used as the 16550A rtserial rtdm driver. And I use this rtserial d= river, and it works. > Note that this problem doesn't appears when I call rt_task_suspend just= after my rtdm_event_timedwait, and I resume the task by a gets. After having a look at your driver source meanwhile, the problem is that you register your IOCTL handler also for handling invocation from non-RT (precisely: "secondary") context. But rtdm_event_timedwait always requires primary (RT) context. That is something you either have to check in the IOCTL handler before trying to block a caller - or you simply do not register for nrt_ioctl (or use a different handler for the set of IOCTLs in that context). The reason that suspending the caller made this issue go away was that you have several plain Linux services in your RT loop that switches the caller automatically to secondary mode. Thus the first IOCTL succeeded, but the second failed after re-entering it now as a plain Linux caller. HTH, Jan --------------enig5B7F2E98ED999034DF6E0D77 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFIKzvSniDOoMHTA+kRAsNSAJwIMieOdY7bNGZG4IqRf67lJS+8FgCfZQuZ rTIFV2qD/Brlpvm9jld9WNE= =tSfW -----END PGP SIGNATURE----- --------------enig5B7F2E98ED999034DF6E0D77-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4829AA19.8070405@domain.hid> Date: Tue, 13 May 2008 16:47:53 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid> <48297566.1010607@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> In-Reply-To: <0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: DOURNES Guillaume Cc: xenomai@xenomai.org DOURNES Guillaume wrote: > *********************** > Warning: Your file, V02R00.rar, contains more than 32 files after decompression and cannot be scanned. > *********************** > > > I join to this mail my source code of my driver and my test software. The read and write function of this driver version are already tested, and work as waiting. > > I tried to break out the loop. If I break out after 1 loop, the software works, but if I break out after 2 loops, the sofware freeze and the result (printf) of the first loop is not printed. Didn't have to time to unpack your archive (is the driver so complex?). So you may try to continue with debugging: Does the watchdog catch something? Is there something on the kernel console after lockup. If not, attach a serial line and redirect the console to it. Maybe you see an oops. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482B3EE5.9030702@domain.hid> Date: Wed, 14 May 2008 21:35:01 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> In-Reply-To: <482B3BCF.8090700@domain.hid> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig4159F92271ED2B4E9605AFF7" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: DOURNES Guillaume Cc: xenomai@xenomai.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig4159F92271ED2B4E9605AFF7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Jan Kiszka wrote: > DOURNES Guillaume wrote: >> Since I add the watchdog option in my kernel configuration, The softwa= re doesn't block. >> But I obtain an EPREM (-1) error on the second call of rtdm_event_time= dwait, and in dmesg : Xenomai: assertion failed at kernel/xenomai/skins/r= tdm/drvlib.c:919 (!xnpod_unblockable_p()). >=20 > See, that is interesting. >=20 >> I don't understand why I have this error, because the rtdm_event_timed= wait is used as the 16550A rtserial rtdm driver. And I use this rtserial = driver, and it works. >> Note that this problem doesn't appears when I call rt_task_suspend jus= t after my rtdm_event_timedwait, and I resume the task by a gets. >=20 > After having a look at your driver source meanwhile, the problem is tha= t > you register your IOCTL handler also for handling invocation from non-R= T > (precisely: "secondary") context. But rtdm_event_timedwait always > requires primary (RT) context. That is something you either have to > check in the IOCTL handler before trying to block a caller - or you > simply do not register for nrt_ioctl (or use a different handler for th= e > set of IOCTLs in that context). >=20 > The reason that suspending the caller made this issue go away was that > you have several plain Linux services in your RT loop that switches the= > caller automatically to secondary mode. Thus the first IOCTL succeeded,= > but the second failed after re-entering it now as a plain Linux caller.= =2E..But suspending the thread shortly before IOCTL re-entry automaticall= y switch it back into the right (=3D=3DRT) context. Jan --------------enig4159F92271ED2B4E9605AFF7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFIKz7oniDOoMHTA+kRAp5LAJ4xrfxaCfiTic+gbOzSjzNLOz8E+wCeIL0l VwEaiM7FzWFOzlFzq4kLKjQ= =bAQo -----END PGP SIGNATURE----- --------------enig4159F92271ED2B4E9605AFF7-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Thu, 15 May 2008 12:24:33 +0200 Message-ID: <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> From: "DOURNES Guillaume" Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jan.kiszka@domain.hid Cc: xenomai@xenomai.org Thanks a lot for your attention. And sorry for my poor english. I change my context into a real RT context and my problem disappears. Nevertheless, I have other questions about the IRQ management. In fact, after executing my software application (so after the = rtdm_close call, and so the free irq), I obtain a syslog message : = kernel Disabling IRQ #11. This message doesn't affect my software if I = run it again, but may be there are some side effect. In dmesg, the = following error message appears : irq 11: nobody cared (try booting with = the "irqpoll" option). In my open function I call :=20 - request_region - rtdm_irq_request In my close function I call : - rtdm_irq_free - release_region May be there is a function to call to avoid this disabling irq ? Moreover, when I'm using my discrets I/O driver (on the IRQ 11) and I = add an USB Key (on this IRQ 11) the software freeze. Note that my USB = Key works normaly before I call my open function, and doesn't work after = my software execution, may be because of the Disabling IRQ. Note that the freeze appears with the 16550A rtdm driver use. For = example, when my keyboard irq is the same as the seria board irq, the = computer freeze when the driver is running and the keyboard is using at = the same moment. I think that the linux irq and xenomai irq are not usable at the same = time ! Note that my kernel is configured with shared interrupt. Guillaume. -----Message d'origine----- De : jan.kiszka@domain.hid [mailto:jan.kiszka@domain.hid Envoy=E9 : mercredi 14 mai 2008 21:35 =C0 : DOURNES Guillaume Cc : xenomai@xenomai.org Objet : Re: [Xenomai-help] Interrupt management under rtdm driver Jan Kiszka wrote: > DOURNES Guillaume wrote: >> Since I add the watchdog option in my kernel configuration, The = software doesn't block. >> But I obtain an EPREM (-1) error on the second call of = rtdm_event_timedwait, and in dmesg : Xenomai: assertion failed at = kernel/xenomai/skins/rtdm/drvlib.c:919 (!xnpod_unblockable_p()). >=20 > See, that is interesting. >=20 >> I don't understand why I have this error, because the = rtdm_event_timedwait is used as the 16550A rtserial rtdm driver. And I = use this rtserial driver, and it works. >> Note that this problem doesn't appears when I call rt_task_suspend = just after my rtdm_event_timedwait, and I resume the task by a gets. >=20 > After having a look at your driver source meanwhile, the problem is=20 > that you register your IOCTL handler also for handling invocation from = > non-RT > (precisely: "secondary") context. But rtdm_event_timedwait always=20 > requires primary (RT) context. That is something you either have to=20 > check in the IOCTL handler before trying to block a caller - or you=20 > simply do not register for nrt_ioctl (or use a different handler for=20 > the set of IOCTLs in that context). >=20 > The reason that suspending the caller made this issue go away was that = > you have several plain Linux services in your RT loop that switches=20 > the caller automatically to secondary mode. Thus the first IOCTL=20 > succeeded, but the second failed after re-entering it now as a plain = Linux caller. ...But suspending the thread shortly before IOCTL re-entry automatically = switch it back into the right (=3D=3DRT) context. Jan From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8B517.7660037D" Date: Tue, 13 May 2008 18:36:15 +0200 Message-ID: <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> From: "DOURNES Guillaume" Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai@xenomai.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C8B517.7660037D Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Sorry my old archive contained svn files. I send again my cource code. I have some syslog message as kernel : Oops : 0000 [#1], or kernel : CPU = : 0, or EIP : 0060 [] Tainted : PF VLI, etc. I don't understand the watchdog catch. Can you explain a little more ? Guillaume. -----Message d'origine----- De : xenomai-help-bounces@domain.hid [mailto:xenomai-help-bounces@domain.hid] = De la part de Jan Kiszka Envoy=E9 : mardi 13 mai 2008 16:48 =C0 : DOURNES Guillaume Cc : xenomai@xenomai.org Objet : Re: [Xenomai-help] Interrupt management under rtdm driver DOURNES Guillaume wrote: > *********************** > Warning: Your file, V02R00.rar, contains more than 32 files after = decompression and cannot be scanned. > *********************** >=20 >=20 > I join to this mail my source code of my driver and my test software. = The read and write function of this driver version are already tested, = and work as waiting. >=20 > I tried to break out the loop. If I break out after 1 loop, the = software works, but if I break out after 2 loops, the sofware freeze and = the result (printf) of the first loop is not printed. Didn't have to time to unpack your archive (is the driver so complex?). So you may try to continue with debugging: Does the watchdog catch = something? Is there something on the kernel console after lockup. If = not, attach a serial line and redirect the console to it. Maybe you see = an oops. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center = Embedded Linux _______________________________________________ Xenomai-help mailing list Xenomai-help@domain.hid https://mail.gna.org/listinfo/xenomai-help ------_=_NextPart_001_01C8B517.7660037D Content-Type: application/octet-stream; name="V02R00.rar" Content-Transfer-Encoding: base64 Content-Description: V02R00.rar Content-Disposition: attachment; filename="V02R00.rar" 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 PXsAQAcA ------_=_NextPart_001_01C8B517.7660037D-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482D33B3.9070700@domain.hid> Date: Fri, 16 May 2008 09:11:47 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> In-Reply-To: <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig8E78AAD0154E296720682493" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: DOURNES Guillaume Cc: xenomai@xenomai.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig8E78AAD0154E296720682493 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable DOURNES Guillaume wrote: > Thanks a lot for your attention. And sorry for my poor english. > I change my context into a real RT context and my problem disappears. >=20 > Nevertheless, I have other questions about the IRQ management. >=20 > In fact, after executing my software application (so after the rtdm_clo= se call, and so the free irq), I obtain a syslog message : kernel Disabli= ng IRQ #11. This message doesn't affect my software if I run it again, bu= t may be there are some side effect. In dmesg, the following error messag= e appears : irq 11: nobody cared (try booting with the "irqpoll" option).= > In my open function I call :=20 > - request_region > - rtdm_irq_request > In my close function I call : > - rtdm_irq_free > - release_region > May be there is a function to call to avoid this disabling irq ? Are you sure that you properly configured your device to no longer generate IRQs before unregistering the handler? >=20 >=20 > Moreover, when I'm using my discrets I/O driver (on the IRQ 11) and I a= dd an USB Key (on this IRQ 11) the software freeze. Note that my USB Key = works normaly before I call my open function, and doesn't work after my s= oftware execution, may be because of the Disabling IRQ. > Note that the freeze appears with the 16550A rtdm driver use. For examp= le, when my keyboard irq is the same as the seria board irq, the computer= freeze when the driver is running and the keyboard is using at the same = moment. > I think that the linux irq and xenomai irq are not usable at the same t= ime ! >=20 > Note that my kernel is configured with shared interrupt. Please read the FAQ in the wiki about shared RT/non-RT IRQS. Jan --------------enig8E78AAD0154E296720682493 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFILTOzniDOoMHTA+kRAlaIAJ4mpjTf9z0cxG26tzvN5KwelshrwACcCcYp iuHbTDixwUMdiY8AbSgmPHc= =nk7/ -----END PGP SIGNATURE----- --------------enig8E78AAD0154E296720682493-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4829C8C9.4020300@domain.hid> Date: Tue, 13 May 2008 18:58:49 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> In-Reply-To: <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: DOURNES Guillaume Cc: xenomai@xenomai.org DOURNES Guillaume wrote: > Sorry my old archive contained svn files. I send again my cource code. > > I have some syslog message as kernel : Oops : 0000 [#1], or kernel : CPU : 0, or EIP : 0060 [] Tainted : PF VLI, etc. Well, if your system locks up while the test runs, it is not likely that any message is pushed to syslog anymore. At best you see something on the console (VGA or serial). > > I don't understand the watchdog catch. Can you explain a little more ? See the help in the kernel configuration: If the the watchdog catches some spinning Xenomai thread, it will suspend it, allowing the rest of the system to run again. This will also generate a log message on the kernel console. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Fri, 16 May 2008 12:08:44 +0200 Message-ID: <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> From: "DOURNES Guillaume" Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jan.kiszka@domain.hid Cc: xenomai@xenomai.org Problem Resolved=20 Thanks a lot. Guillaume. -----Message d'origine----- De : jan.kiszka@domain.hid [mailto:jan.kiszka@domain.hid Envoy=E9 : vendredi 16 mai 2008 09:12 =C0 : DOURNES Guillaume Cc : xenomai@xenomai.org Objet : Re: [Xenomai-help] Interrupt management under rtdm driver DOURNES Guillaume wrote: > Thanks a lot for your attention. And sorry for my poor english. > I change my context into a real RT context and my problem disappears. >=20 > Nevertheless, I have other questions about the IRQ management. >=20 > In fact, after executing my software application (so after the = rtdm_close call, and so the free irq), I obtain a syslog message : = kernel Disabling IRQ #11. This message doesn't affect my software if I = run it again, but may be there are some side effect. In dmesg, the = following error message appears : irq 11: nobody cared (try booting with = the "irqpoll" option). > In my open function I call :=20 > - request_region > - rtdm_irq_request > In my close function I call : > - rtdm_irq_free > - release_region > May be there is a function to call to avoid this disabling irq ? Are you sure that you properly configured your device to no longer = generate IRQs before unregistering the handler? >=20 >=20 > Moreover, when I'm using my discrets I/O driver (on the IRQ 11) and I = add an USB Key (on this IRQ 11) the software freeze. Note that my USB = Key works normaly before I call my open function, and doesn't work after = my software execution, may be because of the Disabling IRQ. > Note that the freeze appears with the 16550A rtdm driver use. For = example, when my keyboard irq is the same as the seria board irq, the = computer freeze when the driver is running and the keyboard is using at = the same moment. > I think that the linux irq and xenomai irq are not usable at the same = time ! >=20 > Note that my kernel is configured with shared interrupt. Please read the FAQ in the wiki about shared RT/non-RT IRQS. Jan From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482D6FF9.3050008@domain.hid> Date: Fri, 16 May 2008 13:28:57 +0200 From: Anders Blomdell MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> In-Reply-To: <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [Xenomai-help] Serial driver and TX events List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: xenomai@xenomai.org Are there any reason why the serial driver could not be changed to give an event when all characters has left the TX buffer? -- Anders Blomdell Email: anders.blomdell@domain.hid Department of Automatic Control Lund University Phone: +46 46 222 4625 P.O. Box 118 Fax: +46 46 138118 SE-221 00 Lund, Sweden From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482D82EB.3050608@domain.hid> Date: Fri, 16 May 2008 14:49:47 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> <482D6FF9.3050008@domain.hid> In-Reply-To: <482D6FF9.3050008@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Serial driver and TX events List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anders Blomdell Cc: xenomai@xenomai.org Anders Blomdell wrote: > Are there any reason why the serial driver could not be changed to give an event > when all characters has left the TX buffer? No, I don't think so. Somehow I have the feeling someone requested this feature before, but I cannot find any reference or even code ATM. However. Patch would be welcome. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482D8B50.5090502@domain.hid> Date: Fri, 16 May 2008 15:25:36 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> <482D6FF9.3050008@domain.hid> <482D82EB.3050608@domain.hid> <482D885A.7080706@domain.hid> In-Reply-To: <482D885A.7080706@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Serial driver and TX events List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anders Blomdell Cc: xenomai-help Anders Blomdell wrote: > Jan Kiszka wrote: >> Anders Blomdell wrote: >>> Are there any reason why the serial driver could not be changed to give an event >>> when all characters has left the TX buffer? >> No, I don't think so. Somehow I have the feeling someone requested this >> feature before, but I cannot find any reference or even code ATM. >> However. Patch would be welcome. > OK, I'll see what I can do. Is patch against 2.4.2 OK (pressing deadline -> I do > not have the time to uprade right now). Such a patch would currently apply against trunk as-is, at least /wrt 16550A - but I would take care of porting in any case. > > My need for it is to make it possible to wait until all characters has left the > FIFO (needed for autobaud detection), so perhaps a ioctl RTIOC_DRAIN (similar to > RTIOC_PURGE) is a better choice (you decide what you prefer, and I'll try to > implement it) Hmm, for that particular use case I guess it shouldn't be problematic to wait the required time after writing some probe character(s). Otherwise, a blocking RTIOC_DRAIN sounds reasonable. That could become an (optional) common feature of all buffering RTDM devices. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482A831C.6000801@domain.hid> Date: Wed, 14 May 2008 08:13:48 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid> <4829A948.6080806@domain.hid> In-Reply-To: <4829A948.6080806@domain.hid> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigD592717EDF4B4E6B94260002" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-help] gdb + multi-threaded application + Intel dual core processor + Xenomai => frozen system List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Kaeppeler, Oliver" Cc: xenomai@xenomai.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigD592717EDF4B4E6B94260002 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Jan Kiszka wrote: > Kaeppeler, Oliver wrote: >> Hello Jan, >> >> thanks for your answer. We had used Xenomai 2.4.3 in our tests. Now, I= also tried the daily snapshot version, but the problem remains. >> >> The problem should be reproducable by the sample program, we attached = in our last message... >=20 > OK, will give this a try later today. Done, but so far without success, even with your .config. Are you sure that you booted the right kernel after the update (and that the update actually contained the fix)? Jan --------------enigD592717EDF4B4E6B94260002 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFIKoMmniDOoMHTA+kRAv7gAJ0Y2Qv0Cqmz+eDEqYrK0PMONPMtAACfYr65 HgrCuJYNgVBkAfWeu0T4wqE= =B949 -----END PGP SIGNATURE----- --------------enigD592717EDF4B4E6B94260002-- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482D885A.7080706@domain.hid> Date: Fri, 16 May 2008 15:12:58 +0200 From: Anders Blomdell MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> <482D6FF9.3050008@domain.hid> <482D82EB.3050608@domain.hid> In-Reply-To: <482D82EB.3050608@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Serial driver and TX events List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai-help Jan Kiszka wrote: > Anders Blomdell wrote: >> Are there any reason why the serial driver could not be changed to give an event >> when all characters has left the TX buffer? > > No, I don't think so. Somehow I have the feeling someone requested this > feature before, but I cannot find any reference or even code ATM. > However. Patch would be welcome. OK, I'll see what I can do. Is patch against 2.4.2 OK (pressing deadline -> I do not have the time to uprade right now). My need for it is to make it possible to wait until all characters has left the FIFO (needed for autobaud detection), so perhaps a ioctl RTIOC_DRAIN (similar to RTIOC_PURGE) is a better choice (you decide what you prefer, and I'll try to implement it) /Anders -- Anders Blomdell Email: anders.blomdell@domain.hid Department of Automatic Control Lund University Phone: +46 46 222 4625 P.O. Box 118 Fax: +46 46 138118 SE-221 00 Lund, Sweden From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <482DCAD0.1010408@domain.hid> Date: Fri, 16 May 2008 19:56:32 +0200 From: Anders Blomdell MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> <482D6FF9.3050008@domain.hid> <482D82EB.3050608@domain.hid> <482D885A.7080706@domain.hid> <482D8B50.5090502@domain.hid> In-Reply-To: <482D8B50.5090502@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Serial driver and TX events List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai-help Jan Kiszka wrote: > Anders Blomdell wrote: >> Jan Kiszka wrote: >>> Anders Blomdell wrote: >>>> Are there any reason why the serial driver could not be changed to give an event >>>> when all characters has left the TX buffer? >>> No, I don't think so. Somehow I have the feeling someone requested this >>> feature before, but I cannot find any reference or even code ATM. >>> However. Patch would be welcome. >> OK, I'll see what I can do. Is patch against 2.4.2 OK (pressing deadline -> I do >> not have the time to uprade right now). > > Such a patch would currently apply against trunk as-is, at least /wrt > 16550A - but I would take care of porting in any case. > >> My need for it is to make it possible to wait until all characters has left the >> FIFO (needed for autobaud detection), so perhaps a ioctl RTIOC_DRAIN (similar to >> RTIOC_PURGE) is a better choice (you decide what you prefer, and I'll try to >> implement it) > > Hmm, for that particular use case I guess it shouldn't be problematic to > wait the required time after writing some probe character(s). > > Otherwise, a blocking RTIOC_DRAIN sounds reasonable. That could become > an (optional) common feature of all buffering RTDM devices. OK, now I know why it is a bad idea. There is no way to get an interrupt when all characters has left the FIFO and shift register (i.e. no interrupts on TEMT indicator, and using THRE indicator means that there is still data waiting to get out). So one could just as easily do it from user space. I.e. like: while (1) { int err; struct rtser_status status; err = rt_dev_ioctl(fd, RTSER_RTIOC_GET_STATUS, &status); if (err < 0) { break; } if (status.line_status & RTSER_LSR_TRANSM_EMPTY) { break; } rt_task_sleep(1000000); } Sorry about the noise... -- Anders Blomdell Email: anders.blomdell@domain.hid Department of Automatic Control Lund University Phone: +46 46 222 4625 P.O. Box 118 Fax: +46 46 138118 SE-221 00 Lund, Sweden From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Wed, 14 May 2008 11:55:34 +0200 Message-ID: <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> From: "DOURNES Guillaume" Subject: Re: [Xenomai-help] Interrupt management under rtdm driver List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai@xenomai.org Since I add the watchdog option in my kernel configuration, The software = doesn't block. But I obtain an EPREM (-1) error on the second call of = rtdm_event_timedwait, and in dmesg : Xenomai: assertion failed at = kernel/xenomai/skins/rtdm/drvlib.c:919 (!xnpod_unblockable_p()). I don't understand why I have this error, because the = rtdm_event_timedwait is used as the 16550A rtserial rtdm driver. And I = use this rtserial driver, and it works. Note that this problem doesn't appears when I call rt_task_suspend just = after my rtdm_event_timedwait, and I resume the task by a gets. -----Message d'origine----- De : Jan Kiszka [mailto:jan.kiszka@domain.hid Envoy=E9 : mardi 13 mai 2008 18:59 =C0 : DOURNES Guillaume Cc : xenomai@xenomai.org Objet : Re: [Xenomai-help] Interrupt management under rtdm driver DOURNES Guillaume wrote: > Sorry my old archive contained svn files. I send again my cource code. >=20 > I have some syslog message as kernel : Oops : 0000 [#1], or kernel : = CPU : 0, or EIP : 0060 [] Tainted : PF VLI, etc. Well, if your system locks up while the test runs, it is not likely that = any message is pushed to syslog anymore. At best you see something on = the console (VGA or serial). >=20 > I don't understand the watchdog catch. Can you explain a little more ? See the help in the kernel configuration: If the the watchdog catches = some spinning Xenomai thread, it will suspend it, allowing the rest of = the system to run again. This will also generate a log message on the = kernel console. Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center = Embedded Linux From mboxrd@z Thu Jan 1 00:00:00 1970 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Wed, 14 May 2008 14:02:44 +0200 Message-ID: In-Reply-To: <482A831C.6000801@domain.hid> References: <4829613B.3000500@domain.hid> <4829A948.6080806@domain.hid> <482A831C.6000801@domain.hid> From: "Kaeppeler, Oliver" Subject: Re: [Xenomai-help] gdb + multi-threaded application + Intel dual core processor + Xenomai => frozen system List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jan.kiszka@domain.hid Cc: xenomai@xenomai.org Hello Jan, thanks for testing. We fixed the problem now. The problem was that we used the daily snapshot of trunk = (http://svn.gna.org/daily/xenomai-snapshot.tar.gz - the bottom most link = on https://gna.org/svn/?group=3Dxenomai named "Sourcecode Daily = Snapshot"), which does not contain the fix. Now we patched it manually based on the patch given in = "[Xenomai-core][PATCH] avoid deadlock-prone sighand_lock in = do_schedule_event" and everything runs fine. So obviously http://svn.gna.org/daily/xenomai-snapshot.tar.gz doesn't = really contain the current trunk. Regards, Oliver. =20 -----Urspr=FCngliche Nachricht----- Von: jan.kiszka@domain.hid [mailto:jan.kiszka@domain.hid Gesendet: Mittwoch, 14. Mai 2008 08:14 An: Kaeppeler, Oliver Cc: xenomai@xenomai.org Betreff: Re: [Xenomai-help] gdb + multi-threaded application + Intel = dual core processor + Xenomai =3D> frozen system Jan Kiszka wrote: > Kaeppeler, Oliver wrote: >> Hello Jan, >> >> thanks for your answer. We had used Xenomai 2.4.3 in our tests. Now, = I also tried the daily snapshot version, but the problem remains. >> >> The problem should be reproducable by the sample program, we attached = in our last message... >=20 > OK, will give this a try later today. Done, but so far without success, even with your .config. Are you sure = that you booted the right kernel after the update (and that the update = actually contained the fix)? Jan From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <485AB64D.4020009@domain.hid> Date: Thu, 19 Jun 2008 21:41:01 +0200 From: Anders Blomdell MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> <482D6FF9.3050008@domain.hid> <482D82EB.3050608@domain.hid> <482D885A.7080706@domain.hid> <482D8B50.5090502@domain.hid> <482DCAD0.1010408@domain.hid> In-Reply-To: <482DCAD0.1010408@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [Xenomai-help] Weird rt_dev_socket behaviour List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai-help Cc: Jan Kiszka With xenomai-2.4.2 and rtnet-0.9.10, is it expected that the following code: ... mlockall(MCL_CURRENT|MCL_FUTURE); rt_task_shadow(&task_self, NULL, 1, T_FPU); fd = rt_dev_socket(AF_PACKET, SOCK_DGRAM, 0); if (fd < 0) { fprintf(stderr, "failed to create socket %d\n", fd); exit(1); } ... fails with the message "failed to create socket -12", while the following works as expected: ... mlockall(MCL_CURRENT|MCL_FUTURE); rt_task_shadow(&task_self, NULL, 1, T_FPU); rt_task_set_mode(T_PRIMARY, 0, 0); fd = rt_dev_socket(AF_PACKET, SOCK_DGRAM, 0); if (fd < 0) { fprintf(stderr, "failed to create socket %d\n", fd); exit(1); } ... Regards Anders Blomdell -- Anders Blomdell Email: anders.blomdell@domain.hid Department of Automatic Control Lund University Phone: +46 46 222 4625 P.O. Box 118 Fax: +46 46 138118 SE-221 00 Lund, Sweden From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <485B8C73.4060102@domain.hid> Date: Fri, 20 Jun 2008 12:54:43 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4829613B.3000500@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DBF6@domain.hid><48297566.1010607@domain.hid><0C9896A4B6D338488AD6FFFE58BAEF100276DC66@domain.hid> <4829AA19.8070405@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DD0C@serveur3.lgm.com> <4829C8C9.4020300@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276DDDE@serveur3.lgm.com> <482B3BCF.8090700@domain.hid> <482B3EE5.9030702@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E025@domain.hid> <482D33B3.9070700@domain.hid> <0C9896A4B6D338488AD6FFFE58BAEF100276E212@domain.hid> <482D6FF9.3050008@domain.hid> <482D82EB.3050608@domain.hid> <482D885A.7080706@domain.hid> <482D8B50.5090502@domain.hid> <482DCAD0.1010408@domain.hid> <485AB64D.4020009@domain.hid> In-Reply-To: <485AB64D.4020009@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Weird rt_dev_socket behaviour List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anders Blomdell Cc: xenomai-help Anders Blomdell wrote: > With xenomai-2.4.2 and rtnet-0.9.10, is it expected that the following code: > > ... > mlockall(MCL_CURRENT|MCL_FUTURE); > rt_task_shadow(&task_self, NULL, 1, T_FPU); > fd = rt_dev_socket(AF_PACKET, SOCK_DGRAM, 0); > if (fd < 0) { > fprintf(stderr, "failed to create socket %d\n", fd); > exit(1); > } > ... > > fails with the message "failed to create socket -12", while the following works > as expected: > > ... > mlockall(MCL_CURRENT|MCL_FUTURE); > rt_task_shadow(&task_self, NULL, 1, T_FPU); > rt_task_set_mode(T_PRIMARY, 0, 0); > fd = rt_dev_socket(AF_PACKET, SOCK_DGRAM, 0); > if (fd < 0) { > fprintf(stderr, "failed to create socket %d\n", fd); > exit(1); > } > ... Yes, this is an RTnet artifact. Check rtnet/Documentation/README.pools on details how to prepare rt-socket creation from primary domains - but generally you don't want this, and RTnet will sooner or later remove the related support (and source of confusion). Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux