DynamoRIO / dynamorio

Dynamic Instrumentation Tool Platform
Other
2.66k stars 562 forks source link

Long hashtable collisions when running Octane in V8 #1544

Open derekbruening opened 9 years ago

derekbruening commented 9 years ago

From byron.c....@gmail.com on September 17, 2014 21:46:18

After sorting the logs like $(grep "collision" | cut -d ':' -f 2 | sort | uniq -c"):

  2 Current future table fragment_lookup collisions
 20 Current indcall_trace table bb ibl indcall collisions
 20 Current indcall_trace table fragment_lookup collisions
 20 Current indcall_trace table trace ibl indcall collisions
 10 Current indjmp_trace table bb ibl indjmp collisions
 10 Current indjmp_trace table fragment_lookup collisions
 10 Current indjmp_trace table trace ibl indjmp collisions
 36 Current ret_trace table bb ibl ret collisions
 36 Current ret_trace table fragment_lookup collisions
 36 Current ret_trace table trace ibl ret collisions
 16 Current shared_bb table fragment_lookup collisions
 16 Current shared_future table fragment_lookup collisions
 14 Current shared_trace table fragment_lookup collisions
 20 long collision sequence ... indcall_trace table
  2 Current DGC Emulation Plans table fragment_lookup collisions
  2 table collision cluster is too large" in ... hashtablex.h line 905

The reported collisions range in length from 100 to millions, usually with zero overwrap but sometimes thousands.

The full logs (at level 1) are ~150MB, so I just attached the $(grep "collision") slice. Note that the run was terminated about at about 30% because it takes a really long time in a debug build.

Attachment: v8-octane.collisions.log

Original issue: http://code.google.com/p/dynamorio/issues/detail?id=1544

derekbruening commented 9 years ago

From byron.c....@gmail.com on September 17, 2014 18:54:40

Same log summary for Octane in Ion (full log slice on "collision" is attached):

 10 Current future table fragment_lookup collisions
 84 Current indcall_trace table bb ibl indcall collisions
 84 Current indcall_trace table fragment_lookup collisions
 84 Current indcall_trace table trace ibl indcall collisions
 42 Current indjmp_trace table bb ibl indjmp collisions
 42 Current indjmp_trace table fragment_lookup collisions
 42 Current indjmp_trace table trace ibl indjmp collisions
102 Current ret_trace table bb ibl ret collisions
102 Current ret_trace table fragment_lookup collisions
102 Current ret_trace table trace ibl ret collisions
 16 Current shared_bb table fragment_lookup collisions
 14 Current shared_future table fragment_lookup collisions
 12 Current shared_trace table fragment_lookup collisions
  3 Total bblock table fragment_lookup collisions
129 Total future table fragment_lookup collisions
 14 Total shared_future table fragment_lookup collisions

Attachment: ion-octane.collisions.log