diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-05-10 18:04:26 -0500 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-05-10 18:04:26 -0500 |
commit | 413ba1fdaf666118c9a340d0c23c466f4b7d7fee (patch) | |
tree | 518724709eb3383ad66ea362a4ade55ccd294887 /src/sim | |
parent | f6895e8bd46a1533c607fe528a2da68b64e722dc (diff) | |
download | gem5-413ba1fdaf666118c9a340d0c23c466f4b7d7fee.tar.xz |
stats: track if the stats have been enabled and prevent requesting master id
Track the point in the initialization where statistics have been registered.
After this point registering new masterIds can no longer work as some
SimObjects may have sized stats vectors based on the previous value. If someone
tries to register a masterId after this point the simulator executes fatal().
Diffstat (limited to 'src/sim')
-rw-r--r-- | src/sim/system.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/sim/system.cc b/src/sim/system.cc index 40f5ea0ce..815a4cf1c 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -410,10 +410,11 @@ System::getMasterId(std::string master_name) } } - // todo: Check if stats are enabled yet - // I just don't know a good way to do it + // Verify that the statistics haven't been enabled yet + // Otherwise objects will have sized their stat buckets and + // they will be too small - if (false) + if (Stats::enabled()) fatal("Can't request a masterId after regStats(). \ You must do so in init().\n"); |