Hello,
  I am running a multi-programmed simulation in SE mode (16 cores, 16
threads, 1 thread/core).

I want to simulate each core for a fixed (or atleast) number of
instructions (say 100million). With this scenario, some cores will
execute greater number of instructions if the thread executes faster. So
we may execute 100Mil, 150Mil, 200Mil, and so on. 

I was reading some of the earlier discussions on this issue (2008) and
there doesn't seem to be a way to do this. The max_inst_all_threads
works across all threads, but only for 1 cpu. Even if we assign it for
every cpu using:

switch_cpu_1[i].max_inst_all_threads = max_insts

the entire simulation exits when any 1 cpu reaches that count.

does anyone know how to do this? I was looking at simulate.cc and
sim_events.cc where the CountedExitEvent object is used. If I understand
correctly, it decrements the counter when any thread for a given cpu
terminates, and it signals an M5 exit event when an cpu finishes the
max_insts count for all its own threads.

Can you suggest how we can modify this to keep track of threads across
different cores? Also, is it a realistic model to not let the other
cores continue after reaching max_inst_all_threads, but to stall them
till the other cores catch up?

Thanks,
Sujay


_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to