Could I get the memory references from the TLB directly? I was looking thru the tlb.cc code, and it mentiones that a generic translation is not to be used in the FS mode. So where is the translation done?
----- Original Message ----- From: "Sujay Phadke" <[email protected]> To: "M5 users mailing list" <[email protected]> Sent: Tuesday, August 18, 2009 3:51 PM Subject: Re: [m5-users] memory trace and thread ID > Hi Ali, > I want to record all memory reads/writes from a particular > application, running alongside others. I realized that even if I do get > the > memory access info from physmem and check for user/kernel mode, it would > be > missing accesses made to caches. (Is that right?). I hope its clear what I > am trying to do. > > Is there another way where I can tap in into the cores itself, and dump > out any memory references made by a thread, on de-coding the relevant > instructions? > > Thanks, > Sujay > > ----- Original Message ----- > From: "Ali Saidi" <[email protected]> > To: "M5 users mailing list" <[email protected]> > Sent: Monday, August 17, 2009 9:57 PM > Subject: Re: [m5-users] memory trace and thread ID > > >> Well, it is probably the Threadinfo code mis-interpreting part of the >> structure. I don't know exactly what you want, but it's important to >> mention that the memory acccesses by the application are only a small >> part of a networking workload, there are also all the accesses the >> kernel does on behalf of the application. >> >> Ali >> >> On Aug 16, 2009, at 6:37 PM, Sujay Phadke wrote: >> >>> Ya I was surprised about the -ve start time too. Is is a bug? All of >>> them >>> appear that way. Thanks for clarifying about the processor mode. so >>> wrt your >>> last statement, I am confused. Will the check for user level mode >>> help me >>> with what I want? Do I want to dump all accesses between the start >>> and end >>> points of "m5-spec" thread, when the processor is in user level >>> mode? Or is >>> there a better way of doing this that you can think of? >>> >>> thanks, >>> Sujay >>> >>> >>> ----- Original Message ----- >>> From: "Ali Saidi" <[email protected]> >>> To: "M5 users mailing list" <[email protected]> >>> Sent: Sunday, August 16, 2009 7:26 PM >>> Subject: Re: [m5-users] memory trace and thread ID >>> >>> >>>> The time started and pid don't appear to be correct. I'm pretty sure >>>> the maximum size a pid can be is 16 bits and the started time should >>>> be positive. At least you did get the thread names correctly out, >>>> which might be al that matters. The threadInfo event is printing >>>> every >>>> time the kernel changes the user application stack, however that >>>> doesn't mean that it's executing user level code. If you want a trace >>>> of user level memory operations you'll need to check if the processor >>>> is in user mode or kernel mode (there is a helper function in arch/ >>>> alpha to do that). There isn't really any way to know which thread >>>> the >>>> kernel is doing a task for (e.g. if it receives a packet while the >>>> swapper is running, it's quite difficult to attribute that time to >>>> the >>>> application that was actually receiving that packet). >>>> >>>> Ali >>>> >>>> >>>> >>>> On Aug 16, 2009, at 6:08 PM, Sujay Phadke wrote: >>>> >>>>> Hi, >>>>> Thanks Ali. I am using a patched kernel now with the >>>>> modifications >>>>> you suggested. Running specweb in FS mode. What I want to do is >>>>> differentiate memory access of the m5-spec thread from all others >>>>> (like OS >>>>> ones). I get the following output: >>>>> >>>>> *** >>>>> 487306156500: threadinfo: Currently Executing Thread swapper, pid >>>>> 3211264, >>>>> started at: -4398043299840 >>>>> 487306156500: testsys.physmem: Read of size 4 on address 0x3111a8 >>>>> data >>>>> 0x6bfa8001 >>>>> 487306157000: testsys.physmem: Read of size 4 on address 0x6b7c1c >>>>> data >>>>> 0x27ba001a >>>>> 487306157500: testsys.physmem: Read of size 4 on address 0x6b7c20 >>>>> data >>>>> 0xa0680060 >>>>> 487306157500: testsys.physmem: Read of size 4 on address 0x1f03c060 >>>>> data 0x0 >>>>> 487306158000: testsys.physmem: Read of size 4 on address 0x6b7c24 >>>>> data >>>>> 0x23bd2124 >>>>> 487306158500: testsys.physmem: Read of size 4 on address 0x6b7c28 >>>>> data >>>>> 0x47e00409 >>>>> 487306159000: testsys.physmem: Read of size 4 on address 0x6b7c2c >>>>> data >>>>> 0xa49da718 >>>>> 487306159000: testsys.physmem: Read of size 8 on address 0x854458 >>>>> data >>>>> 0xfffffc000085e340 >>>>> *** >>>>> *** >>>>> 487306811000: threadinfo: Currently Executing Thread m5-spec, pid >>>>> 3211290, >>>>> started at: -4398043299840 >>>>> 487306811000: testsys.physmem: Read of size 4 on address 0x3111a8 >>>>> data >>>>> 0x6bfa8001 >>>>> 487306811500: testsys.physmem: Read of size 4 on address 0x6b7c1c >>>>> data >>>>> 0x27ba001a >>>>> 487306812000: testsys.physmem: Read of size 4 on address 0x6b7c20 >>>>> data >>>>> 0xa0680060 >>>>> 487306812000: testsys.physmem: Read of size 4 on address 0x814060 >>>>> data 0x0 >>>>> 487306812500: testsys.physmem: Read of size 4 on address 0x6b7c24 >>>>> data >>>>> 0x23bd2124 >>>>> 487306813000: testsys.physmem: Read of size 4 on address 0x6b7c28 >>>>> data >>>>> 0x47e00409 >>>>> 487306813500: testsys.physmem: Read of size 4 on address 0x6b7c2c >>>>> data >>>>> 0xa49da718 >>>>> 487306813500: testsys.physmem: Read of size 8 on address 0x854458 >>>>> data >>>>> 0xfffffc000085e340 >>>>> 487306814000: testsys.physmem: Read of size 4 on address 0x6b7c30 >>>>> data 0x486 >>>>> >>>>> -------- >>>>> >>>>> So, if the OS thread swapper began at tick "487306156500", and the >>>>> m5-spec >>>>> begins at "487306811000" does it mean than all the memory accesses >>>>> between >>>>> these time points are that of "swapper"?. And all accesses after >>>>> 487306811000 are of m5-spec, till a new thread is executed? Or am I >>>>> wrong >>>>> here? If this is right, all I will have to do is right a script >>>>> which parses >>>>> this output inline and picks accesses which start when "m5-spec" is >>>>> started >>>>> and end at the next thread execution. >>>>> >>>>> Thanks, >>>>> Sujay >>>>> >>>>> >>>>> ----- Original Message ----- >>>>> From: "Ali Saidi" <[email protected]> >>>>> To: "M5 users mailing list" <[email protected]> >>>>> Sent: Monday, August 10, 2009 5:20 PM >>>>> Subject: Re: [m5-users] memory trace and thread ID >>>>> >>>>> >>>>>> >>>>>> The image doesn't have a kernel in it. You get that separately. Why >>>>>> don't >>>>>> you sprinkle some DPRINTFN() calls around the Threading stuff >>>>>> (threadinfo.hh and the system.cc) and see where it's not working as >>>>>> it >>>>>> should? If it's from symbols not being found then no, otherwise the >>>>>> problem >>>>>> should be rather apparent. >>>>>> >>>>>> Ali >>>>>> >>>>>> >>>>>> On Mon, 10 Aug 2009 17:15:02 -0400, "Sujay Phadke" >>>>>> <[email protected]> >>>>>> wrote: >>>>>>> I am using the linux-latest image available from the M5 website. >>>>>>> Does >>>>>> that >>>>>>> need to be patched? >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: "Ali Saidi" <[email protected]> >>>>>>> To: "M5 users mailing list" <[email protected]> >>>>>>> Sent: Monday, August 10, 2009 4:10 PM >>>>>>> Subject: Re: [m5-users] memory trace and thread ID >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> The patches I'm referring to are in the linux-patches repository >>>>>>>> http://repo.m5sim.org/linux-patches. Depending on where you got >>>>>>>> your >>>>>>>> kernel >>>>>>>> from you might need to apply them. >>>>>>>> >>>>>>>> Ali >>>>>>>> >>>>>>>> >>>>>>>> On Mon, 10 Aug 2009 15:50:38 -0400, "Sujay Phadke" >>>>>>>> <[email protected]> >>>>>>>> wrote: >>>>>>>>> ----- Original Message ----- >>>>>>>>> From: "Sujay Phadke" <[email protected]> >>>>>>>>> To: <[email protected]> >>>>>>>>> Sent: Monday, August 10, 2009 3:28 PM >>>>>>>>> Subject: Re: [m5-users] memory trace and thread ID >>>>>>>>> >>>>>>>>> >>>>>>>>>> I do have the traceflag on. But I dont have the patches >>>>>>>>>> applied. On the >>>>>>>> M5 >>>>>>>>>> >>>>>>>>>> download page, the patches come under the section "Obsolete >>>>>>>>>> Revisions" >>>>>>>> and >>>>>>>>>> >>>>>>>>>> it says not required. I thought these were there in the m5- >>>>>>>>>> stable. Do I >>>>>>>>>> have to manually apply these? >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Sujay >>>>>>>>>> >>>>>>>>>> ----- Original Message ----- >>>>>>>>>> From: "Ali Saidi" <[email protected]> >>>>>>>>>> To: "Sujay Phadke" <[email protected]> >>>>>>>>>> Sent: Monday, August 10, 2009 2:04 PM >>>>>>>>>> Subject: Re: [m5-users] memory trace and thread ID >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Are you running with the Thread traceflag on? You must be >>>>>>>>>>> using a >>>>>>>> kernel >>>>>>>>>>> with the thread_info structure annotated correctly. >>>>>>>>>>> Specifically, >>>>>>>>>>> m5struct.diff from the linux-patches repository must have been >>>>>>>>>>> applied. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Ali >>>>>>>>>>> >>>>>>>>>>> On Mon, 10 Aug 2009 13:40:05 -0400, "Sujay Phadke" >>>>>>>>>>> <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>>> Thanks. I tried doing this, but this is all I get running >>>>>>>>>>>> specweb: >>>>>>>>>>>> >>>>>>>>>>>> 0: testsys.tsunami.io.rtc: Real-time clock set to Thu Jan 1 >>>>>> 00:00:00 >>>>>>>>>>> 2009 >>>>>>>>>>>> 0: drivesys.tsunami.io.rtc: Real-time clock set to Thu Jan 1 >>>>>>>>>>>> 00:00:00 >>>>>>>>>>> 2009 >>>>>>>>>>>> 4694261844000: drivesys.terminal: attach terminal 0 >>>>>>>>>>>> >>>>>>>>>>>> nothing more in the file. >>>>>>>>>>>> >>>>>>>>>>>> Can any method in threadinfo.hh help? >>>>>>>>>>>> >>>>>>>>>>>> - Sujay >>>>>>>>>>>> >>>>>>>>>>>> ----- Original Message ----- >>>>>>>>>>>> From: "Ali Saidi" <[email protected]> >>>>>>>>>>>> To: "M5 users mailing list" <[email protected]> >>>>>>>>>>>> Sent: Monday, August 10, 2009 12:48 PM >>>>>>>>>>>> Subject: Re: [m5-users] memory trace and thread ID >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Remove the false condition from src/arch/alpha/linux/ >>>>>>>>>>>>> system.cc:139 >>>>>>>> and >>>>>>>>>>>>> Thread should work. >>>>>>>>>>>>> >>>>>>>>>>>>> Ali >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, 10 Aug 2009 12:10:58 -0400, "Sujay Phadke" >>>>>>>>>>>>> <[email protected]> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>> I want to generate memory traces and associate them >>>>>>>>>>>>>> with the >>>>>>>>>>> thread >>>>>>>>>>>>> ID >>>>>>>>>>>>>> or process ID. Is there a way to do this? I am running >>>>>>>>>>>>>> m5 in >>>>>>>>>>>>>> FS >>>>>>>>>>>>>> mode >>>>>>>>>>>>>> and want to differentiate the memory accesses of a >>>>>>>>>>>>>> particular >>>>>>>>>>>>> process >>>>>>>>>>>>>> from those of others, including the OS. I looked into >>>>>>>>>>>>>> the >>>>>>>>>>>>>> "Thread" >>>>>>>>>>>>> and >>>>>>>>>>>>>> "ExecThread" traceflags but they dont help. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Sujay >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> 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 >>>>>> _______________________________________________ >>>>>> 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 >>> >> >> _______________________________________________ >> 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
