History log of /haiku/headers/private/kernel/util/Heap.h
Revision Date Author Comments
# a47974dd 29-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

scheduler: Use heap to determine highest priority thread


# 14e36af6 20-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel[/util]: Fix debug builds


# 4c499443 22-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel/util: Fixes in [MinMax]Heap implementation


# 5cf9b69b 21-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel/util: Minor improvements in Heap and MinMaxHeap

* [MinMax]Heap::ModifyKey(): Do not attempt to move node if the key
actually hasn't changed.
* Allow allocating initial array at construction.


# 278c9784 16-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

scheduler_affine: Use global core heap and per-core CPU heaps

There is a global heap of cores, where the key is the highest priority
of threads running on that core. Moreover, for each core there is
a heap of logical processors on this core where the key is the priority
of currently running thread.

The per-core heap is used for load balancing among logical processors
on that core. The global heap is used in initial decision where to put
the thread (note that the algorithm that makes this decision is not
complete yet).


# f20ad54b 14-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: Add support for SMP systems to simple scheduler

In SMP systems simple scheduler will be used only when all logical
processors share all levels of cache and the number of CPUs is low.
In such systems we do not have to care about cache affinity and
the contention on the lock protecting shared run queue is low. Single
run queue makes load balancing very simple.


# 4ade765c 08-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel/util: Add heap implementation


# a47974dd061e73828d099d11c1e4296ee687536b 29-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

scheduler: Use heap to determine highest priority thread


# 14e36af649464ae1bee6710b9ec27b196eca98ef 20-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel[/util]: Fix debug builds


# 4c4994435d83053a5b4536dabab8a755af97d59c 22-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel/util: Fixes in [MinMax]Heap implementation


# 5cf9b69b498bff8d197b1ea6ca2b2c47094890fd 21-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel/util: Minor improvements in Heap and MinMaxHeap

* [MinMax]Heap::ModifyKey(): Do not attempt to move node if the key
actually hasn't changed.
* Allow allocating initial array at construction.


# 278c9784a13e80068e7ab97ffd9feb27b98e17d6 16-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

scheduler_affine: Use global core heap and per-core CPU heaps

There is a global heap of cores, where the key is the highest priority
of threads running on that core. Moreover, for each core there is
a heap of logical processors on this core where the key is the priority
of currently running thread.

The per-core heap is used for load balancing among logical processors
on that core. The global heap is used in initial decision where to put
the thread (note that the algorithm that makes this decision is not
complete yet).


# f20ad54be26d164713bd06dab0435cee985561ef 14-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: Add support for SMP systems to simple scheduler

In SMP systems simple scheduler will be used only when all logical
processors share all levels of cache and the number of CPUs is low.
In such systems we do not have to care about cache affinity and
the contention on the lock protecting shared run queue is low. Single
run queue makes load balancing very simple.


# 4ade765cabf092840feb3771fdde2b37deaf5f27 08-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel/util: Add heap implementation