You have two choices, the first of which is not general. If you are looking at writebacks from private caches that are associated only with a single core, then you can infer the core IDs of the writebacks based on which cache it came from (but not the PC). This is not generalizeable if the writebacks you want to track come from shared caches. If you want the PC in this case, you'll have to save the PC associated with every block when it's inserted into the cache so that you can look at it when it's written back.
If you want to look at writebacks from shared caches, to get the data you want you need to install the information with each block when it inserted into the cache. That way, when that block is evicted, the information you want is associated with it if it needs to be written back. Lisa On Thu, Apr 8, 2010 at 3:30 PM, 健勇 张 <[email protected]> wrote: > thank you very much, Steve. > > I understand what you mean. But if I want to track the threadIDs, coreIDs > and PCs from the Writeback instructions(actually Writeback instructions > should have those information), what files should I see so that I can make > midifications on them? > > > thanks in advance > > York > > > --- 10年4月8日,周四, Steve Reinhardt <[email protected]> 写道: > > > 发件人: Steve Reinhardt <[email protected]> > > 主题: Re: [m5-users] Writeback error message > > 收件人: "M5 users mailing list" <[email protected]> > > 日期: 2010年4月8日,周四,上午6:35 > > Writebacks don't have CPU IDs etc. > > associated with them, since there's > > no way to reliably associate a CPU ID with a block in a > > shared cache. > > If you use the development branch, there's a "context ID" > > that > > replaces the cpu and thread ID, and you can call > > hasContextID() before > > calling contextID() to avoid the error (and similarly call > > hasPC() > > before getPC(), etc.). > > > > Steve > > > > On Wed, Apr 7, 2010 at 1:55 PM, 健勇 张 <[email protected]> > > wrote: > > > hello, everybody, > > > > > > > > > I met some problems > > > > > > I ran benchmarks on m5 ALPHA SE mode. > > > > > > int bus.cc , I wanted to get the details of a pkt in " > > bool Bus::recvTiming(PacketPtr pkt)" , and I called from the > > " packet.hh " the function " int Request::getCpuNum()". > > if a pkt contains "Writeback" instruction , the simulation > > would be terminated and it would get the following error > > message: > > > > > > > > > // error message > > /////////////////////////////////////// > > > 0: system.remote_gdb.listener: listening for remote > > gdb #0 on port 7008 > > > 0: system.remote_gdb.listener: listening for remote > > gdb #1 on port 7009 > > > warn: Entering event queue @ 0. Starting > > simulation... > > > warn: Increasing stack size by one page. > > > warn: Increasing stack size by one page. > > > m5.opt: build/ALPHA_SE/mem/request.hh:261: int > > Request::getCpuNum(): Assertion `validCpuAndThreadNums' > > failed. > > > Program aborted at cycle 21498000 > > > > > > // error message > > ////////////////////////////////////// > > > > > > but I need to collect the unformation even when the > > pkt has "Writeback" instruction. > > > > > > could anybody kindly tell me how to use getCpuNum() , > > getThreadNum() and getPC() without errors? or are there some > > other ways? > > > > > > thank you very much in advance > > > > > > York > > > > > > > > > > > > > > > _______________________________________________ > > > 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
