mem: Ensure DRAM controller is idle when in atomic mode
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 23 Dec 2014 14:31:18 +0000 (09:31 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 23 Dec 2014 14:31:18 +0000 (09:31 -0500)
commit2f7baf9dbe7fd2cd716885adacf508a5b89e9eb8
tree7e758a6d628f67c5407aba0d3d9bca142e3da5c7
parent381d1da79147fbe8ae62ab4886446bdd7b3c478f
mem: Ensure DRAM controller is idle when in atomic mode

This patch addresses an issue seen with the KVM CPU where the refresh
events scheduled by the DRAM controller forces the simulator to switch
out of the KVM mode, thus killing performance.

The current patch works around the fact that we currently have no
proper API to inform a SimObject of the mode switches. Instead we rely
on drainResume being called after any switch, and cache the previous
mode locally to be able to decide on appropriate actions.

The switcheroo regression require a minor stats bump as a result.
src/mem/dram_ctrl.cc
src/mem/dram_ctrl.hh