diff options
| author | Syed Rameez Mustafa <rameezmustafa@codeaurora.org> | 2016-06-07 15:18:37 -0700 |
|---|---|---|
| committer | Syed Rameez Mustafa <rameezmustafa@codeaurora.org> | 2016-10-17 12:45:51 -0700 |
| commit | dc09dd60a03e083c8e9ed2a971e1fda6f1a36309 (patch) | |
| tree | 762482c1c9e80f8d0fccc965da7cbca1ec8117df /kernel/sysctl.c | |
| parent | 7bd09f24415cb4809973ed4f536c717b91dc0e18 (diff) | |
sched: Optimize the next top task search logic upon task migration
find_next_top_index() is responsible for finding the second top task
on a CPU when the top task migrates away from that CPU. This operation
is expensive as we need to iterate the entire array of top tasks to
find the second top task.
Optimize this by introducing bitmaps for tracking top task indices.
There are two bitmaps; one for the previous window and one for the
current window. Each bit in a bitmap tracks whether the corresponding
bucket in the top task hashmap has a non zero refcount. The bit is set
when the refcount becomes non zero and is cleared when it becomes zero.
Finding the second top task upon migration is then simply a matter of
finding the highest set bit in the bitmap.
Change-Id: Ibafaf66eed756b0328704dfaa89c17ab0d84e359
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Diffstat (limited to 'kernel/sysctl.c')
0 files changed, 0 insertions, 0 deletions
