Hi Malek,
I'm glad to hear you got it working. The Python encode/decode is more "extras"
than anything else, but if you have them time, then perhaps you could write up
a few lines of comments stating what you need (python-protobuf) and add the
appropriate try/except to the scripts to tell the user what to do.
When it comes to the Ruby bits, I think at some point it would be good to try
and adopt a similar interface on the outside as what the classic memory system
is using. This would also allow us to use e.g. the same DRAM controller models.
This has been discussed for quite a while now, but not yet done. Any
volunteers? :-)
Andreas
From: Malek Musleh <malek.mus...@gmail.com<mailto:malek.mus...@gmail.com>>
Reply-To: gem5 users mailing list
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Tuesday, 10 September 2013 04:55
To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] Using Protobuf for reading CommMonitor Trace
Hi Andreas,
Yes, I came across that script earlier in the day, and was able to decode the
tracefile. To note in case others run into problems, I had to also install
python-protobuf for the packet_pb2.py package to find protobuffer library
(essentially it was needed to run the script). The part about generating
packet_pb2.py is noted in the script notes, and the part about needing
proto-compiler is noted when building gem5, but nothing about python-protobuf.
As a side note, after I got the communication monitor working, I used the
encoding/decoding part to capture ruby prefetch packets. In that case, there is
no master/slave wiring where a CommMonitor can be inserted in between (the ruby
cache/ruby prefetcher have direct pointer to enqueue messages rather than going
through ports, so I just used the the protobuffer message class to write out to
a Outprotostream.
To get that to compile, I had to change the package name of packet.proto to
something other than 'Message' (in my case I changed it to MessageTrace)
because Ruby has a Message class which confuses gcc (package Message generates
a Message namespace, and so it conflicts with the Ruby Message Class.
Malek
On Mon, Sep 9, 2013 at 9:50 PM, Andreas Hansson
<andreas.hans...@arm.com<mailto:andreas.hans...@arm.com>> wrote:
Hi Malek,
My bad for not getting any documentation onto the Wiki yet. Have a look at
util/decode_packet_trace which shows you how to decode the information using
python. You could also have a look at the TrafficGen and the ProtoInputStream
to see how the decoding is done.
protoc is used to generate a Python module (or C++ class) for encoding
decoding, and this is then used at run-time. I am not familiar with the
"--encode" functionality of protoc as it is not something I have ever used.
Let me know if there are any issues.
Andreas
From: Malek Musleh <malek.mus...@gmail.com<mailto:malek.mus...@gmail.com>>
Reply-To: gem5 users mailing list
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Sunday, 8 September 2013 21:01
To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: [gem5-users] Using Protobuf for reading CommMonitor Trace
Hi,
I am using the CommMonitor component to look at a trace of memory address
references between the cpu/cache. I seem to have connected it properly, as in
my output directory I see a protobuf binary file generated for each monitor:
e.g. monitor_0.ptrc, monitor_1.ptrc, etc.
This file generated is a protobuf binary file, but its not clear how I am
supposed to use protoc to read in/print out the contents. It looks like I have
to specify message format from the packet.proto file located in /src/proto/,
but when using the following commandline:
$ protoc --encode=packet.proto monitor_0.ptrc
monitor_0.ptrc:2:48983: Invalid control characters encountered in text.
monitor_0.ptrc:2:48991: Invalid control characters encountered in text.
monitor_0.ptrc:2:48993: Invalid control characters encountered in text.
monitor_0.ptrc:2:49002: Invalid control characters encountered in text.
I am guessing the format of the text should look like the contents in:
tests/quick/se/70.tgen/tgen-simple-dram.cfg
Can someone indicate the proper way to do this? I don't see any
documentation/info on the wiki about TrafficGen/CommMonitor.
Thanks,
Malek
-- 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<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