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

Reply via email to