The typo (in specifying the --kernel-range argument) completely breaks kernel profiling because the kernel end address will always be 0 and < the start address. All kernel samples will therefore be discarded. I've also added very basic support for turning on kernel profiling via this script. Change-Id: I64b4063cb994ca94a51ed5aa0159aa4ae1627969
Now taking into account differences in the library dependencies of libintl on darwin vs. linux. On darwin, we need to link with libiconv which is provided as a shared library on the platform. On linux, iconv is included in libc so we don't need anything special. Change-Id: Ide89061cce0352c83b7401d9f5d594e9625b1868
This reverts commit 245b758.
Added a new wrapper script that will help automate more of the process of setting up and running oprofile on a remote device. There is more work to be done here once the kernel perf event issues that hinder reliability (bug: 2975913) are resolved. Change-Id: I942ee74912f1e4c87b4c43aca9937b3f3f1780f6
There have been a few patches to oprofile for newer ARM architectures since 0.9.6. Pruned out irrelevant auto-generated files from the previous dump so this is closer to being a mirror of the actual oprofile repository. Change-Id: I889053d30aae433a199a0a18585c66b88ff8de14
This patch modifies the inline x86 assembly fragments to properly save ebx when calling the cpuid instruction. Otherwise, the compiler will error, complaining that the PIC register (ebx) is clobbered. Change-Id: Ibc091484068dfb87812c59dbc3976d26d922eebc
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
1) Display samples collected in the code cache into dalvik-jit-code-cache. 2) Tolerate phantom event on counter 3 when it is not configured.