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

Reply via email to