kvm, arm: Switch to the device EQ when accessing ISA devices
ISA devices typically run in the device event queue. Previously, we assumed that devices would perform their own EQ migrations as needed. This isn't ideal since it means we have different conventions for IO devices and ISA devices. Switch to doing migrations in the KVM CPU instead to make the behavior consistent. Change-Id: I33b74480fb2126b0786dbdbfdcfa86083384250c Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4288 Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
@@ -318,11 +318,6 @@ GenericTimer::createTimers(unsigned cpus)
|
||||
void
|
||||
GenericTimer::setMiscReg(int reg, unsigned cpu, MiscReg val)
|
||||
{
|
||||
// This method might have been called from another context if we
|
||||
// are running in multi-core KVM. Migrate to the SimObject's event
|
||||
// queue to prevent surprising race conditions.
|
||||
EventQueue::ScopedMigration migrate(eventQueue());
|
||||
|
||||
CoreTimers &core(getTimers(cpu));
|
||||
|
||||
switch (reg) {
|
||||
@@ -415,11 +410,6 @@ GenericTimer::setMiscReg(int reg, unsigned cpu, MiscReg val)
|
||||
MiscReg
|
||||
GenericTimer::readMiscReg(int reg, unsigned cpu)
|
||||
{
|
||||
// This method might have been called from another context if we
|
||||
// are running in multi-core KVM. Migrate to the SimObject's event
|
||||
// queue to prevent surprising race conditions.
|
||||
EventQueue::ScopedMigration migrate(eventQueue());
|
||||
|
||||
CoreTimers &core(getTimers(cpu));
|
||||
|
||||
switch (reg) {
|
||||
|
||||
Reference in New Issue
Block a user