arm,sim: fix context switch stats dumps for ARM64/Linux
authorPaul Rosenfeld <prosenfeld@micron.com>
Tue, 4 Apr 2017 15:06:38 +0000 (09:06 -0600)
committerPaul Rosenfeld <prosenfeld@micron.com>
Thu, 22 Jun 2017 13:32:04 +0000 (13:32 +0000)
commit1d7ff84f126e5e1b138c7250a275ebe3a46fa27c
tree629f6fb5b21b3f8603cdb32477108547d90881c3
parent9cdfcf93470ca11c12eeac50aea9536ef914790f
arm,sim: fix context switch stats dumps for ARM64/Linux

32bit and 64bit Linux have different arguments passed to the
__switch_to() function that gem5 hooks into in order to collect context
switch statistics. 64bit Linux provides the task_struct pointer to the
next task that will be switched to, which means we don't have to look
up the task_struct from thread_info as we do in 32bit ARM Linux.

This patch adds a second set of accessors to ThreadInfo to extract
details such as the pid, tgid, task name, etc., directly from a
task_struct. The existing accessors maintain their existing behavior by
first looking up the task_struct and then calling these new accessors.

A 64-bit variant of the DumpStatsPCEvent class is added that uses these
new accessors to get the task details for the context switch dumps
directly from the task_struct passed to __switch_to().

Change-Id: I63c4b3e1ad64446751a91f6340901d5180d7382d
Reviewed-on: https://gem5-review.googlesource.com/2640
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
src/arch/arm/linux/system.cc
src/arch/arm/linux/system.hh
src/arch/generic/linux/threadinfo.hh