On 11/08/11 19:22, Gilles Chanteperdrix wrote: > Please try and find the point in the latency test where the hang happens > (it probably happens when calling a xenomai service, so, not > sched_setscheduler), and then post the two disassemblies of this service > implementation in libnative.so, the one compiled with 4.4, the other > with 4.6.
The latency test hangs in rt_task_create() attached the function disassemblies obtained with gcc-4.4 and gcc-4.6. Hope that this helps, those are Aramaic to me. Cheers, -- Daniele
00004f90 <rt_task_create>: 4f90: 55 push %ebp 4f91: 31 c0 xor %eax,%eax 4f93: 89 e5 mov %esp,%ebp 4f95: 57 push %edi 4f96: 56 push %esi 4f97: 53 push %ebx 4f98: 83 ec 7c sub $0x7c,%esp 4f9b: e8 17 d8 ff ff call 27b7 <__i686.get_pc_thunk.bx> 4fa0: 81 c3 24 17 00 00 add $0x1724,%ebx 4fa6: 53 push %ebx 4fa7: 89 c3 mov %eax,%ebx 4fa9: b8 2b 02 00 02 mov $0x200022b,%eax 4fae: cd 80 int $0x80 4fb0: 5b pop %ebx 4fb1: 8b 45 08 mov 0x8(%ebp),%eax 4fb4: 8d 75 a0 lea -0x60(%ebp),%esi 4fb7: 8b 7d 18 mov 0x18(%ebp),%edi -- 4ff9: 75 11 jne 500c <rt_task_create+0x7c> 4ffb: e8 98 d5 ff ff call 2598 <getpagesize@plt> 5000: 8d b8 00 40 00 00 lea 0x4000(%eax),%edi 5006: 89 bb cc 00 00 00 mov %edi,0xcc(%ebx) 500c: 8b 55 10 mov 0x10(%ebp),%edx 500f: 85 d2 test %edx,%edx 5011: 75 07 jne 501a <rt_task_create+0x8a> 5013: c7 45 90 00 80 00 00 movl $0x8000,-0x70(%ebp) 501a: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp) 5021: 00 5022: 89 34 24 mov %esi,(%esp) 5025: e8 ce d4 ff ff call 24f8 <pthread_attr_setinheritsched@plt> 502a: 8b 45 14 mov 0x14(%ebp),%eax 502d: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp) 5034: 85 c0 test %eax,%eax 5036: 0f 8e bc 00 00 00 jle 50f8 <rt_task_create+0x168> 503c: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp) 5043: 00 5044: 89 34 24 mov %esi,(%esp) 5047: e8 9c d4 ff ff call 24e8 <pthread_attr_setschedpolicy@plt> 504c: 8b 45 14 mov 0x14(%ebp),%eax 504f: 89 45 e4 mov %eax,-0x1c(%ebp) 5052: 8d 45 e4 lea -0x1c(%ebp),%eax 5055: 89 44 24 04 mov %eax,0x4(%esp) 5059: 89 34 24 mov %esi,(%esp) 505c: e8 07 d5 ff ff call 2568 <pthread_attr_setschedparam@plt> 5061: 8b 45 90 mov -0x70(%ebp),%eax 5064: 39 f8 cmp %edi,%eax 5066: 73 02 jae 506a <rt_task_create+0xda> 5068: 89 f8 mov %edi,%eax 506a: 89 44 24 04 mov %eax,0x4(%esp) 506e: 89 34 24 mov %esi,(%esp) 5071: e8 82 d5 ff ff call 25f8 <pthread_attr_setstacksize@plt> 5076: 8b 7d 18 mov 0x18(%ebp),%edi 5079: 81 e7 00 04 00 00 and $0x400,%edi 507f: 89 7d 90 mov %edi,-0x70(%ebp) 5082: 74 5c je 50e0 <rt_task_create+0x150> 5084: 8d 45 c4 lea -0x3c(%ebp),%eax 5087: 89 44 24 0c mov %eax,0xc(%esp) 508b: 8d 83 cc e7 ff ff lea -0x1834(%ebx),%eax 5091: 89 44 24 08 mov %eax,0x8(%esp) 5095: 8d 45 e0 lea -0x20(%ebp),%eax 5098: 89 74 24 04 mov %esi,0x4(%esp) 509c: 89 04 24 mov %eax,(%esp) 509f: e8 e4 d5 ff ff call 2688 <__real_pthread_create@plt> 50a4: 85 c0 test %eax,%eax 50a6: 75 28 jne 50d0 <rt_task_create+0x140> 50a8: 8b 7d 94 mov -0x6c(%ebp),%edi 50ab: 53 push %ebx 50ac: 89 fb mov %edi,%ebx 50ae: b8 2b 02 00 01 mov $0x100022b,%eax 50b3: cd 80 int $0x80 50b5: 5b pop %ebx 50b6: 85 c0 test %eax,%eax 50b8: 89 c6 mov %eax,%esi 50ba: 74 07 je 50c3 <rt_task_create+0x133> 50bc: 8b 4d 90 mov -0x70(%ebp),%ecx 50bf: 85 c9 test %ecx,%ecx 50c1: 75 4d jne 5110 <rt_task_create+0x180> 50c3: 83 c4 7c add $0x7c,%esp 50c6: 89 f0 mov %esi,%eax 50c8: 5b pop %ebx 50c9: 5e pop %esi 50ca: 5f pop %edi 50cb: 5d pop %ebp 50cc: c3 ret 50cd: 8d 76 00 lea 0x0(%esi),%esi 50d0: 89 c6 mov %eax,%esi 50d2: 83 c4 7c add $0x7c,%esp 50d5: f7 de neg %esi 50d7: 89 f0 mov %esi,%eax 50d9: 5b pop %ebx 50da: 5e pop %esi 50db: 5f pop %edi 50dc: 5d pop %ebp 50dd: c3 ret -- 50f0: eb 92 jmp 5084 <rt_task_create+0xf4> 50f2: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 50f8: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 50ff: 00 5100: 89 34 24 mov %esi,(%esp) 5103: e8 e0 d3 ff ff call 24e8 <pthread_attr_setschedpolicy@plt> 5108: e9 45 ff ff ff jmp 5052 <rt_task_create+0xc2> 510d: 8d 76 00 lea 0x0(%esi),%esi 5110: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 5117: 00 5118: 8b 45 e0 mov -0x20(%ebp),%eax 511b: 89 04 24 mov %eax,(%esp) 511e: e8 55 d5 ff ff call 2678 <pthread_join@plt> 5123: 83 c4 7c add $0x7c,%esp 5126: 89 f0 mov %esi,%eax 5128: 5b pop %ebx 5129: 5e pop %esi 512a: 5f pop %edi 512b: 5d pop %ebp 512c: c3 ret 512d: 90 nop 512e: 90 nop 512f: 90 nop
00004b60 <rt_task_create>: 4b60: 55 push %ebp 4b61: 31 c0 xor %eax,%eax 4b63: 57 push %edi 4b64: 56 push %esi 4b65: 53 push %ebx 4b66: 83 ec 7c sub $0x7c,%esp 4b69: 8b bc 24 9c 00 00 00 mov 0x9c(%esp),%edi 4b70: e8 82 dd ff ff call 28f7 <__i686.get_pc_thunk.bx> 4b75: 81 c3 c3 25 00 00 add $0x25c3,%ebx 4b7b: 53 push %ebx 4b7c: 89 c3 mov %eax,%ebx 4b7e: b8 2b 02 00 02 mov $0x200022b,%eax 4b83: cd 80 int $0x80 4b85: 5b pop %ebx 4b86: 8b 84 24 90 00 00 00 mov 0x90(%esp),%eax 4b8d: 8d 74 24 28 lea 0x28(%esp),%esi -- 4be2: 75 10 jne 4bf4 <rt_task_create+0x94> 4be4: e8 cf d9 ff ff call 25b8 <getpagesize@plt> 4be9: 05 00 40 00 00 add $0x4000,%eax 4bee: 89 83 cc 00 00 00 mov %eax,0xcc(%ebx) 4bf4: 8b 94 24 98 00 00 00 mov 0x98(%esp),%edx 4bfb: 85 d2 test %edx,%edx 4bfd: 75 05 jne 4c04 <rt_task_create+0xa4> 4bff: bd 00 80 00 00 mov $0x8000,%ebp 4c04: 39 c5 cmp %eax,%ebp 4c06: 73 02 jae 4c0a <rt_task_create+0xaa> 4c08: 89 c5 mov %eax,%ebp 4c0a: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp) 4c11: 00 4c12: 89 34 24 mov %esi,(%esp) 4c15: e8 fe d8 ff ff call 2518 <pthread_attr_setinheritsched@plt> 4c1a: 85 ff test %edi,%edi 4c1c: c7 44 24 68 00 00 00 movl $0x0,0x68(%esp) 4c23: 00 4c24: 0f 8e a6 00 00 00 jle 4cd0 <rt_task_create+0x170> 4c2a: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp) 4c31: 00 4c32: 89 34 24 mov %esi,(%esp) 4c35: e8 ce d8 ff ff call 2508 <pthread_attr_setschedpolicy@plt> 4c3a: 89 7c 24 68 mov %edi,0x68(%esp) 4c3e: 8d 44 24 68 lea 0x68(%esp),%eax 4c42: 89 44 24 04 mov %eax,0x4(%esp) 4c46: 89 34 24 mov %esi,(%esp) 4c49: e8 3a d9 ff ff call 2588 <pthread_attr_setschedparam@plt> 4c4e: 89 6c 24 04 mov %ebp,0x4(%esp) 4c52: 89 34 24 mov %esi,(%esp) 4c55: e8 be d9 ff ff call 2618 <pthread_attr_setstacksize@plt> 4c5a: 8b ac 24 a0 00 00 00 mov 0xa0(%esp),%ebp 4c61: 81 e5 00 04 00 00 and $0x400,%ebp 4c67: 74 4f je 4cb8 <rt_task_create+0x158> 4c69: 8d 44 24 4c lea 0x4c(%esp),%eax 4c6d: 89 44 24 0c mov %eax,0xc(%esp) 4c71: 8d 83 18 d9 ff ff lea -0x26e8(%ebx),%eax 4c77: 89 44 24 08 mov %eax,0x8(%esp) 4c7b: 8d 44 24 6c lea 0x6c(%esp),%eax 4c7f: 89 74 24 04 mov %esi,0x4(%esp) 4c83: 89 04 24 mov %eax,(%esp) 4c86: e8 1d da ff ff call 26a8 <__real_pthread_create@plt> 4c8b: 89 c6 mov %eax,%esi 4c8d: f7 de neg %esi 4c8f: 85 c0 test %eax,%eax 4c91: 75 19 jne 4cac <rt_task_create+0x14c> 4c93: 8b 7c 24 1c mov 0x1c(%esp),%edi 4c97: 53 push %ebx 4c98: 89 fb mov %edi,%ebx 4c9a: b8 2b 02 00 01 mov $0x100022b,%eax 4c9f: cd 80 int $0x80 4ca1: 5b pop %ebx 4ca2: 85 c0 test %eax,%eax 4ca4: 89 c6 mov %eax,%esi 4ca6: 74 04 je 4cac <rt_task_create+0x14c> 4ca8: 85 ed test %ebp,%ebp 4caa: 75 3c jne 4ce8 <rt_task_create+0x188> 4cac: 83 c4 7c add $0x7c,%esp 4caf: 89 f0 mov %esi,%eax 4cb1: 5b pop %ebx 4cb2: 5e pop %esi 4cb3: 5f pop %edi 4cb4: 5d pop %ebp 4cb5: c3 ret 4cb6: 66 90 xchg %ax,%ax 4cb8: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp) 4cbf: 00 4cc0: 89 34 24 mov %esi,(%esp) 4cc3: e8 20 da ff ff call 26e8 <pthread_attr_setdetachstate@plt> 4cc8: eb 9f jmp 4c69 <rt_task_create+0x109> 4cca: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 4cd0: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 4cd7: 00 4cd8: 89 34 24 mov %esi,(%esp) 4cdb: e8 28 d8 ff ff call 2508 <pthread_attr_setschedpolicy@plt> 4ce0: e9 59 ff ff ff jmp 4c3e <rt_task_create+0xde> 4ce5: 8d 76 00 lea 0x0(%esi),%esi 4ce8: 8b 44 24 6c mov 0x6c(%esp),%eax 4cec: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) 4cf3: 00 4cf4: 89 04 24 mov %eax,(%esp) 4cf7: e8 9c d9 ff ff call 2698 <pthread_join@plt> 4cfc: 83 c4 7c add $0x7c,%esp 4cff: 89 f0 mov %esi,%eax 4d01: 5b pop %ebx 4d02: 5e pop %esi 4d03: 5f pop %edi 4d04: 5d pop %ebp 4d05: c3 ret 4d06: 8d 76 00 lea 0x0(%esi),%esi 4d09: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core