You could take the approach previously implemented by ARM, which is to add a few annotations to your kernel that allow you to find the task_info structures in kernel memory and then ask gem5 to hook the kernel process switch function. Each time the kernel context switches on a core, you get a callback into gem5 and you can look up the process info. It’s been a while since I’ve worked on this sort of thing but you might be able to look at this patch for some hints about where to look:
https://gem5-review.googlesource.com/c/public/gem5/+/2640 Cheeers, Paul From: gem5-users [mailto:gem5-users-boun...@gem5.org] On Behalf Of Shehab Elsayed Sent: Thursday, January 10, 2019 11:53 AM To: gem5-users@gem5.org Subject: [EXT] [gem5-users] Accessing logical (software) thread ID in gem5 Hello All, I was wondering if there is a way to differentiate between different logical (software) threads in gem5. I am trying to collect some stats for each logical thread and so far all I could find in gem5 is access to physical threads. I know that logical threads is the responsibility of the OS but is there anyway for gem5 to access the logical thread ID. One option is to pin threads to cores but this only works if the number of cores is at least equal to the number of logical threads. However, I will need to run some experiments where the number of logical threads exceed the number of cores, in which case, multiple logical threads will be assigned to the same core and in order to differentiate between them I need the logical thread ID. Thank you very much in advance. Best Regards, Shehab
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users