Nikos Nikoleris has submitted this change and it was merged. (
https://gem5-review.googlesource.com/5043 )
Change subject: mem: Align the snoop behavior in the XBar for atomic and
timing
......................................................................
mem: Align the snoop behavior in the XBar for atomic and timing
When the XBar receives a Writeback/WriteClean packet, it doesn't need
to snoop the upstream caches. It only queries the snoop filter and
sets the blockCached flag accordingly. This is in line with the
recvTimingReq.
Change-Id: I0ae22f21491d75a111019124bb95bac7b16d3cd3
Reviewed-by: Andreas Sandberg <[email protected]>
Reviewed-by: Anouk Van Laer <[email protected]>
Reviewed-on: https://gem5-review.googlesource.com/5043
Reviewed-by: Jason Lowe-Power <[email protected]>
Maintainer: Nikos Nikoleris <[email protected]>
---
M src/mem/coherent_xbar.cc
1 file changed, 13 insertions(+), 3 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved
Anouk Van Laer: Looks good to me, but someone else must approve
Nikos Nikoleris: Looks good to me, approved
diff --git a/src/mem/coherent_xbar.cc b/src/mem/coherent_xbar.cc
index 7c3a4e3..ef06208 100644
--- a/src/mem/coherent_xbar.cc
+++ b/src/mem/coherent_xbar.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2016 ARM Limited
+ * Copyright (c) 2011-2017 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -661,8 +661,18 @@
// between and change the filter state
snoopFilter->finishRequest(false, pkt->getAddr(),
pkt->isSecure());
- snoop_result = forwardAtomic(pkt, slave_port_id, InvalidPortID,
- sf_res.first);
+ if (pkt->isEviction()) {
+ // for block-evicting packets, i.e. writebacks and
+ // clean evictions, there is no need to snoop up, as
+ // all we do is determine if the block is cached or
+ // not, instead just set it here based on the snoop
+ // filter result
+ if (!sf_res.first.empty())
+ pkt->setBlockCached();
+ } else {
+ snoop_result = forwardAtomic(pkt, slave_port_id,
InvalidPortID,
+ sf_res.first);
+ }
} else {
snoop_result = forwardAtomic(pkt, slave_port_id);
}
--
To view, visit https://gem5-review.googlesource.com/5043
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I0ae22f21491d75a111019124bb95bac7b16d3cd3
Gerrit-Change-Number: 5043
Gerrit-PatchSet: 3
Gerrit-Owner: Nikos Nikoleris <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Anouk Van Laer <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Nikos Nikoleris <[email protected]>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev