8a572b129c9755959b4421970947aeda4119c3b7 |
|
11-Nov-2010 |
Mike Dodd <mdodd@google.com> |
oprofile fix for hashing backtraces. Oprofile's hash function uses a 64-bit value for the key where the high 32-bit are the 'from' address in a backtrace, and the low 32-bits are the current PC. However, the hash function was: uint32_t temp = (value >> 32) ^ value; return ((temp << 0) ^ (temp >> 8)) & data->hash_mask; If 'from' and 'to' are the same (recursive function), this hashes to 0, and you end up with lots of collisions, turning the theoretically O(1) operation into O(n). To fix it, I just drop the high 32-bits from the hash: uint32_t temp = value & 0xffffffff; return ((temp << 0) ^ (temp >> 8)) & data->hash_mask; In testing, this drastically reduces the oprofile overhead for some tracing. Change-Id: I8ae65a8a73771c89b576c895f135efd7b730eaf5
/external/oprofile/libdb/odb.h
|
5a4eb4eb367eccd4b976d1feae96cea96d2c50f2 |
|
15-Sep-2009 |
Ben Cheng <bccheng@google.com> |
Refresh OProfile code running on the target side to 0.9.5 for ARMV7.
/external/oprofile/libdb/odb.h
|
10e23eebca4175a8dfe3a788b2bebacb1fcfce54 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/external/oprofile/libdb/odb.h
|
dfb3f050a7cebd2030ea23dc6fa8964530e4ddcc |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/external/oprofile/libdb/odb.h
|
7984f7ab3e13cda0c3b04ffeb2608f232e57f93a |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
/external/oprofile/libdb/odb.h
|
cc2ee177dbb3befca43e36cfc56778b006c3d050 |
|
12-Jan-1970 |
Upstream <upstream-import@none> |
external/oprofile 0.9.1
/external/oprofile/libdb/odb.h
|