Tiago Mück has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/18788

Change subject: mem: xbars do not merge single interleaved ranges
......................................................................

mem: xbars do not merge single interleaved ranges

BaseXBar does not attempt to merge interleaved address ranges if it
has only one of the ranges.

Change-Id: If71c9cf1444ee11916611afb51eab3a4f1d93985
Signed-off-by: Tiago Muck <tiago.m...@arm.com>
---
M src/mem/xbar.cc
1 file changed, 5 insertions(+), 4 deletions(-)



diff --git a/src/mem/xbar.cc b/src/mem/xbar.cc
index de32c0b..a85f7a1 100644
--- a/src/mem/xbar.cc
+++ b/src/mem/xbar.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2015, 2018 ARM Limited
+ * Copyright (c) 2011-2015, 2018, 2019 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -438,7 +438,7 @@
                 // if we already got interleaved ranges that are not
                 // part of the same range, then first do a merge
                 // before we add the new one
-                if (!intlv_ranges.empty() &&
+                if ((intlv_ranges.size() > 1) &&
                     !intlv_ranges.back().mergesWith(r.first)) {
DPRINTF(AddrRanges, "-- Merging range from %d ranges\n",
                             intlv_ranges.size());
@@ -466,7 +466,7 @@

         // if there is still interleaved ranges waiting to be merged,
         // go ahead and do it
-        if (!intlv_ranges.empty()) {
+        if (intlv_ranges.size() > 1) {
             DPRINTF(AddrRanges, "-- Merging range from %d ranges\n",
                     intlv_ranges.size());
             AddrRange merged_range(intlv_ranges);
@@ -475,7 +475,8 @@
                 DPRINTF(AddrRanges, "-- Adding merged range %s\n",
                         merged_range.to_string());
             }
-        }
+        } else if (intlv_ranges.size() == 1)
+            xbarRanges.push_back(intlv_ranges.front());

         // also check that no range partially intersects with the
         // default range, this has to be done after all ranges are set

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/18788
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: If71c9cf1444ee11916611afb51eab3a4f1d93985
Gerrit-Change-Number: 18788
Gerrit-PatchSet: 1
Gerrit-Owner: Tiago Mück <tiago.m...@arm.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to