About the x86 trace generation tool - pintool, how to generate trace skip the first 100000 insts

64 views
Skip to first unread message

Applee

unread,
Mar 28, 2016, 7:44:40 AM3/28/16
to Macsim Developer
Hi all,

     I have a problem about the pintool that is used to generate the x86 trace.  I want to skip the first 100000  instructions, so i use the command "-skipinst 100000".  But i don't know if it's right.
   
      I use the skipinst knob to skip different instructions(100000, 1000000, 10000000, 100000000), but almost these trace are all the same size.

      And i run the macsim simulator with the parameter "debug_noc  1" to check whether they are the same.  The two trace that i used to check: one doesn't skip instructions, the other  skips 100000 instructions(-skipinst 100000).
      When I check the debug info. the first 189 lines are the same. 

      So i guess maybe i have some wrong about the understand of the ''Knob_skip".


Best regards,
    Applee

Hyesoon Kim

unread,
Mar 29, 2016, 10:35:23 AM3/29/16
to macsi...@googlegroups.com
The trace size is determined by knob_max ( you have to use "max" in the command line). That's why your trace sizes were probably all similar. When traces were generated, you can also turn on knob_inst_dum ("dump" in the command line) to see the instruction traces to be sure. 
If you want to check your instruction streams, you should use DEBUG_TRACE_READ  to see the instruction stream. 

Hyesoon


--

---
You received this message because you are subscribed to the Google Groups "Macsim Developer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to macsim-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Applee

unread,
Mar 29, 2016, 9:17:40 PM3/29/16
to Macsim Developer
Thanks for your help.

     If i only care the memory access, such as ld/st.  I want to generate a trace file that only contain these instructions. What can i do?  Modify the code "trace_generator.cpp"?  Or modify the file "uoplatency_x86.def", to set all the other uops's latency as zero.

Thanks for your time.

Best Regards,
Applee

在 2016年3月29日星期二 UTC+8下午10:35:23,Hyesoon写道:

Kim, Hyesoon

unread,
Mar 30, 2016, 2:34:17 AM3/30/16
to macsi...@googlegroups.com
You could modify trace generator to collect only ld/st 
Or you could modify trace read cpu.cc to remove non-memory instructions. 
Even if you set the top’s latency as zero, those non-memory instructions will be fetched, executed and consume all fetch/issue/exec/retire bandwidth. 
Reply all
Reply to author
Forward
0 new messages