changeset 3c48b2b3cb83 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=3c48b2b3cb83
description:
        Merge with head.

diffstat:

 src/cpu/simple/timing.cc |  3 ++-
 util/m5/m5.c             |  5 +++++
 2 files changed, 7 insertions(+), 1 deletions(-)

diffs (35 lines):

diff -r 67c670459d01 -r 3c48b2b3cb83 src/cpu/simple/timing.cc
--- a/src/cpu/simple/timing.cc  Fri Aug 13 06:16:02 2010 -0700
+++ b/src/cpu/simple/timing.cc  Fri Aug 13 06:16:30 2010 -0700
@@ -891,6 +891,8 @@
     // received a response from the dcache: complete the load or store
     // instruction
     assert(!pkt->isError());
+    assert(_status == DcacheWaitResponse || _status == DTBWaitResponse ||
+           pkt->req->getFlags().isSet(Request::NO_ACCESS));
 
     numCycles += tickToCycles(curTick - previousTick);
     previousTick = curTick;
@@ -920,7 +922,6 @@
         }
     }
 
-    assert(_status == DcacheWaitResponse || _status == DTBWaitResponse);
     _status = Running;
 
     Fault fault = curStaticInst->completeAcc(pkt, this, traceData);
diff -r 67c670459d01 -r 3c48b2b3cb83 util/m5/m5.c
--- a/util/m5/m5.c      Fri Aug 13 06:16:02 2010 -0700
+++ b/util/m5/m5.c      Fri Aug 13 06:16:30 2010 -0700
@@ -65,6 +65,11 @@
     int offset = 0;
     int len;
 
+    // Touch all buffer pages to ensure they are mapped in the
+    // page table. This is required in the case of X86_FS, where
+    // Linux does demand paging.
+    memset(buf, 0, sizeof(buf));
+
     while ((len = m5_readfile(buf, sizeof(buf), offset)) > 0) {
         write(dest_fid, buf, len);
         offset += len;
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to