Re: [gem5-users] Tracking DRAM requests from a process
Hello Davesh, You could probably use something like this: To check the requests coming from cpus0 if (system()-getMasterName(pkt-req-masterId()) == switch_cpus0.data) {} Hope this helps. Thanks, Prathap On Mon, Jul 20, 2015 at 6:09 PM, Davesh Shingari shingaridav...@gmail.com wrote: Polydoros Petrakis polpetras at gmail.com writes: Maybe you can check the physical memory range allocated for each process and track requests depending on the access address. (Check which range it belongs to) On 31 March 2015 at 00:30, Prathap Kolakkampadath kvprathap at gmail.com wrote: Hello Andreas, I am trying to collect the per request memory access latency of a specific linux process Read requests. I am running two memory intensive linux processes in a single core. In my understanding, the Thread id/Context id, Master id are the same for the two process memory requests running in the same core. So I won't be able to differentiate the requests of one process from the other using that. Is it possible to differentiate the memory requests at DRAM Controller layer based on linux process id? Thanks, Prathap On Mon, Mar 30, 2015 at 12:35 PM, Andreas Hansson Andreas.Hansson at arm.com wrote: Hi Prathap, Could you be a bit more specific about what you mean by “tracking requests”. Each request that originates in the CPU has an ASID and ThreadID associated with it, as well as a MasterID. You should be able to access these at the DRAM controller if that’s what you’re after. Note that you end up getting requests without this information (write backs etc), so you cannot always rely on it. Andreas From: Prathap Kolakkampadath kvprathap at gmail.comReply-To: gem5 users mailing list gem5-users at gem5.orgDate: Monday, 30 March 2015 17:27To: gem5 users mailing list gem5-users at gem5.orgSubject: [gem5-users] Tracking DRAM requests from a process Hello Users, I am running Gem5 on ARM FS mode using classic memory system. I am running two process on a single core. I need to track the DRAM requests (memory access latency) of a particular process. Is it possible to identify the process id of a linux process in the DRAM Controller layer? Thanks, Prathap Kumar Valsan -- 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 listgem5-users at gem5.orghttp://m5sim.org/cgi- bin/mailman/listinfo/gem5-users ___ gem5-users mailing listgem5-users at gem5.orghttp://m5sim.org/cgi- bin/mailman/listinfo/gem5-users ___ gem5-users mailing list gem5-users at gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users Hi Did you find a way to know the core where the memory request originated? If I use function to get threadId or asid, I get following error: gem5.opt: build/ARM/mem/request.hh:533: int Request::getAsid() const: Assertion `privateFlags.isSet(VALID_VADDR)' failed. And for masterId, the number changes with simulation (I think it is generated statically). ___ 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
Re: [gem5-users] Tracking DRAM requests from a process
Hi Prathap Thanks a lot. It works perfectly. ᐧ On Mon, Jul 20, 2015 at 4:35 PM, Prathap Kolakkampadath kvprat...@gmail.com wrote: Hello Davesh, You could probably use something like this: To check the requests coming from cpus0 if (system()-getMasterName(pkt-req-masterId()) == switch_cpus0.data) {} Hope this helps. Thanks, Prathap On Mon, Jul 20, 2015 at 6:09 PM, Davesh Shingari shingaridav...@gmail.com wrote: Polydoros Petrakis polpetras at gmail.com writes: Maybe you can check the physical memory range allocated for each process and track requests depending on the access address. (Check which range it belongs to) On 31 March 2015 at 00:30, Prathap Kolakkampadath kvprathap at gmail.com wrote: Hello Andreas, I am trying to collect the per request memory access latency of a specific linux process Read requests. I am running two memory intensive linux processes in a single core. In my understanding, the Thread id/Context id, Master id are the same for the two process memory requests running in the same core. So I won't be able to differentiate the requests of one process from the other using that. Is it possible to differentiate the memory requests at DRAM Controller layer based on linux process id? Thanks, Prathap On Mon, Mar 30, 2015 at 12:35 PM, Andreas Hansson Andreas.Hansson at arm.com wrote: Hi Prathap, Could you be a bit more specific about what you mean by “tracking requests”. Each request that originates in the CPU has an ASID and ThreadID associated with it, as well as a MasterID. You should be able to access these at the DRAM controller if that’s what you’re after. Note that you end up getting requests without this information (write backs etc), so you cannot always rely on it. Andreas From: Prathap Kolakkampadath kvprathap at gmail.comReply-To: gem5 users mailing list gem5-users at gem5.orgDate: Monday, 30 March 2015 17:27To: gem5 users mailing list gem5-users at gem5.orgSubject: [gem5-users] Tracking DRAM requests from a process Hello Users, I am running Gem5 on ARM FS mode using classic memory system. I am running two process on a single core. I need to track the DRAM requests (memory access latency) of a particular process. Is it possible to identify the process id of a linux process in the DRAM Controller layer? Thanks, Prathap Kumar Valsan -- 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 listgem5-users at gem5.orghttp://m5sim.org/cgi- bin/mailman/listinfo/gem5-users http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users ___ gem5-users mailing listgem5-users at gem5.orghttp://m5sim.org/cgi- bin/mailman/listinfo/gem5-users http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users ___ gem5-users mailing list gem5-users at gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users Hi Did you find a way to know the core where the memory request originated? If I use function to get threadId or asid, I get following error: gem5.opt: build/ARM/mem/request.hh:533: int Request::getAsid() const: Assertion `privateFlags.isSet(VALID_VADDR)' failed. And for masterId, the number changes with simulation (I think it is generated statically). ___ 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 -- Have a great day! Thanks and Warm Regards Davesh Shingari Master's in Computer Engineering [EE] Arizona State University davesh.shing...@asu.edu ___ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
Re: [gem5-users] Tracking DRAM requests from a process
Polydoros Petrakis polpetras at gmail.com writes: Maybe you can check the physical memory range allocated for each process and track requests depending on the access address. (Check which range it belongs to) On 31 March 2015 at 00:30, Prathap Kolakkampadath kvprathap at gmail.com wrote: Hello Andreas, I am trying to collect the per request memory access latency of a specific linux process Read requests. I am running two memory intensive linux processes in a single core. In my understanding, the Thread id/Context id, Master id are the same for the two process memory requests running in the same core. So I won't be able to differentiate the requests of one process from the other using that. Is it possible to differentiate the memory requests at DRAM Controller layer based on linux process id? Thanks, Prathap On Mon, Mar 30, 2015 at 12:35 PM, Andreas Hansson Andreas.Hansson at arm.com wrote: Hi Prathap, Could you be a bit more specific about what you mean by “tracking requests”. Each request that originates in the CPU has an ASID and ThreadID associated with it, as well as a MasterID. You should be able to access these at the DRAM controller if that’s what you’re after. Note that you end up getting requests without this information (write backs etc), so you cannot always rely on it. Andreas From: Prathap Kolakkampadath kvprathap at gmail.comReply-To: gem5 users mailing list gem5-users at gem5.orgDate: Monday, 30 March 2015 17:27To: gem5 users mailing list gem5-users at gem5.orgSubject: [gem5-users] Tracking DRAM requests from a process Hello Users, I am running Gem5 on ARM FS mode using classic memory system. I am running two process on a single core. I need to track the DRAM requests (memory access latency) of a particular process. Is it possible to identify the process id of a linux process in the DRAM Controller layer? Thanks, Prathap Kumar Valsan -- 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 listgem5-users at gem5.orghttp://m5sim.org/cgi- bin/mailman/listinfo/gem5-users ___ gem5-users mailing listgem5-users at gem5.orghttp://m5sim.org/cgi- bin/mailman/listinfo/gem5-users ___ gem5-users mailing list gem5-users at gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users Hi Did you find a way to know the core where the memory request originated? If I use function to get threadId or asid, I get following error: gem5.opt: build/ARM/mem/request.hh:533: int Request::getAsid() const: Assertion `privateFlags.isSet(VALID_VADDR)' failed. And for masterId, the number changes with simulation (I think it is generated statically). ___ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users