diff options
author | Giacomo Travaglini <giacomo.travaglini@arm.com> | 2018-04-04 16:27:04 +0100 |
---|---|---|
committer | Giacomo Travaglini <giacomo.travaglini@arm.com> | 2018-04-27 16:00:28 +0000 |
commit | 5187a24d496cd16bfe440f52ff0c45ab0e185306 (patch) | |
tree | c491ebdad23a5f9e57ef62ffeabcf2b87289f5ce /src/cpu | |
parent | 685cf2d1f8ae2f2ca3168a650efa1d36120783fe (diff) | |
download | gem5-5187a24d496cd16bfe440f52ff0c45ab0e185306.tar.xz |
sim,cpu,mem,arch: Introduced MasterInfo data structure
With this patch a gem5 System will store more info about its Masters.
While it was previously keeping track of the Master name and Master ID
only, it is now adding a per-Master pointer to the SimObject related to
the Master.
This will make it possible for a client to query a System for a Master
using either the master's name or the master's pointer.
Change-Id: I8b97d328a65cd06f329e2cdd3679451c17d2b8f6
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/9781
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/base.cc | 4 | ||||
-rw-r--r-- | src/cpu/checker/cpu.cc | 2 | ||||
-rw-r--r-- | src/cpu/testers/directedtest/DirectedGenerator.cc | 2 | ||||
-rw-r--r-- | src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc | 2 | ||||
-rw-r--r-- | src/cpu/testers/memtest/memtest.cc | 2 | ||||
-rw-r--r-- | src/cpu/testers/rubytest/RubyTester.cc | 2 | ||||
-rw-r--r-- | src/cpu/testers/traffic_gen/traffic_gen.cc | 2 | ||||
-rw-r--r-- | src/cpu/trace/trace_cpu.cc | 4 |
8 files changed, 10 insertions, 10 deletions
diff --git a/src/cpu/base.cc b/src/cpu/base.cc index 4fd804b9c..c576f1def 100644 --- a/src/cpu/base.cc +++ b/src/cpu/base.cc @@ -127,8 +127,8 @@ CPUProgressEvent::description() const BaseCPU::BaseCPU(Params *p, bool is_checker) : MemObject(p), instCnt(0), _cpuId(p->cpu_id), _socketId(p->socket_id), - _instMasterId(p->system->getMasterId(name() + ".inst")), - _dataMasterId(p->system->getMasterId(name() + ".data")), + _instMasterId(p->system->getMasterId(this, "inst")), + _dataMasterId(p->system->getMasterId(this, "data")), _taskId(ContextSwitchTaskId::Unknown), _pid(invldPid), _switchedOut(p->switched_out), _cacheLineSize(p->system->cacheLineSize()), interrupts(p->interrupts), profileEvent(NULL), diff --git a/src/cpu/checker/cpu.cc b/src/cpu/checker/cpu.cc index 48fcb202c..07b655399 100644 --- a/src/cpu/checker/cpu.cc +++ b/src/cpu/checker/cpu.cc @@ -62,7 +62,7 @@ using namespace TheISA; void CheckerCPU::init() { - masterId = systemPtr->getMasterId(name()); + masterId = systemPtr->getMasterId(this); } CheckerCPU::CheckerCPU(Params *p) diff --git a/src/cpu/testers/directedtest/DirectedGenerator.cc b/src/cpu/testers/directedtest/DirectedGenerator.cc index e37868b65..2d76b8618 100644 --- a/src/cpu/testers/directedtest/DirectedGenerator.cc +++ b/src/cpu/testers/directedtest/DirectedGenerator.cc @@ -33,7 +33,7 @@ DirectedGenerator::DirectedGenerator(const Params *p) : SimObject(p), - masterId(p->system->getMasterId(name())) + masterId(p->system->getMasterId(this)) { m_num_cpus = p->num_cpus; m_directed_tester = NULL; diff --git a/src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc b/src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc index f7513d382..56edd842b 100644 --- a/src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc +++ b/src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc @@ -93,7 +93,7 @@ GarnetSyntheticTraffic::GarnetSyntheticTraffic(const Params *p) injVnet(p->inj_vnet), precision(p->precision), responseLimit(p->response_limit), - masterId(p->system->getMasterId(name())) + masterId(p->system->getMasterId(this)) { // set up counters noResponseCycles = 0; diff --git a/src/cpu/testers/memtest/memtest.cc b/src/cpu/testers/memtest/memtest.cc index 6f3f9b36f..ccd978c94 100644 --- a/src/cpu/testers/memtest/memtest.cc +++ b/src/cpu/testers/memtest/memtest.cc @@ -96,7 +96,7 @@ MemTest::MemTest(const Params *p) percentReads(p->percent_reads), percentFunctional(p->percent_functional), percentUncacheable(p->percent_uncacheable), - masterId(p->system->getMasterId(name())), + masterId(p->system->getMasterId(this)), blockSize(p->system->cacheLineSize()), blockAddrMask(blockSize - 1), progressInterval(p->progress_interval), diff --git a/src/cpu/testers/rubytest/RubyTester.cc b/src/cpu/testers/rubytest/RubyTester.cc index d9ca030c7..67c824806 100644 --- a/src/cpu/testers/rubytest/RubyTester.cc +++ b/src/cpu/testers/rubytest/RubyTester.cc @@ -53,7 +53,7 @@ RubyTester::RubyTester(const Params *p) : MemObject(p), checkStartEvent([this]{ wakeup(); }, "RubyTester tick", false, Event::CPU_Tick_Pri), - _masterId(p->system->getMasterId(name())), + _masterId(p->system->getMasterId(this)), m_checkTable_ptr(nullptr), m_num_cpus(p->num_cpus), m_checks_to_complete(p->checks_to_complete), diff --git a/src/cpu/testers/traffic_gen/traffic_gen.cc b/src/cpu/testers/traffic_gen/traffic_gen.cc index 7668c5141..2d4dd3752 100644 --- a/src/cpu/testers/traffic_gen/traffic_gen.cc +++ b/src/cpu/testers/traffic_gen/traffic_gen.cc @@ -57,7 +57,7 @@ using namespace std; TrafficGen::TrafficGen(const TrafficGenParams* p) : MemObject(p), system(p->system), - masterID(system->getMasterId(name())), + masterID(system->getMasterId(this)), configFile(p->config_file), elasticReq(p->elastic_req), progressCheck(p->progress_check), diff --git a/src/cpu/trace/trace_cpu.cc b/src/cpu/trace/trace_cpu.cc index 824c1258f..77755e888 100644 --- a/src/cpu/trace/trace_cpu.cc +++ b/src/cpu/trace/trace_cpu.cc @@ -50,8 +50,8 @@ TraceCPU::TraceCPU(TraceCPUParams *params) : BaseCPU(params), icachePort(this), dcachePort(this), - instMasterID(params->system->getMasterId(name() + ".inst")), - dataMasterID(params->system->getMasterId(name() + ".data")), + instMasterID(params->system->getMasterId(this, "inst")), + dataMasterID(params->system->getMasterId(this, "data")), instTraceFile(params->instTraceFile), dataTraceFile(params->dataTraceFile), icacheGen(*this, ".iside", icachePort, instMasterID, instTraceFile), |