atomic.cc (14003:2b48980363fe) | atomic.cc (14085:0075b0d29d55) |
---|---|
1/* 2 * Copyright 2014 Google, Inc. 3 * Copyright (c) 2012-2013,2015,2017-2018 ARM Limited 4 * All rights reserved. 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating --- 98 unchanged lines hidden (view full) --- 107AtomicSimpleCPU::drain() 108{ 109 // Deschedule any power gating event (if any) 110 deschedulePowerGatingEvent(); 111 112 if (switchedOut()) 113 return DrainState::Drained; 114 | 1/* 2 * Copyright 2014 Google, Inc. 3 * Copyright (c) 2012-2013,2015,2017-2018 ARM Limited 4 * All rights reserved. 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating --- 98 unchanged lines hidden (view full) --- 107AtomicSimpleCPU::drain() 108{ 109 // Deschedule any power gating event (if any) 110 deschedulePowerGatingEvent(); 111 112 if (switchedOut()) 113 return DrainState::Drained; 114 |
115 if (!isDrained()) { | 115 if (!isCpuDrained()) { |
116 DPRINTF(Drain, "Requesting drain.\n"); 117 return DrainState::Draining; 118 } else { 119 if (tickEvent.scheduled()) 120 deschedule(tickEvent); 121 122 activeThreads.clear(); 123 DPRINTF(Drain, "Not executing microcode, no need to drain.\n"); --- 54 unchanged lines hidden (view full) --- 178 179bool 180AtomicSimpleCPU::tryCompleteDrain() 181{ 182 if (drainState() != DrainState::Draining) 183 return false; 184 185 DPRINTF(Drain, "tryCompleteDrain.\n"); | 116 DPRINTF(Drain, "Requesting drain.\n"); 117 return DrainState::Draining; 118 } else { 119 if (tickEvent.scheduled()) 120 deschedule(tickEvent); 121 122 activeThreads.clear(); 123 DPRINTF(Drain, "Not executing microcode, no need to drain.\n"); --- 54 unchanged lines hidden (view full) --- 178 179bool 180AtomicSimpleCPU::tryCompleteDrain() 181{ 182 if (drainState() != DrainState::Draining) 183 return false; 184 185 DPRINTF(Drain, "tryCompleteDrain.\n"); |
186 if (!isDrained()) | 186 if (!isCpuDrained()) |
187 return false; 188 189 DPRINTF(Drain, "CPU done draining, processing drain event\n"); 190 signalDrainDone(); 191 192 return true; 193} 194 195 196void 197AtomicSimpleCPU::switchOut() 198{ 199 BaseSimpleCPU::switchOut(); 200 201 assert(!tickEvent.scheduled()); 202 assert(_status == BaseSimpleCPU::Running || _status == Idle); | 187 return false; 188 189 DPRINTF(Drain, "CPU done draining, processing drain event\n"); 190 signalDrainDone(); 191 192 return true; 193} 194 195 196void 197AtomicSimpleCPU::switchOut() 198{ 199 BaseSimpleCPU::switchOut(); 200 201 assert(!tickEvent.scheduled()); 202 assert(_status == BaseSimpleCPU::Running || _status == Idle); |
203 assert(isDrained()); | 203 assert(isCpuDrained()); |
204} 205 206 207void 208AtomicSimpleCPU::takeOverFrom(BaseCPU *oldCPU) 209{ 210 BaseSimpleCPU::takeOverFrom(oldCPU); 211 --- 582 unchanged lines hidden --- | 204} 205 206 207void 208AtomicSimpleCPU::takeOverFrom(BaseCPU *oldCPU) 209{ 210 BaseSimpleCPU::takeOverFrom(oldCPU); 211 --- 582 unchanged lines hidden --- |