summaryrefslogtreecommitdiff
path: root/src/cpu/base.cc
diff options
context:
space:
mode:
authorCiro Santilli <ciro.santilli@arm.com>2019-10-08 12:35:13 +0100
committerCiro Santilli <ciro.santilli@arm.com>2019-11-25 12:02:30 +0000
commite3c89a707d8f0518fe4ff8545ad9bdb06a6f7622 (patch)
treecc098a20266e19188d2fe6d0a6c835a5a0a50908 /src/cpu/base.cc
parent7e488a91dccc9708501156d0bc4a45fad47f471d (diff)
downloadgem5-e3c89a707d8f0518fe4ff8545ad9bdb06a6f7622.tar.xz
cpu: log thread activate and suspend with --debug-flags Thread
The original motivation of this is to help debug syscall emulation deadlocks. Change-Id: I1c4f611fa2f2e464a30dc92baac89ca819e16a97 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21759 Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu> Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/cpu/base.cc')
-rw-r--r--src/cpu/base.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cpu/base.cc b/src/cpu/base.cc
index 8bdc44eb7..ac0c7ac5b 100644
--- a/src/cpu/base.cc
+++ b/src/cpu/base.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2012,2016-2017 ARM Limited
+ * Copyright (c) 2011-2012,2016-2017, 2019 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -63,6 +63,7 @@
#include "cpu/thread_context.hh"
#include "debug/Mwait.hh"
#include "debug/SyscallVerbose.hh"
+#include "debug/Thread.hh"
#include "mem/page_table.hh"
#include "params/BaseCPU.hh"
#include "sim/clocked_object.hh"
@@ -489,6 +490,8 @@ BaseCPU::findContext(ThreadContext *tc)
void
BaseCPU::activateContext(ThreadID thread_num)
{
+ DPRINTF(Thread, "activate contextId %d\n",
+ threadContexts[thread_num]->contextId());
// Squash enter power gating event while cpu gets activated
if (enterPwrGatingEvent.scheduled())
deschedule(enterPwrGatingEvent);
@@ -501,6 +504,8 @@ BaseCPU::activateContext(ThreadID thread_num)
void
BaseCPU::suspendContext(ThreadID thread_num)
{
+ DPRINTF(Thread, "suspend contextId %d\n",
+ threadContexts[thread_num]->contextId());
// Check if all threads are suspended
for (auto t : threadContexts) {
if (t->status() != ThreadContext::Suspended) {