Hi Ahmad,
Thanks for making this clear.
We decided a while back to not make protobuf and protoc a dependency, hence the
adaptive build process. I had completely forgotten about this. Perhaps it would
be time to reconsider.
I have ensured that the PROTOC variable is now passed on from the environment.
I’ll push this patch in the next few days. If you have protoc in your path it
should “just work” though. Are you suggesting it doesn’t?
Thanks,
Andreas
From: Ahmad Hassan <ahmad.has...@gmail.com<mailto:ahmad.has...@gmail.com>>
Reply-To: gem5 users mailing list
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Tuesday, 11 February 2014 11:36
To: Aditya Deshpande
<adityamdeshpa...@gmail.com<mailto:adityamdeshpa...@gmail.com>>, gem5 users
mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] Adding CommMonitor between CPU and L1d-cache
Hi Aditiya,
[Putting on the list so other people can benefit too]
It is not required to add any 'include' header in src/cpu/BaseCPU.py. The
reason you are getting this error is because scon build system hasn't compiled
the CommMonitor code. You should see this as a WARNING during scon build
process that protobuf iss missing. SCON checks for google protocol buffer on
your system and if scon doesn't find it then 'have_protobuf' is set to '0' and
CommMonitor is not included in the build repo. You have to install google
protobuf then set PROTOC environment variable to the installed dir.
Then you need to rebuild gem5 as:
scons -j6 build/X86/gem5.opt
This time scon will build all the CommMonitor classes and you won't see any
errors like '"NameError: global name 'CommMonitor' is not defined"'
Caution: I set the PROTOC environ variable in the shell but still scon doesn't
pick it up. One way of getting around this is to change SConstruct and provide
the protoc path as '/usr/bin/protoc' instead of reading from environment
variable:
('PROTOC', 'protoc tool', "/usr/bin/protoc"),
Hope this helps.
Best Regards, Ahmad
On 11 February 2014 00:20, Aditya Deshpande
<adityamdeshpa...@gmail.com<mailto:adityamdeshpa...@gmail.com>> wrote:
Ahmad,
Thanks for the info. I had tried adding in similar way. After adding these
lines, I need to recompile the code. During recompilation, it gives me an error
"NameError: global name 'CommMonitor' is not defined"
Any pointers on how you got over this error. Did you add any header files in
src/cpu/BaseCPU.py
Regards,
Aditya
On Mon, Feb 10, 2014 at 9:21 AM, Ahmad Hassan
<ahmad.has...@gmail.com<mailto:ahmad.has...@gmail.com>> wrote:
Hi Aditya,
Thank for the email. i added commmonitor between cpu and L1 in
src/cpu/BaseCPU.py as follows
#self.dcache_port = dc.cpu_side
self.L1MONITOR = CommMonitor(trace_file="L1");
self.dcache_port = self.L1MONITOR.slave
self.L1MONITOR.master = dc.cpu_side
Good luck.
Best Regards, Ahmad
On 10 February 2014 17:03, Aditya Deshpande
<adityamdeshpa...@gmail.com<mailto:adityamdeshpa...@gmail.com>> wrote:
Ahmed,
If you want to add CommMonitor between l1 and L2 cache
In CacheConfig.py
Comment following lines
system.l2.cpu_side = system.tol2bus.master
system.l2.mem_side = system.membus.slave
Add following lines
system.monitor2 = CommMonitor(trace_file="CT_mon2.txt")
system.monitor2.slave = system.tol2bus.master
system.l2.cpu_side = system.monitor2.master
system.l2.mem_side = system.membus.slave
The following lines basically changes the hierarchy from (l1-cache -> tol2bus
-> L2 Cache ->membus) to (l1cache -> tol2bus -> commMonitor monitor2 -> l2cache
-> membus)
I ran into same problem of CommMonitor being not found when i try to add
commMonitor between CPU and L1D-cache.
Did you try to add any CommMonitor there? Any ideas on how to do that.
Regards,
Aditya
On Sun, Feb 9, 2014 at 1:38 AM, Ahmad Hassan
<ahmad.has...@gmail.com<mailto:ahmad.has...@gmail.com>> wrote:
HI Aditya,
How did you attach commonitor to L2 in config/common/CacheConfig.py. I get
import errors if I try to import 'from CommMonitor import *" in CacheConfig.py
Please can you share the syntax of attaching L2 and L1 to commmonitor.
Thanks.
On 31 January 2014 21:33, Aditya Deshpande
<adityamdeshpa...@gmail.com<mailto:adityamdeshpa...@gmail.com>> wrote:
Andreas,
I understand how to add CommMonitor. I was able to trace L2 cache accesses
using CommMonitor. In that case, I was adding commMonitor in
config/common/CacheConfig.py
I was able to run the simulation and get the trace. The commMonitor connections
also showed in config.ini file
Now given that interface between CPU and L1 cache is set in /src/cpu/BaseCPU.py
In that file when I add commMonitor between cpu dcache_port and L1dcache
cpu_side nothing happens. The simulation completes but I don't see a trace file
for this commMonitor, nor do I see any info regarding this commMonitor in
config.ini file.
when adding commMonitor in /src/cpu/BaseCPU.py do I need to rebuilt the system
by running scons command before execution?
Regards,
Aditya
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto:gem5-users@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
-- 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