diff options
author | Mitch Hayenga <mitch.hayenga@arm.com> | 2015-09-30 11:14:19 -0500 |
---|---|---|
committer | Mitch Hayenga <mitch.hayenga@arm.com> | 2015-09-30 11:14:19 -0500 |
commit | fafa83ed32933fe250d34dfca23fba348429b176 (patch) | |
tree | 3bf8fd636f1e879273045fefda3b5d7319a38479 /src/cpu/base.hh | |
parent | 582a0148b441fe9f4a6f977094c5ce6bf7ab6313 (diff) | |
download | gem5-fafa83ed32933fe250d34dfca23fba348429b176.tar.xz |
cpu: Add per-thread monitors
Adds per-thread address monitors to support FullSystem SMT.
Diffstat (limited to 'src/cpu/base.hh')
-rw-r--r-- | src/cpu/base.hh | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/cpu/base.hh b/src/cpu/base.hh index 3a10841e0..0286ac45b 100644 --- a/src/cpu/base.hh +++ b/src/cpu/base.hh @@ -559,14 +559,17 @@ class BaseCPU : public MemObject Stats::Scalar numWorkItemsCompleted; private: - AddressMonitor addressMonitor; + std::vector<AddressMonitor> addressMonitor; public: - void armMonitor(Addr address); - bool mwait(PacketPtr pkt); - void mwaitAtomic(ThreadContext *tc, TheISA::TLB *dtb); - AddressMonitor *getCpuAddrMonitor() { return &addressMonitor; } - void atomicNotify(Addr address); + void armMonitor(ThreadID tid, Addr address); + bool mwait(ThreadID tid, PacketPtr pkt); + void mwaitAtomic(ThreadID tid, ThreadContext *tc, TheISA::TLB *dtb); + AddressMonitor *getCpuAddrMonitor(ThreadID tid) + { + assert(tid < numThreads); + return &addressMonitor[tid]; + } }; #endif // THE_ISA == NULL_ISA |