Hi Azadeh,

It should not be too difficult. Besides adding '—caches' command line, here is 
all you have to do to trace the d-side. Note that the trace is in a binary 
format (and not ASCII).

Andreas

diff --git a/src/cpu/BaseCPU.py b/src/cpu/BaseCPU.py
--- a/src/cpu/BaseCPU.py
+++ b/src/cpu/BaseCPU.py
@@ -52,6 +52,7 @@
 from ExeTracer import ExeTracer
 from MemObject import MemObject
 from ClockDomain import *
+from CommMonitor import CommMonitor

 default_tracer = ExeTracer()

@@ -267,7 +268,9 @@
         self.icache = ic
         self.dcache = dc
         self.icache_port = ic.cpu_side
-        self.dcache_port = dc.cpu_side
+        self.dmon = CommMonitor(trace_enable=True)
+        self.dcache_port = self.dmon.slave
+        self.dmon.master = dc.cpu_side
         self._cached_ports = ['icache.mem_side', 'dcache.mem_side']
         if buildEnv['TARGET_ISA'] in ['x86', 'arm']:
             if iwc and dwc:


From: Azadeh Shirvanian via gem5-users 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Reply-To: Azadeh Shirvanian 
<azadeh.shirvan...@gmail.com<mailto:azadeh.shirvan...@gmail.com>>, gem5 users 
mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Sunday, 18 January 2015 14:46
To: "gem5-users@gem5.org<mailto:gem5-users@gem5.org>" 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: [gem5-users] Communication monitor is not connected on both sides

Dear all

I need to trace the address and the data exchanged between CPU and L1 data 
cache - in SE mode on X86, classical memory - and I have modified the 
CacheConfig.py to add CommMonitor in the following way:

After the line about setting the cache line size (system.cache_line_size = 
options.cacheline_size) I have added these two lines:

system.icachemonitor = CommMonitor(trace_file='Icachecontent.ptrc')
system.dcachemonitor = 
CommMonitor(trace_file='DCache_content.ptrc',trace_enable=True)

Then after:
        if buildEnv['TARGET_ISA'] == 'x86':

I have commented this line:
                system.cpu[i].addPrivateSplitL1Caches(icache, dcache, 
PageTableWalkerCache(), PageTableWalkerCache())

and instead, inserted these three lines:
                system.dcachemonitor.master = dcache.cpu_side
system.icachemonitor.master = icache.cpu_side
system.cpu[i].addPrivateSplitL1Caches(system.icachemonitor.slave, 
system.dcachemonitor.slave,
                                                      PageTableWalkerCache(),
                                                      PageTableWalkerCache())

Then I have compiled using:
scons build/X86/gem5.opt

And then run:
build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello

As a result, I get in CacheConfig.py a:
SyntaxWarning: Import * only allowed at module level
  def config_cache(options, system) :
fatal: Communication monitor is not connected on both sides
 @ tick 0
[init:build/X86/mem/comm_monitor.cc, line 144]
Memory Usage: 627592 KBytes
Program aborted at tick 0
Aborted (core dumped)

Then I saw in email threads that some people have modified BaseCPU.py, so 
keeping the changes in CacheConfig.py, I tried that as well. In the following 
section in BaseCPU.py:

def addPrivateSplitL1Caches(self, ic, dc, iwc = None, dwc = None):
        self.icache = ic
        self.dcache = dc
        self.icache_port = ic.cpu_side

I commented the following line:
        self.dcache_port = dc.cpu_side

and added these lines instead:
        self.L1MONITOR = CommMonitor(trace_file="L1.txt")
self.dcache_port = self.L1MONITOR.slave
self.L1MONITOR.master = dc.cpu_side

After compiling and running in the same way as above, I do not get the warning 
message anymore, but the fatal error still exists:
fatal: Communication monitor is not connected on both sides
 @ tick 0
[init:build/X86/mem/comm_monitor.cc, line 144]
Memory Usage: 627564 KBytes
Program aborted at tick 0
Aborted (core dumped)

Actually, it is not clear to me which file I should modify: BaseCPU.py or 
CacheConfig.py or both. And I would really like to know how I can get rid of 
this fatal error and finally see the trace.

I would appreciate any help.

Azadeh

-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No: 2548782
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to