base.cc (10843:adec1cf1c300) | base.cc (10858:6734ec272816) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2012 ARM Limited | 2 * Copyright (c) 2012, 2015 ARM Limited |
3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 517 unchanged lines hidden (view full) --- 528 delay = handleKvmExit(); 529 530 if (tryDrain()) 531 _status = Idle; 532 break; 533 534 case RunningServiceCompletion: 535 case Running: { | 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 517 unchanged lines hidden (view full) --- 528 delay = handleKvmExit(); 529 530 if (tryDrain()) 531 _status = Idle; 532 break; 533 534 case RunningServiceCompletion: 535 case Running: { |
536 EventQueue *q = curEventQueue(); 537 Tick ticksToExecute(q->nextTick() - curTick()); | 536 const uint64_t nextInstEvent( 537 !comInstEventQueue[0]->empty() ? 538 comInstEventQueue[0]->nextTick() : UINT64_MAX); 539 // Enter into KVM and complete pending IO instructions if we 540 // have an instruction event pending. 541 const Tick ticksToExecute( 542 nextInstEvent > ctrInsts ? 543 curEventQueue()->nextTick() - curTick() : 0); |
538 539 // We might need to update the KVM state. 540 syncKvmState(); 541 542 // Setup any pending instruction count breakpoints using | 544 545 // We might need to update the KVM state. 546 syncKvmState(); 547 548 // Setup any pending instruction count breakpoints using |
543 // PerfEvent. 544 setupInstStop(); | 549 // PerfEvent if we are going to execute more than just an IO 550 // completion. 551 if (ticksToExecute > 0) 552 setupInstStop(); |
545 546 DPRINTF(KvmRun, "Entering KVM...\n"); 547 if (drainManager) { 548 // Force an immediate exit from KVM after completing 549 // pending operations. The architecture-specific code 550 // takes care to run until it is in a state where it can 551 // safely be drained. 552 delay = kvmRunDrain(); --- 721 unchanged lines hidden --- | 553 554 DPRINTF(KvmRun, "Entering KVM...\n"); 555 if (drainManager) { 556 // Force an immediate exit from KVM after completing 557 // pending operations. The architecture-specific code 558 // takes care to run until it is in a state where it can 559 // safely be drained. 560 delay = kvmRunDrain(); --- 721 unchanged lines hidden --- |