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>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>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>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>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>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
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>
>>>>
>>>
>>
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to