Re: [Gems-users] Process ID


Date: Wed, 16 Dec 2009 13:43:18 -0600
From: Philip Garcia <pcgarcia@xxxxxxxx>
Subject: Re: [Gems-users] Process ID
I don't know how to get the PID, but you can get a context identifier for the process that is running on a given CPU. This is a bit tricky though. The actual PID is an OS construct that I don't think is available from simics. The context identifier is another OS specific variable, but they seem to be unique per thread. I think this is stored because the PID would be the same on all threads of a multithreaded application, and the OS scheduler needs to be concerned with thread scheduling more so than process scheduling.

That said, if you can get the processor number of the cache miss, it is possible to get the context with the following code:

conf_object_t *cpu, mmu_obj;
cpu=SIM_get_processor (ProcessorNumber);
mmu_obj=SIM_get_attribute(cpu, "mmu").u.object;
CPU_CTX=SIM_get_attribute(mmu_obj,"ctxt-primary").u.integer & 0x1fff;

One thing to be careful with though is that the processor number is likely not just the node id within ruby. I am only familiar with the sunfire (bagle) machine, but the processors are numbered oddly there, and have the following numbers in simics: cpu0,cpu1,cpu4,cpu5 .. . and I don't know after that offhand. The serengeti machines likely do something different, so you'd have to check in simics what the processor ordering is. Also, if you enable SMT inside opal, things might get more difficult, as the ruby node id doesn't directly translate to a CPU number. I am not positive if the requests sent into ruby have actual cpu ids embedded in them, if not, you might have to add that.

Phil
On Dec 16, 2009, at 1:17 PM, blacuesa wrote:

Hello,

Does anyone know if it is possible to get the PID of the process that has caused a specific cache miss? I've tried to it by using the parameters of the
"ruby_operate" function, but I didn't achieved it.

Thanks in advance!

Regards.
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


[← Prev in Thread] Current Thread [Next in Thread→]