CoreEntry
CoreEntry* other;
CoreEntry* other = gCoreLoadHeap.PeekMinimum();
CoreEntry* core = CoreEntry::GetCore(cpu->cpu_num);
CoreEntry* core = threadData->Core();
static CoreEntry*
CoreEntry* core = NULL;
static CoreEntry*
CoreEntry* core = threadData->Core();
static CoreEntry*
CoreEntry* core = threadData->Core();
CoreEntry* smallTaskCore = choose_small_task_core();
CoreEntry* other;
CoreEntry* smallTaskCore = choose_small_task_core();
CoreEntry* smallTaskCore = atomic_pointer_get(&sSmallTaskCore);
if (smallTaskCore == CoreEntry::GetCore(cpu->cpu_num))
static CoreEntry* sSmallTaskCore;
CoreEntry* other = gCoreLoadHeap.PeekMinimum();
CoreEntry* core = CoreEntry::GetCore(smp_get_current_cpu());
static CoreEntry*
CoreEntry* core = gCoreLoadHeap.PeekMaximum();
CoreEntry* smallTaskCore
= atomic_pointer_test_and_set(&sSmallTaskCore, core, (CoreEntry*)NULL);
static CoreEntry*
static CoreEntry*
CoreEntry* core = NULL;
CoreEntry* targetCore = NULL;
CoreEntry* core = CoreEntry::GetCore(thisCPU);
thread->scheduler_data->Init(CoreEntry::GetCore(cpuID));
CoreEntry* core = cpu->Core();
gCoreEntries = new(std::nothrow) CoreEntry[coreCount];
ArrayDeleter<CoreEntry> coreEntriesDeleter(gCoreEntries);
CoreEntry* core = &gCoreEntries[sCPUToCore[i]];
CoreEntry* core = threadData->Core();
class CoreEntry;
CoreEntry::PeekThread() const
CoreEntry* gCoreEntries;
CoreEntry::GetCore(smp_get_current_cpu())->ChangeLoad(0);
CoreEntry::CoreEntry()
static void DumpCoreRunQueue(CoreEntry* core);
static void DumpCoreLoadHeapEntry(CoreEntry* core);
CoreEntry::Init(int32 id, PackageEntry* package)
CoreEntry::PushFront(ThreadData* thread, int32 priority)
CoreEntry::PushBack(ThreadData* thread, int32 priority)
CoreEntry::Remove(ThreadData* thread)
CoreEntry::AddCPU(CPUEntry* cpu)
CoreEntry* fCore;
CoreEntry::RemoveCPU(CPUEntry* cpu, ThreadProcessing& threadPostProcessing)
thread_map(CoreEntry::_UnassignThread, this);
CoreEntry::_UpdateLoad(bool forceUpdate)
CoreEntry::_UnassignThread(Thread* thread, void* data)
CoreEntry* core = static_cast<CoreEntry*>(data);
MinMaxHeap<CoreEntry, int32>(coreCount)
CoreEntry* entry = PeekMinimum();
PackageEntry::AddIdleCore(CoreEntry* core)
PackageEntry::RemoveIdleCore(CoreEntry* core)
DebugDumper::DumpCoreRunQueue(CoreEntry* core)
DebugDumper::DumpCoreLoadHeapEntry(CoreEntry* entry)
DoublyLinkedList<CoreEntry>::ReverseIterator iterator
CoreEntry* coreEntry = iterator.Next();
CPUEntry::Init(int32 id, CoreEntry* core)
class CoreEntry : public MinMaxHeapLinkImpl<CoreEntry, int32>,
public DoublyLinkedListLinkImpl<CoreEntry> {
CoreEntry();
static inline CoreEntry* GetCore(int32 cpu);
class CoreLoadHeap : public MinMaxHeap<CoreEntry, int32> {
inline void CoreGoesIdle(CoreEntry* core);
inline void CoreWakesUp(CoreEntry* core);
inline CoreEntry* GetIdleCore(int32 index = 0) const;
void AddIdleCore(CoreEntry* core);
void RemoveIdleCore(CoreEntry* core);
DoublyLinkedList<CoreEntry> fIdleCores;
extern CoreEntry* gCoreEntries;
CoreEntry::LockCPUHeap()
CoreEntry::UnlockCPUHeap()
class CoreEntry;
CoreEntry::CPUHeap()
CoreEntry::ThreadCount() const
CoreEntry::LockRunQueue()
CoreEntry::UnlockRunQueue()
CoreEntry::IncreaseActiveTime(bigtime_t activeTime)
CoreEntry::GetActiveTime() const
CoreEntry::GetLoad() const
CoreEntry::AddLoad(int32 load, uint32 epoch, bool updateLoad)
CoreEntry::RemoveLoad(int32 load, bool force)
CoreEntry::ChangeLoad(int32 delta)
PackageEntry::CoreGoesIdle(CoreEntry* core)
PackageEntry::CoreWakesUp(CoreEntry* core)
void Init(int32 id, CoreEntry* core);
CoreEntry::CPUGoesIdle(CPUEntry* /* cpu */)
CoreEntry::CPUWakesUp(CPUEntry* /* cpu */)
inline CoreEntry* Core() const { return fCore; }
/* static */ inline CoreEntry*
CoreEntry::GetCore(int32 cpu)
inline CoreEntry*
CoreEntry* element = fIdleCores.Last();
CoreEntry* fCore;
inline bool Lock(CoreEntry* core)
inline void Unlock(CoreEntry* core)
inline bool Lock(CoreEntry* core)
inline void Unlock(CoreEntry* core)
Scheduler::CoreEntry* (*choose_core)(
Scheduler::CoreEntry* (*rebalance)(
ThreadData::Init(CoreEntry* core)
ThreadData::ChooseCoreAndCPU(CoreEntry*& targetCore, CPUEntry*& targetCPU)
inline CoreEntry*
ThreadData::_ChooseCPU(CoreEntry* core, bool& rescheduleNeeded) const
CoreEntry* fCore;
inline CoreEntry*
inline CoreEntry* _ChooseCore() const;
inline CPUEntry* _ChooseCPU(CoreEntry* core,
void Init(CoreEntry* core);
inline CoreEntry* Rebalance() const;
bool ChooseCoreAndCPU(CoreEntry*& targetCore,
inline CoreEntry* Core() const { return fCore; }