From 7371e468225cfacc871e5b965f99b130a2fcc123 Mon Sep 17 00:00:00 2001 From: Earl Ou Date: Wed, 1 Feb 2023 21:54:05 -0800 Subject: [PATCH] mem: use default backdoor behavior for thread_bridge The original backdoor implementation is incorrect. We use simply fallback to default (disable backdoor) as backdoor across threads is not thread-safe in most of cases. Change-Id: Ia39be0dda4f16917cc3565eb5b012270e6d7697a Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67531 Maintainer: Gabe Black Tested-by: kokoro Reviewed-by: Yu-hsin Wang --- src/mem/thread_bridge.cc | 14 -------------- src/mem/thread_bridge.hh | 4 ---- 2 files changed, 18 deletions(-) diff --git a/src/mem/thread_bridge.cc b/src/mem/thread_bridge.cc index 0090e4217c..5af2a59de3 100644 --- a/src/mem/thread_bridge.cc +++ b/src/mem/thread_bridge.cc @@ -64,12 +64,6 @@ ThreadBridge::IncomingPort::recvRespRetry() // AtomicResponseProtocol Tick -ThreadBridge::IncomingPort::recvAtomicBackdoor(PacketPtr pkt, - MemBackdoorPtr &backdoor) -{ - panic("ThreadBridge only supports atomic/functional access."); -} -Tick ThreadBridge::IncomingPort::recvAtomic(PacketPtr pkt) { EventQueue::ScopedMigration migrate(device_.eventQueue()); @@ -84,14 +78,6 @@ ThreadBridge::IncomingPort::recvFunctional(PacketPtr pkt) device_.out_port_.sendFunctional(pkt); } -void -ThreadBridge::IncomingPort::recvMemBackdoorReq(const MemBackdoorReq &req, - MemBackdoorPtr &backdoor) -{ - EventQueue::ScopedMigration migrate(device_.eventQueue()); - device_.out_port_.sendMemBackdoorReq(req, backdoor); -} - ThreadBridge::OutgoingPort::OutgoingPort(const std::string &name, ThreadBridge &device) : RequestPort(name), device_(device) diff --git a/src/mem/thread_bridge.hh b/src/mem/thread_bridge.hh index 92cb078dd1..8a253fdd55 100644 --- a/src/mem/thread_bridge.hh +++ b/src/mem/thread_bridge.hh @@ -55,14 +55,10 @@ class ThreadBridge : public SimObject void recvRespRetry() override; // AtomicResponseProtocol - Tick recvAtomicBackdoor(PacketPtr pkt, - MemBackdoorPtr &backdoor) override; Tick recvAtomic(PacketPtr pkt) override; // FunctionalResponseProtocol void recvFunctional(PacketPtr pkt) override; - void recvMemBackdoorReq(const MemBackdoorReq &req, - MemBackdoorPtr &backdoor) override; private: ThreadBridge &device_;