Hi Roland,
I followed your advice and looked at the registers. Here is what I found:
The function that behaves inconsistently is _dl_start in ld-2.8.so. Most
of the time the first variation in the flow occurs as early as 296
instructions down the road, namely at the jump
30b3b0: 0f 86 d7 fd ff ff jbe 30b18d <_dl_start+0x22d>
but sometimes later. ( I am attaching disassembled _dl_start). And yes,
the registers do differ at this point, but so they should, considering
all these "rdtsc" - or am I missing something?
Thanks!
Roni.
0030af60 <_dl_start>:
30af60: 55 push %ebp
30af61: 89 e5 mov %esp,%ebp
30af63: 57 push %edi
30af64: 56 push %esi
30af65: 53 push %ebx
30af66: 83 ec 44 sub $0x44,%esp
30af69: e8 ed 62 01 00 call 32125b <__i686.get_pc_thunk.bx>
30af6e: 81 c3 52 c0 01 00 add $0x1c052,%ebx
30af74: 89 45 d4 mov %eax,-0x2c(%ebp)
30af77: 0f 31 rdtsc
30af79: 89 93 ec fe ff ff mov %edx,-0x114(%ebx)
30af7f: 8b 93 00 00 00 00 mov 0x0(%ebx),%edx
30af85: 89 83 e8 fe ff ff mov %eax,-0x118(%ebx)
30af8b: 8d 83 38 ff ff ff lea -0xc8(%ebx),%eax
30af91: 29 d0 sub %edx,%eax
30af93: 8d 0c 10 lea (%eax,%edx,1),%ecx
30af96: 89 83 c0 02 00 00 mov %eax,0x2c0(%ebx)
30af9c: 8b 11 mov (%ecx),%edx
30af9e: 89 8b c8 02 00 00 mov %ecx,0x2c8(%ebx)
30afa4: 85 d2 test %edx,%edx
30afa6: 74 40 je 30afe8 <_dl_start+0x88>
30afa8: 8d b3 40 00 00 00 lea 0x40(%ebx),%esi
30afae: eb 10 jmp 30afc0 <_dl_start+0x60>
30afb0: 89 8c 96 a0 02 00 00 mov %ecx,0x2a0(%esi,%edx,4)
30afb7: 83 c1 08 add $0x8,%ecx
30afba: 8b 11 mov (%ecx),%edx
30afbc: 85 d2 test %edx,%edx
30afbe: 74 28 je 30afe8 <_dl_start+0x88>
30afc0: 83 fa 21 cmp $0x21,%edx
30afc3: 7e eb jle 30afb0 <_dl_start+0x50>
30afc5: b8 ff ff ff 6f mov $0x6fffffff,%eax
30afca: 29 d0 sub %edx,%eax
30afcc: 83 f8 0f cmp $0xf,%eax
30afcf: 0f 87 d3 02 00 00 ja 30b2a8 <_dl_start+0x348>
30afd5: b8 c9 00 00 70 mov $0x700000c9,%eax
30afda: 29 d0 sub %edx,%eax
30afdc: 89 0c 86 mov %ecx,(%esi,%eax,4)
30afdf: 83 c1 08 add $0x8,%ecx
30afe2: 8b 11 mov (%ecx),%edx
30afe4: 85 d2 test %edx,%edx
30afe6: 75 d8 jne 30afc0 <_dl_start+0x60>
30afe8: 8b 93 c0 02 00 00 mov 0x2c0(%ebx),%edx
30afee: 85 d2 test %edx,%edx
30aff0: 0f 84 0a 03 00 00 je 30b300 <_dl_start+0x3a0>
30aff6: 8b 83 f0 02 00 00 mov 0x2f0(%ebx),%eax
30affc: 85 c0 test %eax,%eax
30affe: 74 03 je 30b003 <_dl_start+0xa3>
30b000: 01 50 04 add %edx,0x4(%eax)
30b003: 8b 83 ec 02 00 00 mov 0x2ec(%ebx),%eax
30b009: 85 c0 test %eax,%eax
30b00b: 74 03 je 30b010 <_dl_start+0xb0>
30b00d: 01 50 04 add %edx,0x4(%eax)
30b010: 8b 83 f4 02 00 00 mov 0x2f4(%ebx),%eax
30b016: 85 c0 test %eax,%eax
30b018: 74 03 je 30b01d <_dl_start+0xbd>
30b01a: 01 50 04 add %edx,0x4(%eax)
30b01d: 8b 83 f8 02 00 00 mov 0x2f8(%ebx),%eax
30b023: 85 c0 test %eax,%eax
30b025: 74 03 je 30b02a <_dl_start+0xca>
30b027: 01 50 04 add %edx,0x4(%eax)
30b02a: 8b 83 24 03 00 00 mov 0x324(%ebx),%eax
30b030: 85 c0 test %eax,%eax
30b032: 74 03 je 30b037 <_dl_start+0xd7>
30b034: 01 50 04 add %edx,0x4(%eax)
30b037: 8b 83 3c 03 00 00 mov 0x33c(%ebx),%eax
30b03d: 85 c0 test %eax,%eax
30b03f: 74 03 je 30b044 <_dl_start+0xe4>
30b041: 01 50 04 add %edx,0x4(%eax)
30b044: 8b 83 a4 03 00 00 mov 0x3a4(%ebx),%eax
30b04a: 85 c0 test %eax,%eax
30b04c: 74 03 je 30b051 <_dl_start+0xf1>
30b04e: 01 50 04 add %edx,0x4(%eax)
30b051: 8b 83 0c 04 00 00 mov 0x40c(%ebx),%eax
30b057: 85 c0 test %eax,%eax
30b059: 74 03 je 30b05e <_dl_start+0xfe>
30b05b: 01 50 04 add %edx,0x4(%eax)
30b05e: 8b 83 c0 02 00 00 mov 0x2c0(%ebx),%eax
30b064: 85 c0 test %eax,%eax
30b066: 89 45 d8 mov %eax,-0x28(%ebp)
30b069: 0f 84 91 02 00 00 je 30b300 <_dl_start+0x3a0>
30b06f: 8b 83 24 03 00 00 mov 0x324(%ebx),%eax
30b075: 85 c0 test %eax,%eax
30b077: 0f 84 3d 03 00 00 je 30b3ba <_dl_start+0x45a>
30b07d: 8b 50 04 mov 0x4(%eax),%edx
30b080: 8b 83 28 03 00 00 mov 0x328(%ebx),%eax
30b086: 89 d1 mov %edx,%ecx
30b088: 8b 70 04 mov 0x4(%eax),%esi
30b08b: 8b bb 30 03 00 00 mov 0x330(%ebx),%edi
30b091: 85 ff test %edi,%edi
30b093: 74 09 je 30b09e <_dl_start+0x13e>
30b095: 8b 83 e8 02 00 00 mov 0x2e8(%ebx),%eax
30b09b: 03 70 04 add 0x4(%eax),%esi
30b09e: 8b 83 f8 02 00 00 mov 0x2f8(%ebx),%eax
30b0a4: 8d 14 16 lea (%esi,%edx,1),%edx
30b0a7: 89 55 e0 mov %edx,-0x20(%ebp)
30b0aa: 8b 93 7c 03 00 00 mov 0x37c(%ebx),%edx
30b0b0: 8b 40 04 mov 0x4(%eax),%eax
30b0b3: 85 d2 test %edx,%edx
30b0b5: 89 45 dc mov %eax,-0x24(%ebp)
30b0b8: 74 65 je 30b11f <_dl_start+0x1bf>
30b0ba: 8b 52 04 mov 0x4(%edx),%edx
30b0bd: 89 f0 mov %esi,%eax
30b0bf: c1 e8 03 shr $0x3,%eax
30b0c2: 39 d0 cmp %edx,%eax
30b0c4: 0f 47 c2 cmova %edx,%eax
30b0c7: 8d 14 c1 lea (%ecx,%eax,8),%edx
30b0ca: 39 ca cmp %ecx,%edx
30b0cc: 76 13 jbe 30b0e1 <_dl_start+0x181>
30b0ce: 66 90 xchg %ax,%ax
30b0d0: 8b 45 d8 mov -0x28(%ebp),%eax
30b0d3: 03 01 add (%ecx),%eax
30b0d5: 83 c1 08 add $0x8,%ecx
30b0d8: 8b 75 d8 mov -0x28(%ebp),%esi
30b0db: 01 30 add %esi,(%eax)
30b0dd: 39 ca cmp %ecx,%edx
30b0df: 77 ef ja 30b0d0 <_dl_start+0x170>
30b0e1: 89 d1 mov %edx,%ecx
30b0e3: 39 4d e0 cmp %ecx,-0x20(%ebp)
30b0e6: 76 3c jbe 30b124 <_dl_start+0x1c4>
30b0e8: 8b 51 04 mov 0x4(%ecx),%edx
30b0eb: 8b 83 c0 02 00 00 mov 0x2c0(%ebx),%eax
30b0f1: 8b 75 dc mov -0x24(%ebp),%esi
30b0f4: 8b 39 mov (%ecx),%edi
30b0f6: 89 45 b8 mov %eax,-0x48(%ebp)
30b0f9: 89 d0 mov %edx,%eax
30b0fb: 81 e2 ff 00 00 00 and $0xff,%edx
30b101: c1 e8 08 shr $0x8,%eax
30b104: 83 ea 06 sub $0x6,%edx
30b107: c1 e0 04 shl $0x4,%eax
30b10a: 83 fa 01 cmp $0x1,%edx
30b10d: 8b 44 06 04 mov 0x4(%esi,%eax,1),%eax
30b111: 77 09 ja 30b11c <_dl_start+0x1bc>
30b113: 8b 55 d8 mov -0x28(%ebp),%edx
30b116: 03 45 b8 add -0x48(%ebp),%eax
30b119: 89 04 3a mov %eax,(%edx,%edi,1)
30b11c: 83 c1 08 add $0x8,%ecx
30b11f: 39 4d e0 cmp %ecx,-0x20(%ebp)
30b122: 77 c4 ja 30b0e8 <_dl_start+0x188>
30b124: 80 8b 54 04 00 00 04 orb $0x4,0x454(%ebx)
30b12b: 8b 83 44 fe ff ff mov -0x1bc(%ebx),%eax
30b131: 0b 83 40 fe ff ff or -0x1c0(%ebx),%eax
30b137: 0f 85 d3 00 00 00 jne 30b210 <_dl_start+0x2b0>
30b13d: c7 83 40 fe ff ff ff movl $0xffffffff,-0x1c0(%ebx)
30b144: ff ff ff
30b147: c7 83 44 fe ff ff ff movl $0xffffffff,-0x1bc(%ebx)
30b14e: ff ff ff
30b151: 0f 31 rdtsc
30b153: 89 c6 mov %eax,%esi
30b155: 89 d7 mov %edx,%edi
30b157: 0f 31 rdtsc
30b159: 89 45 e4 mov %eax,-0x1c(%ebp)
30b15c: 89 55 e8 mov %edx,-0x18(%ebp)
30b15f: 0f 31 rdtsc
30b161: 89 45 bc mov %eax,-0x44(%ebp)
30b164: 89 55 c0 mov %edx,-0x40(%ebp)
30b167: 0f 31 rdtsc
30b169: 89 45 cc mov %eax,-0x34(%ebp)
30b16c: 8b 45 bc mov -0x44(%ebp),%eax
30b16f: 29 75 e4 sub %esi,-0x1c(%ebp)
30b172: 19 7d e8 sbb %edi,-0x18(%ebp)
30b175: 29 45 cc sub %eax,-0x34(%ebp)
30b178: 89 55 d0 mov %edx,-0x30(%ebp)
30b17b: 8b 55 c0 mov -0x40(%ebp),%edx
30b17e: 19 55 d0 sbb %edx,-0x30(%ebp)
30b181: 8b 55 d0 mov -0x30(%ebp),%edx
30b184: 39 55 e8 cmp %edx,-0x18(%ebp)
30b187: 0f 83 c3 01 00 00 jae 30b350 <_dl_start+0x3f0>
30b18d: 0f 31 rdtsc
30b18f: 89 45 bc mov %eax,-0x44(%ebp)
30b192: 89 55 c0 mov %edx,-0x40(%ebp)
30b195: 0f 31 rdtsc
30b197: 8b 4d e8 mov -0x18(%ebp),%ecx
30b19a: 89 d7 mov %edx,%edi
30b19c: 89 c6 mov %eax,%esi
30b19e: 8b 55 e4 mov -0x1c(%ebp),%edx
30b1a1: 2b 75 bc sub -0x44(%ebp),%esi
30b1a4: 1b 7d c0 sbb -0x40(%ebp),%edi
30b1a7: 89 55 c4 mov %edx,-0x3c(%ebp)
30b1aa: 39 f9 cmp %edi,%ecx
30b1ac: 0f 83 8e 01 00 00 jae 30b340 <_dl_start+0x3e0>
30b1b2: 0f 31 rdtsc
30b1b4: 89 45 bc mov %eax,-0x44(%ebp)
30b1b7: 89 55 c0 mov %edx,-0x40(%ebp)
30b1ba: 0f 31 rdtsc
30b1bc: 89 d7 mov %edx,%edi
30b1be: 89 c6 mov %eax,%esi
30b1c0: 8b 55 c4 mov -0x3c(%ebp),%edx
30b1c3: 2b 75 bc sub -0x44(%ebp),%esi
30b1c6: 1b 7d c0 sbb -0x40(%ebp),%edi
30b1c9: 89 55 c8 mov %edx,-0x38(%ebp)
30b1cc: 39 f9 cmp %edi,%ecx
30b1ce: 0f 83 5c 01 00 00 jae 30b330 <_dl_start+0x3d0>
30b1d4: 0f 31 rdtsc
30b1d6: 89 45 bc mov %eax,-0x44(%ebp)
30b1d9: 89 55 c0 mov %edx,-0x40(%ebp)
30b1dc: 0f 31 rdtsc
30b1de: 89 c6 mov %eax,%esi
30b1e0: 89 d7 mov %edx,%edi
30b1e2: 2b 75 bc sub -0x44(%ebp),%esi
30b1e5: 1b 7d c0 sbb -0x40(%ebp),%edi
30b1e8: 89 f0 mov %esi,%eax
30b1ea: 89 bb 44 fe ff ff mov %edi,-0x1bc(%ebx)
30b1f0: 8b 93 44 fe ff ff mov -0x1bc(%ebx),%edx
30b1f6: 89 b3 40 fe ff ff mov %esi,-0x1c0(%ebx)
30b1fc: 39 ca cmp %ecx,%edx
30b1fe: 0f 83 1c 01 00 00 jae 30b320 <_dl_start+0x3c0>
30b204: 89 83 40 fe ff ff mov %eax,-0x1c0(%ebx)
30b20a: 89 93 44 fe ff ff mov %edx,-0x1bc(%ebx)
30b210: 8d 83 c0 02 00 00 lea 0x2c0(%ebx),%eax
30b216: e8 b5 84 00 00 call 3136d0 <_dl_setup_hash>
30b21b: 8d 83 c0 02 00 00 lea 0x2c0(%ebx),%eax
30b221: 89 83 d4 02 00 00 mov %eax,0x2d4(%ebx)
30b227: 8d 83 40 30 fe ff lea -0x1cfc0(%ebx),%eax
30b22d: 89 83 6c 04 00 00 mov %eax,0x46c(%ebx)
30b233: 8d 83 98 06 00 00 lea 0x698(%ebx),%eax
30b239: 89 83 70 04 00 00 mov %eax,0x470(%ebx)
30b23f: 8d 83 e5 aa ff ff lea -0x551b(%ebx),%eax
30b245: 89 83 74 04 00 00 mov %eax,0x474(%ebx)
30b24b: 0f 31 rdtsc
30b24d: 89 93 a8 02 00 00 mov %edx,0x2a8(%ebx)
30b253: 8b 55 d4 mov -0x2c(%ebp),%edx
30b256: 89 83 a4 02 00 00 mov %eax,0x2a4(%ebx)
30b25c: 8d 83 00 56 fe ff lea -0x1aa00(%ebx),%eax
30b262: 89 ab 30 ff ff ff mov %ebp,-0xd0(%ebx)
30b268: 89 44 24 04 mov %eax,0x4(%esp)
30b26c: 89 14 24 mov %edx,(%esp)
30b26f: e8 8c 3e 01 00 call 31f100 <_dl_sysdep_start>
30b274: 89 c6 mov %eax,%esi
30b276: 0f 31 rdtsc
30b278: 2b 83 e8 fe ff ff sub -0x118(%ebx),%eax
30b27e: 1b 93 ec fe ff ff sbb -0x114(%ebx),%edx
30b284: 80 bb c0 fc ff ff 00 cmpb $0x0,-0x340(%ebx)
30b28b: 89 45 ec mov %eax,-0x14(%ebp)
30b28e: 89 55 f0 mov %edx,-0x10(%ebp)
30b291: 79 08 jns 30b29b <_dl_start+0x33b>
30b293: 8d 45 ec lea -0x14(%ebp),%eax
30b296: e8 05 f7 ff ff call 30a9a0 <print_statistics>
30b29b: 83 c4 44 add $0x44,%esp
30b29e: 89 f0 mov %esi,%eax
30b2a0: 5b pop %ebx
30b2a1: 5e pop %esi
30b2a2: 5f pop %edi
30b2a3: 5d pop %ebp
30b2a4: c3 ret
30b2a5: 8d 76 00 lea 0x0(%esi),%esi
30b2a8: 8d 04 12 lea (%edx,%edx,1),%eax
30b2ab: d1 f8 sar %eax
30b2ad: 83 f8 fc cmp $0xfffffffc,%eax
30b2b0: 76 0e jbe 30b2c0 <_dl_start+0x360>
30b2b2: f7 d0 not %eax
30b2b4: 89 8c 86 68 03 00 00 mov %ecx,0x368(%esi,%eax,4)
30b2bb: e9 f7 fc ff ff jmp 30afb7 <_dl_start+0x57>
30b2c0: b8 ff fd ff 6f mov $0x6ffffdff,%eax
30b2c5: 29 d0 sub %edx,%eax
30b2c7: 83 f8 0b cmp $0xb,%eax
30b2ca: 77 14 ja 30b2e0 <_dl_start+0x380>
30b2cc: b8 dc fe ff 6f mov $0x6ffffedc,%eax
30b2d1: 29 d0 sub %edx,%eax
30b2d3: 89 0c 86 mov %ecx,(%esi,%eax,4)
30b2d6: e9 dc fc ff ff jmp 30afb7 <_dl_start+0x57>
30b2db: 90 nop
30b2dc: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
30b2e0: b8 ff fe ff 6f mov $0x6ffffeff,%eax
30b2e5: 29 d0 sub %edx,%eax
30b2e7: 83 f8 0a cmp $0xa,%eax
30b2ea: 0f 87 c7 fc ff ff ja 30afb7 <_dl_start+0x57>
30b2f0: b8 e8 ff ff 6f mov $0x6fffffe8,%eax
30b2f5: 29 d0 sub %edx,%eax
30b2f7: 89 0c 86 mov %ecx,(%esi,%eax,4)
30b2fa: e9 b8 fc ff ff jmp 30afb7 <_dl_start+0x57>
30b2ff: 90 nop
30b300: 8b 83 dc 03 00 00 mov 0x3dc(%ebx),%eax
30b306: 85 c0 test %eax,%eax
30b308: 0f 85 16 fe ff ff jne 30b124 <_dl_start+0x1c4>
30b30e: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%ebp)
30b315: e9 55 fd ff ff jmp 30b06f <_dl_start+0x10f>
30b31a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
30b320: 76 46 jbe 30b368 <_dl_start+0x408>
30b322: 8b 45 c8 mov -0x38(%ebp),%eax
30b325: 89 ca mov %ecx,%edx
30b327: 90 nop
30b328: e9 d7 fe ff ff jmp 30b204 <_dl_start+0x2a4>
30b32d: 8d 76 00 lea 0x0(%esi),%esi
30b330: 76 46 jbe 30b378 <_dl_start+0x418>
30b332: 89 75 c8 mov %esi,-0x38(%ebp)
30b335: 89 f9 mov %edi,%ecx
30b337: 90 nop
30b338: e9 97 fe ff ff jmp 30b1d4 <_dl_start+0x274>
30b33d: 8d 76 00 lea 0x0(%esi),%esi
30b340: 76 4e jbe 30b390 <_dl_start+0x430>
30b342: 89 75 c4 mov %esi,-0x3c(%ebp)
30b345: 89 f9 mov %edi,%ecx
30b347: 90 nop
30b348: e9 65 fe ff ff jmp 30b1b2 <_dl_start+0x252>
30b34d: 8d 76 00 lea 0x0(%esi),%esi
30b350: 76 56 jbe 30b3a8 <_dl_start+0x448>
30b352: 8b 45 cc mov -0x34(%ebp),%eax
30b355: 8b 55 d0 mov -0x30(%ebp),%edx
30b358: 89 45 e4 mov %eax,-0x1c(%ebp)
30b35b: 89 55 e8 mov %edx,-0x18(%ebp)
30b35e: e9 2a fe ff ff jmp 30b18d <_dl_start+0x22d>
30b363: 90 nop
30b364: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
30b368: 3b 75 c8 cmp -0x38(%ebp),%esi
30b36b: 0f 86 93 fe ff ff jbe 30b204 <_dl_start+0x2a4>
30b371: eb af jmp 30b322 <_dl_start+0x3c2>
30b373: 90 nop
30b374: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
30b378: 39 f2 cmp %esi,%edx
30b37a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
30b380: 0f 86 4e fe ff ff jbe 30b1d4 <_dl_start+0x274>
30b386: 66 90 xchg %ax,%ax
30b388: eb a8 jmp 30b332 <_dl_start+0x3d2>
30b38a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
30b390: 39 f2 cmp %esi,%edx
30b392: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
30b398: 0f 86 14 fe ff ff jbe 30b1b2 <_dl_start+0x252>
30b39e: 66 90 xchg %ax,%ax
30b3a0: eb a0 jmp 30b342 <_dl_start+0x3e2>
30b3a2: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
30b3a8: 8b 75 cc mov -0x34(%ebp),%esi
30b3ab: 39 75 e4 cmp %esi,-0x1c(%ebp)
30b3ae: 66 90 xchg %ax,%ax
30b3b0: 0f 86 d7 fd ff ff jbe 30b18d <_dl_start+0x22d>
30b3b6: 66 90 xchg %ax,%ax
30b3b8: eb 98 jmp 30b352 <_dl_start+0x3f2>
30b3ba: 31 d2 xor %edx,%edx
30b3bc: 31 f6 xor %esi,%esi
30b3be: 31 c9 xor %ecx,%ecx
30b3c0: e9 c6 fc ff ff jmp 30b08b <_dl_start+0x12b>
30b3c5: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
30b3c9: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi