Hi Dmitry,
There is big difference between threads and processes as far as the kernel is concerned; both are performed by just a clone syscall, and share or not address space/fd's etc.
If you want to replay per-process workloads, you can just record only the activity of the pids of the threads of the process.
In the future I will try to record thread creation but I'm not sure if the current tracepoints allow to differentiate between a fork or a thread creation; a new tracepoint might be needed which I explicitly wanted to avoid.
Regards
-- Pantelis
On Apr 4, 2012, at 12:57 PM, Dmitry Antipov wrote:
On 04/02/2012 02:15 PM, Pantelis Antoniou wrote:
Example session:
# perf sched record
< run process, etc.>
^C<- perf ends producing a perf.data file.
# perf sched spr-replay -l
<lists tasks and pids in the trace>
# perf sched spr-replay -s<pid#1> -s<name> -d -n -g <see the trace program for the processes with pid#1 and named<name>
# perf sched spr-replay -s<pid#1> -g>test.spr <generates test.spr which contains the program of pid#1>
# perf sched spr-replay -f test.spr -d
<execute the test.spr program>
Do you have any thoughts on how to replay multithreaded workloads? We definitely wants to replay per-process, not per-thread workloads.
Dmitry