Hi Andreas

Thanks for your help. That worked for me:

--cpu-type=timing --caches -c

Best regards

Azadeh

On Tue, Jan 20, 2015 at 6:06 PM, Andreas Hansson <andreas.hans...@arm.com>
wrote:

>  Hi Azadeh,
>
>  What I included in my last response should be enough.
>
>  Andreas
>
>   From: Azadeh Shirvanian <azadeh.shirvan...@gmail.com>
> Date: Tuesday, 20 January 2015 15:27
> To: Andreas Hansson <andreas.hans...@arm.com>, "gem5-users@gem5.org" <
> gem5-users@gem5.org>
> Subject: Re: [gem5-users] Communication monitor is not connected on both
> sides
>
>  Hi Andreas
>
>  Thanks for your reply. You told me to add '--caches' command line. Just
> to make sure, is the following correct?
>
>  build/X86/gem5.opt configs/example/se.py -c --caches
> tests/test-progs/hello/bin/x86/linux/hello
>
>  And should I also keep the changes I have made to CacheConfig.py?
>
>  Azadeh
>
> On Sun, Jan 18, 2015 at 8:00 PM, Andreas Hansson <andreas.hans...@arm.com>
> wrote:
>
>>  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>
>> Reply-To: Azadeh Shirvanian <azadeh.shirvan...@gmail.com>, gem5 users
>> mailing list <gem5-users@gem5.org>
>> Date: Sunday, 18 January 2015 14:46
>> To: "gem5-users@gem5.org" <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
>>
>
>
> -- 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