tracing child threads with address filtering using intel_pt pmu

From: Mansour Alharthi
Date: Tue Oct 02 2018 - 20:19:52 EST


Hello all,

I am having trouble tracing child threads when using address filtering
with intel_pt ..

Assume this test code:

thread_start(){
...
test();
...
}

test(){
printf("test");
}

main(){
...
pthread_create(......, thread_start,....);
}


Tracing the above program with the following command:
perf record -v -m 512,10000 -e intel_pt//u -T --switch-events --filter
'filter * @ ./test' -- ./test

Returns zero trace for code executed by child thread, i.e.
thread_start() and test() functions..
While tracing without the filter does include the threads trace:
perf record -v -m 512,10000 -e intel_pt//u -T --switch-events -- ./test

Is this intended? or is it a bug?

Thanks!
Mansour.