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