CPUEntry
CPUEntry* entry = &sCPUEntries[smp_get_current_cpu()];
CPUEntry* entry = &sCPUEntries[smp_get_current_cpu()];
sCPUEntries = new(std::nothrow) CPUEntry[cpuCount];
CPUEntry();
static CPUEntry* sCPUEntries;
CPUEntry::CPUEntry()
measure_pstate(CPUEntry* entry)
CPUEntry* entry = &sCPUEntries[smp_get_current_cpu()];
CPUEntry* targetCPU = NULL;
CPUEntry* cpu = &gCPUEntries[thread->cpu->cpu_num];
CPUEntry* cpu = CPUEntry::GetCPU(thisCPU);
CPUEntry* cpu = &gCPUEntries[cpuID];
gCPUEntries = new(std::nothrow) CPUEntry[cpuCount];
ArrayDeleter<CPUEntry> cpuEntriesDeleter(gCPUEntries);
class CPUEntry;
CPUEntry::Start()
CPUEntry::Stop()
CPUEntry::PushFront(ThreadData* thread, int32 priority)
CPUEntry::PushBack(ThreadData* thread, int32 priority)
CPUEntry::Remove(ThreadData* thread)
CPUEntry::PeekThread() const
CPUEntry::PeekIdleThread() const
CPUEntry::UpdatePriority(int32 priority)
CPUEntry* gCPUEntries;
CPUEntry::ComputeLoad()
CPUEntry::ChooseNextThread(ThreadData* oldThread, bool putAtBack)
CPUEntry::TrackActivity(ThreadData* oldThreadData, ThreadData* nextThreadData)
CPUEntry::StartQuantumTimer(ThreadData* thread, bool wasPreempted)
add_timer(&cpu->quantum_timer, &CPUEntry::_RescheduleEvent, quantum,
add_timer(&cpu->quantum_timer, &CPUEntry::_UpdateLoadEvent,
CPUEntry::_RequestPerformanceLevel(ThreadData* threadData)
CPUEntry::_RescheduleEvent(timer* /* unused */)
CPUEntry::_UpdateLoadEvent(timer* /* unused */)
CPUEntry::GetCPU(smp_get_current_cpu())->fUpdateLoadEvent = false;
Heap<CPUEntry, int32>(cpuCount)
CPUEntry* entry = PeekRoot();
static void DumpCPURunQueue(CPUEntry* cpu);
CoreEntry::AddCPU(CPUEntry* cpu)
CoreEntry::RemoveCPU(CPUEntry* cpu, ThreadProcessing& threadPostProcessing)
DebugDumper::DumpCPURunQueue(CPUEntry* cpu)
CPUEntry::CPUEntry()
CPUEntry::Init(int32 id, CoreEntry* core)
class CPUPriorityHeap : public Heap<CPUEntry, int32> {
inline void CPUGoesIdle(CPUEntry* cpu);
inline void CPUWakesUp(CPUEntry* cpu);
void AddCPU(CPUEntry* cpu);
void RemoveCPU(CPUEntry* cpu,
extern CPUEntry* gCPUEntries;
CPUEntry::EnterScheduler()
CPUEntry::ExitScheduler()
CPUEntry::LockScheduler()
CPUEntry::UnlockScheduler()
CPUEntry::LockRunQueue()
CPUEntry::UnlockRunQueue()
/* static */ inline CPUEntry*
CPUEntry::GetCPU(int32 cpu)
class CPUEntry;
class CPUEntry : public HeapLinkImpl<CPUEntry, int32> {
CPUEntry();
CoreEntry::CPUGoesIdle(CPUEntry* /* cpu */)
CoreEntry::CPUWakesUp(CPUEntry* /* cpu */)
static inline CPUEntry* GetCPU(int32 cpu);
CPUEntry::GetCPU(smp_get_current_cpu())->ExitScheduler();
CPUEntry::GetCPU(i)->LockScheduler();
CPUEntry::GetCPU(i)->UnlockScheduler();
inline bool Lock(CPUEntry* cpu)
inline void Unlock(CPUEntry* cpu)
CPUEntry::GetCPU(smp_get_current_cpu())->EnterScheduler();
CPUEntry::GetCPU(smp_get_current_cpu())->ExitScheduler();
CPUEntry::GetCPU(smp_get_current_cpu())->EnterScheduler();
ThreadData::ChooseCoreAndCPU(CoreEntry*& targetCore, CPUEntry*& targetCPU)
inline CPUEntry*
CPUEntry* previousCPU
= CPUEntry::GetCPU(fThread->previous_cpu->cpu_num);
CPUEntry* cpu;
inline CPUEntry* _ChooseCPU(CoreEntry* core,
CPUEntry* cpu = CPUEntry::GetCPU(fThread->cpu->cpu_num);
CPUEntry* cpu = CPUEntry::GetCPU(fThread->previous_cpu->cpu_num);
CPUEntry* cpu = CPUEntry::GetCPU(fThread->previous_cpu->cpu_num);
CPUEntry*& targetCPU);