Hi all,

I ran into an issue today with statistics, I don't know if it's a known issue but Google gave me nothing. I added a Stats::Distribution in lsq_unit.hh, registered it in the regStats() function of lsq_unit_impl.hh (this is for O3) with .init().name().desc(). However, when I ran the program, I had a panic stating : "panic: Not all stats have been initialized".

After some digging, it appears that the cause is that the LSQ (lsq.hh) has an array of LSQUnit (lsq_unit.hh) named /threads//. /The size of the array is static and its value is Impl::MaxThreads from impl.hh. Since I am only using one thread, but Impl::MaxThreads is 4 by default, there are 3 "shadow" LSQUnit in the array that the processor never uses. This is not an issue as long as the statistics declared in lsq_unit.hh do not need to be initialiazed (via init()), which is the case for the current version. However, with my new statistics, I have some "shadow" statistics which are not initialized because regStats() is never called for the remaining 3 LSQUnit.

For now, I have set Impl::MaxThreads to 1. However, I am pretty certain that forcing Impl::MaxThreads to match the number of threads specified in the python script by hand is not very elegant.

Cheers,

Arthur Perais.

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to