Hi Yara, I'm not very familiar with the power modeling in gem5, but this seems like you found and then fixed a bug! We would really appreciate it if you contributed this change to the mainline. You can find a description of how to do this in the CONTRIBUTING document ( https://gem5.googlesource.com/public/gem5/+/master/CONTRIBUTING.md).
If you have any questions, don't hesitate to ask! Jason On Fri, Jun 1, 2018 at 4:42 AM Yara Gowayed <yara.gowa...@gmail.com> wrote: > I think I found a solution to this problem. It required changing something > in the src file gem5/src/sim/power/mathexpr_powermodel.cc. > > In the startup function the stats are being recorded from the statsList to > the stats_map which will be used by the power model to find the > corresponding value to each element in the power expressions. > The problem with the current implementation that it was taking a substring > from the name removing the basename which is the name of the object. So > when I try to access it from outside all objects it gives me an error. > > for (auto & i: Stats::statsList()) { > if (i->name.find(basename) == 0) { > // Add stats for this sim object and its child objects > stats_map[i->name.substr(basename.size())] = i; > } else if (i->name.find(".") == std::string::npos) { > // Add global stats (sim_seconds, for example) > stats_map[i->name] = i; > } > } > What I did and was compatible with what I need to achieve was replacing > the whole part with simply this > for (auto & i: Stats::statsList()) { > > stats_map[i->name] = i; > > } > > > On 23 May 2018 at 17:47, Yara Gowayed <yara.gowa...@gmail.com> wrote: > >> Hi all >> >> I am currently working on power modeling using gem5 for arm bigLITTLE >> architecture. I am using the fs_power.py script already found in the gem5 >> repo but I wanted to change the dummy equations for static and dynamic >> power to more meaningful equations. >> The stats I need to do so are all found in stats.txt but when I try to >> formulate the equations it gives me "failed to find stat" error. >> >> I already can use some stats like dcache.overall_misses , >> dcache.overall_accesses, >> numCycles,voltage, dtb_walker_cache.overall_misses, icache.overall_misses >> , icache.overall_accesses. >> But when it comes to : >> system.clk_domain.clock,system.bigCluster.cpus0.iew.iewExecutedInsts,system.bigCluster.cpus2.iq.FU_type_0::IntAlu >> or any other instructions(MULT,DIV) it fails. >> >> I kind of have an intuition where the problem is, I went through the >> documentation of doxygen and all the stats that failed needs to be accessed >> from a certain object that I dont know. >> >> For example the stats::overall_misses should be accessed from BaseCache >> class and I did so in dcache.overall_misses but for the others I tried to >> do the same and it failed. >> >> Any clue how to be able to access the given stats? It doesn't have to be >> per core a sum of them will do the same job. >> >> Also I tried to do the calculations after the simulation ends using >> scripts that process data from the stats.txt and that worked, I just want >> it now to be online during the simulation. >> >> Thanks alot! >> Yara >> >> > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users