Age | Commit message (Collapse) | Author |
|
|
|
Instead of fixing the mapped buffer size, we can adjust
it at runtime. So users don't need to adjust -m manually.
Bug: 29574526
Change-Id: Icb580df3d60f8d2cf554c0d4139e6f7f64b19f8f
Test: run simpleperf_unit_test.
|
|
|
|
Improve error message by checking if dump stack size > 65528.
And adjust the default dump stack size to 65528, because I
find that it is the value I always want to use.
Bug: 29574526
Change-Id: I8f16dcf3a86a477f17d81fd387bf4dfa0dc0b341
Test: run simpleperf_unit_test.
|
|
|
|
|
|
|
|
Non root users have a size limit of buffers used for profiling.
By combining buffers used for the same event and cpu, we can
reduce buffer cost when monitoring multiple threads, thus
avoid mmap() failures.
Increase default value for -m option for non system wide profiling.
Bug: 28911532
Change-Id: I91148061eb54840c144cf72e7bb901e7b74897ec
Test: run simpleperf_unit_test.
|
|
Change-Id: Ie7868cc205859c657e905e60ab6928517f02edb8
|
|
|
|
Change-Id: I551a7f7ce46267bb609e5ed8bd8dafc00b9fbab7
|
|
|
|
If kernel symbols have zero addresses, there is no need to dump them,
and we can give useful suggestion.
Bug: 29574526
Test: manually set /proc/sys/kernel/kptr_restrict and run simpleperf record.
Change-Id: I850531c7e4c5315a44e08cf3b73852e77fef8eb8
|
|
|
|
|
|
* Declare explicit conversion constructors.
Bug: 28341362
Change-Id: Ia6613392bd68f170ec2d7b0b033b7476aff27e0f
Test: build with clang-tidy
|
|
* Declare explicit conversion constructors.
Bug: 28341362
Change-Id: I9d5b764fe004e291cbdd212617df6f385c31df25
Test: build with clang-tidy
|
|
|
|
Min virtual address of a shared library is needed when mapping ip
addresses to function symbols. So we should dump it in DsoRecord.
Bug: 28114205
Test: run simpleperf_unit_test.
Change-Id: Ib986ee598281cf60caa3a2c5408100b9e7678143
|
|
semicolon."
|
|
The test can fail when dumping an unknown symbol in a new shared
library. The shared library is recorded in DsoRecord, but the
unknown symbol may have been dumped. To fix this, don't dump
unknown symbols, and make the test not enforcing DsoRecords
and SymbolRecords to occur.
Bug: 28114205
Change-Id: Ib01d0753710c68dd9538d8b635c6d9207fe7aa1c
Test: run simpleperf_unit_test.
|
|
Function name of c++ can have comma, like func2(int, int). So it is not
proper to use comma to separate function names.
Bug: 29826956
Change-Id: I9da4bc178232dad53abdc5735358f3feb608fee4
Test: run simpleperf_unit_test.
|
|
|
|
CSV format is easier to parse and could be useful for testing.
Change-Id: I444bddfa181b48c79ec48ef7595b5d8a25e62e12
|
|
|
|
|
|
Bug: 29574526
Change-Id: I3ae95ed95703bcd380ed086d3fbf7ae2830feed5
|
|
|
|
|
|
Bug: 29574526
Change-Id: I72cf2d0e1d15a561314d3c043650479b2c6773ff
|
|
In dso.cpp, build_id_map_ should use path_ instead of GetAccessiblePath() as the key.
However, patch https://android-review.googlesource.com/#/c/175654/ wrongly used
GetAccessiblePath() as the key in build_id_map_. This patch fixes the error and add
corresponding test.
Check if file in symfs exists before using it as debug file path.
If the build id of debug file path doesn't match the one in build_id_map_, output
warning to user.
Bug: 28911532
Test: run simpleperf_unit_test.
Change-Id: I21bca508359a492245db4cba5d287005363cd465
|
|
|
|
When running record command with -g or --dump-symbols command,
files with symbol table and debug information are needed. Similar
to report command, we can add --symfs option to record command.
Bug: 28911532
Test: run simpleperf_unit_test.
Change-Id: I8e2b6320ca29c8de78b4f217cd25e1ea4383150e
|
|
|
|
This avoid reporting unknown symbols when there are samples in .plt section.
Bug: 28911532
Test: run simpleperf_unit_test.
Change-Id: I62cb08776c99951ff845e98f0f601859d25ece5c
|
|
|
|
When there are summaries monitoring one event type in user
space and kernel space at the same time period, we can automatically
generate a summary combining the results generated in user space and
kernel space.
This can help to decrease the number of needed hardware counters.
Also adjust scale check when deciding whether an event is monitored
all the time.
Bug: 29213742
Change-Id: I272e21420700c10fccb1336a1e60138db8d13b3d
Test: run simpleperf_unit_test.
|
|
|
|
|
|
By adding --symbols option, we can report for selected functions.
It helps to filter out functions we don't care, especially when
we are using `simpleperf report --sort vaddr_in_file` to profile
inside a function.
Bug: 29826956
Change-Id: I4de9dfe1a376db097f6163aa780a079cbc33689a
|
|
RecordCache::Push(vector<..>) doesn't update last_time_, this makes
RecordCache don't pop any record before PopAll().
Bug: 29581559
Change-Id: Icea806346b7ad812e606eaf05747797b766ebd71
Test: run simpleperf_unit_test.
|
|
|
|
Change-Id: I3a55449f594c629edc75e4aa5b91b27c72ecd8ca
|
|
Currently report command can't report more details than function name.
After adding vaddr_in_file sort key, it can report the place of the
instruction being sampled. vaddr_in_file is the instruction's virtual
address in elf file, which matches output generated by objdump.
Bug: 29826956
Test: run simpleperf_unit_test.
Change-Id: Ifad4dfb7c60014a03c01ffbfd0b972858f1a4884
|
|
|
|
|
|
|
|
Move to the new SPLIT/SPLIT_END encoding scheme used
by simpleperf for records with oversized (more than 2^16 bytes)
payloads.
Bug: 29818021
Change-Id: I40126748dbe9b07b107c85b891f7aafbc556ae1f
|
|
Some kernels have a limit on the length of reads from urandom - fix
Change-Id: I67dda25c2e43121da1470a56e40d03c59fd5fabe
|
|
Previously we split KernelSymbolRecord because it is > 65535. Then
I found TracingDataRecord can also be > 65535. So it is better to
handle big records when reading and writing perf.data.
record_file_writer.cpp splits a big record into multiple SPLIT
records followed by a SPLIT_END record, and record_file_reader.cpp
restores the big record when reading SPLIT and SPLIT_END records.
Also Add RecordHeader to represent record having size > 65535.
Bug: 29581559
Change-Id: I0b4556988f77b3431c7f1a28fce65cf225d6a067
Test: run simpleperf_unit_test.
|