Right now only caches are set up to take a mem_trace parameter. You have to decide which cache you want to assign it to; it would look something like:

root.server.cpu.dcache.mem_trace = M5Writer(filename = 'tracefile')

If you really want to trace just the traffic going into the main memory module, it looks like the C++ code is set up to take a mem_trace parameter (looking at m5/mem/memory_builder.cc) but the parameter was left out of the python code. You might be able to enable that just by copying the 'mem_trace = Param.MemTraceWriter' line from BaseCache.py to BaseMemory.py.

Steve

Yu Zhang wrote:
I've already create the MemoryTrace object. How can I assign the object to
the mem_trace parameter of the main memory?

Thanks,
Yu

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Yu Zhang
Sent: Wednesday, April 25, 2007 2:28 PM
To: 'M5 users mailing list'
Subject: RE: [m5-users] MemoryTrace

Thanks a lot. I'm using v1.1 and I'd like to track the traffic of the main
memory.

I really don't know how to modify the config file. I attached my config
file. Will you please create the object for me?

Thanks,
Yu
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Steve Reinhardt
Sent: Wednesday, April 25, 2007 10:54 AM
To: M5 users mailing list
Subject: Re: [m5-users] MemoryTrace

Hi Yu,

We don't use the memory trace writer much... in fact I just found that it never made the transition from v1.1 to v2.0 beta, and this is the first time I know of that anyone has noticed. (Since we rewrote the memory system interface between those versions, the trace writer needs to be rewritten too, and no one has bothered.)

If you're using v1.1, then you need to go into your config file and create either an M5Writer or ITXWriter object (see python/m5/objects/MemoryTrace.py) and assign it to the mem_trace parameter of the cache whose accesses you want to trace. It's not something you can enable purely via the command line.

If you're using v2.0, then my suggestion is just to hack in some code to write out the address at the top of the handleAccess() method in src/mem/cache/cache_impl.hh. It's not that complex, and that way you can output whatever format you'd like. If you don't want to mess around with adding parameters to the cache to enable/disable tracing for particular caches (which is admittedly much more complex than it should be right now... we're working on simplifying that...), then you can just add some per-cache flags in cache.hh and set them based on the value of _name in the constructor (which is at the top of cache_impl.hh).

Hope that helps...

Steve

Yu Zhang wrote:
Hi,

I'd like to get the information of memory traffic for an application. However, when I use command -MemoryTrace.trace=<filename>, there is no trace file dumped. For a single core processor and only one application is running, the default thread is 0, isn't it? So, I don't need to specify the parameter "MemoryTrace.thread", which is 0 by default. I wonder why the MemoryTrace doesn't work. BTW: I'm using M5_1.1.

Thanks,

Yu


------------------------------------------------------------------------

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users


_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to