cpu: Fix Minor drain issues when switched out
authorAndreas Sandberg <andreas.sandberg@arm.com>
Fri, 31 Jul 2015 16:04:59 +0000 (17:04 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Fri, 31 Jul 2015 16:04:59 +0000 (17:04 +0100)
commitf73b05431a55e25d831c4bc8847f99f39a8d6b7d
tree4bd49a3accd6077e41ec87107cddcbed16ffe38c
parentc50e4290015e9be52206e021fabb4c44a3d9afe1
cpu: Fix Minor drain issues when switched out

The Minor CPU currently doesn't drain properly when it is switched
out. This happens because Fetch 1 expects to be in the FetchHalted
state when it is drained. However, because the CPU is switched out, it
is stuck in the FetchWaitingForPC state. Fix this by ignoring drain
requests and returning DrainState::Drained from MinorCPU::drain() if
the CPU is switched out. This is always safe since a switched out CPU,
by definition, doesn't have any instructions in flight.
src/cpu/minor/cpu.cc