Commit Graph

76 Commits

Author SHA1 Message Date
Qais Yousef
fff0de1059 BACKPORT: sched/uclamp: Filter out uclamp_max for small tasks
DISCLAIMER:
=====================================================================

This patch is intended to go upstream after collecting feedback from
Android community that it resolves the issues reported by various
partners. It is not meant to be merged into android-mainline.

=====================================================================

uclamp_max effectiveness could be easily impacted by small transient
tasks that wake up frequency to do small work then go back to sleep.

If there's a busy task that is capped by uclamp_max to run at a smaller
frequency, due to max-aggregation rule tasks that wake up on the same
cpu will increase the rq->uclamp_max value if they were higher than the
capped task. Given that all tasks by default have a uclamp_max = 1024,
this is the likely case by default.

Note that since the capped task is likely to be a busy and throttled
one, its util, and hence the rq->util, will be very high and as soon as
we lift the capping the requested frequency will be very high.

To address this issue of increasing the resilience of uclamp_max against
these transient tasks that don't really need to run at a higher
frequency, we implement a simple filter mechanism to ignore uclamp_max
for those tasks.

The algorithm looks at the runtime of the task and compares it to
sched_slice(). By default we assume any task that its runtime is 1/4th
of sched_slice() or less is a small transient task that we can ignore
its uclamp_max requirement.

	runtime < sched_slice() / divider

We can tweak the divider by
/proc/sys/kernel/sched_util_uclamp_max_filter_divider sysctl. It accepts
values 0-4.

	divider = 1 << sched_util_uclamp_max_filter_divider

We add a new task_tick_uclamp() function to verify this condition
periodically and ensure the conditions checked at wake up are still true
- in case this transient task suddenly becomes a busy one.

For EAS, we can't use sched_slice() there to figure out if uclamp_max
will be ignored because the task is not enqueued yet. So we leave it
as-is to figure out the placement based on worst case scenario.

Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Change-Id: Ie3afa93a7d70dab5b7c22e820cc078ffd0e891ef
[yaro: ported to msm-5.4 and remove sysctl parts for now]
Signed-off-by: Yaroslav Furman <yaro330@gmail.com>
2023-08-09 17:24:56 -05:00
kondors1995
de83ab483e Revert "Revert "sched: separate capacity margin for boosted tasks""
This reverts commit 834e38ed40.
2022-09-16 20:06:07 +03:00
Qais Yousef
8992cfd584 BACKPORT: sched/uclamp: Add a new sysctl to control RT default boost value
RT tasks by default run at the highest capacity/performance level. When
uclamp is selected this default behavior is retained by enforcing the
requested uclamp.min (p->uclamp_req[UCLAMP_MIN]) of the RT tasks to be
uclamp_none(UCLAMP_MAX), which is SCHED_CAPACITY_SCALE; the maximum
value.

This is also referred to as 'the default boost value of RT tasks'.

See commit 1a00d999971c ("sched/uclamp: Set default clamps for RT tasks").

On battery powered devices, it is desired to control this default
(currently hardcoded) behavior at runtime to reduce energy consumed by
RT tasks.

For example, a mobile device manufacturer where big.LITTLE architecture
is dominant, the performance of the little cores varies across SoCs, and
on high end ones the big cores could be too power hungry.

Given the diversity of SoCs, the new knob allows manufactures to tune
the best performance/power for RT tasks for the particular hardware they
run on.

They could opt to further tune the value when the user selects
a different power saving mode or when the device is actively charging.

The runtime aspect of it further helps in creating a single kernel image
that can be run on multiple devices that require different tuning.

Keep in mind that a lot of RT tasks in the system are created by the
kernel. On Android for instance I can see over 50 RT tasks, only
a handful of which created by the Android framework.

To control the default behavior globally by system admins and device
integrator, introduce the new sysctl_sched_uclamp_util_min_rt_default
to change the default boost value of the RT tasks.

I anticipate this to be mostly in the form of modifying the init script
of a particular device.

To avoid polluting the fast path with unnecessary code, the approach
taken is to synchronously do the update by traversing all the existing
tasks in the system. This could race with a concurrent fork(), which is
dealt with by introducing sched_post_fork() function which will ensure
the racy fork will get the right update applied.

Tested on Juno-r2 in combination with the RT capacity awareness [1].
By default an RT task will go to the highest capacity CPU and run at the
maximum frequency, which is particularly energy inefficient on high end
mobile devices because the biggest core[s] are 'huge' and power hungry.

With this patch the RT task can be controlled to run anywhere by
default, and doesn't cause the frequency to be maximum all the time.
Yet any task that really needs to be boosted can easily escape this
default behavior by modifying its requested uclamp.min value
(p->uclamp_req[UCLAMP_MIN]) via sched_setattr() syscall.

[1] 804d402fb6f6: ("sched/rt: Make RT capacity-aware")

Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200716110347.19553-2-qais.yousef@arm.com

(cherry picked from commit 13685c4a08fca9dd76bf53bfcbadc044ab2a08cb)

Conflicts:
   kernel/fork.c
   kernel/sysctl.c
Upstream has commit 5a5cf5cb30d7 ("cgroup: refactor fork helpers") and
further commit ef2c41cf38a7 ("clone3: allow spawning processes into
cgroups") which affect the calls after this.  Picking the first would
be easy but the 2nd would be much bigger.  Also, my cherry-pick put my
sysctl in the wrong place in the table in sysctl.c, so I manually
moved it.  Weird.

BUG=b:160171130
TEST=With series rt tasks don't get boosted

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Change-Id: I678d8ee899ecfbe0a1f0bb94da85d54fff924a57
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2340433
Reviewed-by: Joel Fernandes <joelaf@google.com>
2022-09-16 20:06:06 +03:00
Patrick Bellasi
6f4a026db1 UPSTREAM: sched/uclamp: Add system default clamps
Tasks without a user-defined clamp value are considered not clamped
and by default their utilization can have any value in the
[0..SCHED_CAPACITY_SCALE] range.

Tasks with a user-defined clamp value are allowed to request any value
in that range, and the required clamp is unconditionally enforced.
However, a "System Management Software" could be interested in limiting
the range of clamp values allowed for all tasks.

Add a privileged interface to define a system default configuration via:

  /proc/sys/kernel/sched_uclamp_util_{min,max}

which works as an unconditional clamp range restriction for all tasks.

With the default configuration, the full SCHED_CAPACITY_SCALE range of
values is allowed for each clamp index. Otherwise, the task-specific
clamp is capped by the corresponding system default value.

Do that by tracking, for each task, the "effective" clamp value and
bucket the task has been refcounted in at enqueue time. This
allows to lazy aggregate "requested" and "system default" values at
enqueue time and simplifies refcounting updates at dequeue time.

The cached bucket ids are used to avoid (relatively) more expensive
integer divisions every time a task is enqueued.

An active flag is used to report when the "effective" value is valid and
thus the task is actually refcounted in the corresponding rq's bucket.

Bug: 120440300
Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alessio Balsini <balsini@android.com>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Morten Rasmussen <morten.rasmussen@arm.com>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Perret <quentin.perret@arm.com>
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com>
Cc: Steve Muckle <smuckle@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Todd Kjos <tkjos@google.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://lkml.kernel.org/r/20190621084217.8167-5-patrick.bellasi@arm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit e8f14172c6b11e9a86c65532497087f8eb0f91b1)
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Change-Id: I4f014c5ec9c312aaad606518f6e205fd0cfbcaa2
Signed-off-by: Quentin Perret <qperret@google.com>
2022-09-16 20:06:04 +03:00
Juhyung Park
c810b18857 sched: promote nodes out of CONFIG_SCHED_DEBUG
xNombre: Android modifies some scheduler parameters on boot.
Applying these manually resulted in better hackbench performance.

Signed-off-by: Juhyung Park <qkrwngud825@gmail.com>
Signed-off-by: Andrzej Perczak <linux@andrzejperczak.com>
2022-04-18 11:36:03 +00:00
kondors1995
834e38ed40 Revert "sched: separate capacity margin for boosted tasks"
This reverts commit d25218232773159d2a2fe6e9352b193232f86fc3.
2022-04-18 11:35:57 +00:00
Jimmy Shiu
c7ba9a6d72 sched/core: fix userspace affining threads incorrectly by task name.
To identify certain apps which request max cpu freq to affine its
tasks to specific cpus, besides checking its lib name, task name is
also a factor that we can identify the suspcious task.

Test: build and test the 'perfect kick 2' game.
Bug: 163293825
Bug: 161324271
Change-Id: I4359859db743b4c9122e9df40af0b109370e8f1f
Signed-off-by: Jimmy Shiu <jimmyshiu@google.com>
2022-04-18 11:35:55 +00:00
Pavankumar Kondeti
399546962f sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I50d41aa3338803cbd45ff6314b2bb3978c59282b
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2022-04-18 11:35:55 +00:00
Abhijeet Dharmapurikar
b8878d198c sched/core: fix userspace affining threads incorrectly
Certain userspace applications, to achieve max performance, affines its
threads to cpus that run the fastest. This is not always the
correct strategy. For e.g. in certain architectures all the
cores have the same max freq but few of them have a bigger
cache. Affining to the cpus that have bigger cache is advantageous
but such an application would end up affining them to all the cores.
Similarly if an architecture has just one cpu that runs at max freq,
it ends up crowding all its thread on that single core, which is
detrimental for performance.

To address this issue, we need to detect a suspicious looking affinity
request from userspace and check if it links in a particular library.
The latter can easily be detected by traversing executable vm areas
that map a file and checking for that library name.
When such a affinity request is found, change it to use a proper
affinity. The suspicious affinity request, the proper affinity request
and the library name can be configured by the userspace.

Change-Id: I6bb8c310ca54c03261cc721f28dfd6023ab5591a
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2022-04-18 11:35:54 +00:00
Rick Yiu
7993d535b1 sched: separate capacity margin for boosted tasks
With the introduction of placement hint patch, boosted tasks will not
scheduled from big cores. We tune capacity margin to let important
boosted tasks get scheduled on big cores. However, the capacity margin
affects all group of tasks, so that non-boosted tasks get more chances
to be scheduled on big cores, too. This could be solved by separating
capacity margin for boosted tasks.

Bug: 147785606
Test: margin set correctly
Signed-off-by: Rick Yiu <rickyiu@google.com>
Change-Id: I2b02e138e36a6844afbc1ade60fe86a001814b30
2022-04-18 11:35:53 +00:00
Wilson Sung
16718180d0 Roll back performace files
File list:
kernel/sched/
include/linux/sched/

Bug: 150756696
Bug: 149660093

Change-Id: Ia90f5123ef3ab0d3322e974d174b915e80ed642e
Signed-off-by: Wilson Sung <wilsonsung@google.com>
2022-04-18 11:35:53 +00:00
Rick Yiu
d56e68dd3b sched: use sysctl to control energy aware feature
Energy aware feature control is previously done through debugfs,
which will be deprecated, so move the control to sysctl.

Bug: 141333728
Test: function works as expected
Change-Id: I55411d3bb2669ba1fae3225d67cdf1cf8b3b3a7f
Signed-off-by: Rick Yiu <rickyiu@google.com>
2022-04-18 11:35:45 +00:00
Wei Wang
e2a7e442fa Revert "sched/core: fix userspace affining threads incorrectly"
This reverts commit d43b69c4ad.

Bug: 133481659
Test: build
Change-Id: I615023c611c4de1eb334e4374af7306991f4216b
Signed-off-by: Wei Wang <wvw@google.com>
2022-04-18 11:35:44 +00:00
Wei Wang
0c53cbe4b2 Revert "sched: Improve the scheduler"
This reverts commit a3dd94a1bb.

Bug:133481659
Test: build
Change-Id: Ib23609315f3446223521612621fe54469537c172
Signed-off-by: Wei Wang <wvw@google.com>
2022-04-18 11:35:43 +00:00
kondors1995
732ff49539 Revert 4.19 walt backports
Squashed commit of the following:

commit e0da409d20a1120c48f7c7c59a86df2d0e78dff1
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:28 2022 +0000

    Revert "Revert "sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()""

    This reverts commit 8cb322ba44.

commit 04e33109bae2cb907809e9e72dc78b4b0e9d90d9
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:27 2022 +0000

    Revert "sched/fair: Derive the downmigration margin wrt the destination CPU"

    This reverts commit 51e64c1746.

commit dc6a3a970d523bc734e97ad0596990a553958bf0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:26 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit b1d4f5bde5.

commit 51e5e01f3aefc05555161d6d1ababc6d6820dd88
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:25 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e376cd40d2.

commit bb816a5803a37721c54fc9911a8a715b0198713c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:24 2022 +0000

    Revert "sched/fair: Refactor packing eligible test"

    This reverts commit cf6c2a22b4.

commit 1008281e2aacf59465ea31d1176870759f91a774
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:23 2022 +0000

    Revert "sched: improve the scheduler"

    This reverts commit 64813e3d15.

commit 3b75a59b7b65dee631983e5abde1c002f460a521
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:22 2022 +0000

    Revert "sched/fair: Allow prev cpu in find best target"

    This reverts commit 1fe0f64b5a.

commit e197f8cdca5c05f70ba6ada8dd3e2e800bafe0fc
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:21 2022 +0000

    Revert "sched/fair: Fix excessive packing on the max capacity CPU"

    This reverts commit a88cad82cf.

commit 1d908d935c132824ab580f976d9fce751ab502f8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:20 2022 +0000

    Revert "sched/fair: upadte adjust_cpus_for_packing()"

    This reverts commit 08fc238c86.

commit 35dfbb767009eea348be9ac3417b26981abdd084
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:19 2022 +0000

    Revert "sched: clean-up unused/duplicate functions & variables"

    This reverts commit f79c18f23b.

commit 628d78cac047cf164f1cca797b759a43b31696a9
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:17 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e9fb7c0c28.

commit 0c142a2c77c8e418112613305eb7c87063057890
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:16 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit ad12d47ad6.

commit 2391d0e3d7d4af22524dce0b26d795f882fde0db
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:15 2022 +0000

    Revert "sched: Cleanup unused variables in walt"

    This reverts commit 0e968578ac.

commit e91fd23c44195b9c78a5886cff0cd56990d61137
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:14 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 863d26df6d.

commit e24b63cc81d5972d0e34a6c37e060cdd64f89771
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:13 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 994a047706.

commit a34d6a00b583d4a7317a82d92522d5f3bda3298b
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:12 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit baa8d4249a.

commit a662ab5cc78cc1cac9a60d2724ae61535cf59b44
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:10 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e265dccce7.

commit 62d089b4eb705f00a516a2a385c15be3fad2d121
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:09 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 336a7071de.

commit 099a09326ea2861a907fe1b4100f9ffc919bb81f
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:08 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 44961a76c8.

commit 68a7976e08cb6bff6dff6e4cea50797db7f97d46
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:07 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit b3bb2f6702.

commit ce15f63df0b323f21571e578b78279f5b73ac55a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:06 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 5e8ba22939.

commit da639b7d4ed1640374429b7e84a228aab2594b60
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:05 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 0d154364e0.

commit 6453444f3a69837c4c59d7b3776b1e9a6c83d3b0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:04 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 2d4e6b3850.

commit 60c9ef39c478a270982b4ac74be4cfdd949fcea4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:03 2022 +0000

    Revert "Revert "sched/walt: Fix clusters sorting when cpufreq is disabled""

    This reverts commit ecb2fca5a5.

commit 33af0f5a305d28ab8f987fe3757d125a2bf8f130
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:02 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit f00a64321e.

commit f3fe9acea84ec9559e5b535398cd834f625adafd
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:01 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit ca3cf0c1f8.

commit fff2855a694922257cafba5c566d738658410006
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:59 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit c66e488424.

commit 330f224e9601caf2400b15949cccdbb08f8761eb
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:58 2022 +0000

    Revert "sched/fair: Fix incorrect CPU access in check_for_migration()"

    This reverts commit 16dc974f96.

commit eb3f2244ddf02170cc0fccb6aa9c2fc2b6dfd6ca
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:57 2022 +0000

    Revert "sched/isolcpus: Fix "isolcpus=" boot parameter handling when !CONFIG_CPUMASK_OFFSTACK"

    This reverts commit 5ef4e5cef6.

commit b64c764d8daf65dfd447efd89413d6d5f3381751
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:56 2022 +0000

    Revert "sched/walt: drop preferred_cluster from rtg"

    This reverts commit 1ce7c8a179.

commit 457b01d4c8813018619e195955775e6d4ea66c9a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:55 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit bd092bfed6.

commit 47c826dd511e3737e4b53cd9f0472c3f823ecbd3
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:54 2022 +0000

    Revert "sched/core_ctl: Improve the scheduler"

    This reverts commit 8964743af3.

commit f0cf13df89999757c4da2e886c6cdd765ea2e3b6
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:53 2022 +0000

    Revert "sched/core_ctl: Improve the scheduler"

    This reverts commit 92e14b075c.

commit 1adc283c65f9515513e5a30cd905b4b8b6809332
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:52 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 5c94ee0b1a.

commit 1e8a22f9053996f2180bf36e628680989f7f90bb
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:51 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 3ae8342c24.

commit e45b6f52bdc9b22c01eec659861960506724bca7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:50 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 9990dee761.

commit 033162e61ddfbe1246f67a753ea0e8d43e15fa7a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:49 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e3bae83cac.

commit 100777f449cab40087d7c7eaffeea6f10c5585f0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:47 2022 +0000

    Revert "arm64/kernel/topology: Cleanup for upstream commit"

    This reverts commit a25719b05f.

commit 0391ca54d164ad24c8376adc70def2e7a5faa6a0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:46 2022 +0000

    Revert "arch_topology: Add possible sibling cpu mask for cpu_topology"

    This reverts commit 3f85bf06fc.

commit 734e104fbb95479ccc65e8328d4593d75f9ddffc
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:45 2022 +0000

    Revert "sched: core: Fix usage of cpu core group mask"

    This reverts commit 2d611d5b65.

commit dc146ddb1e552bfb36bdc8bec88c0b7cd216db55
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:44 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 2c99a96fa9.

commit 81507941532a132c8cb6ec88b2826e5b2395df26
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:43 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 834321e1fa.

commit f9f1c603aafec86a0cae9510b12f6775ca32319a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:42 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit d56300430c.

commit 070be3e6c57af46d64b10d2d7668f6cd8d4fe81c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:41 2022 +0000

    Revert "sched: Introduce sched_busy_hysteresis_enable_cpus tunable"

    This reverts commit 4ec8a76524.

commit da2d5427df5ca95ad10619565f51fa8289eeddb0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:40 2022 +0000

    Revert "sched: Use bitmask for sched_busy_hysteresis_enable_cpus tunable"

    This reverts commit 8ff5bf1a85.

commit af0dd2fa72ae04535e7b2a6ba7344bd4fc261fac
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:38 2022 +0000

    Revert "sched: Remove unused code in sched_avg.c"

    This reverts commit 33d95a041f.

commit 365ccf7a4b2255ac4bc7e55479a9d0baa7de9cf8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:37 2022 +0000

    Revert "lpm-levels: Optimize and make way for upstream changes"

    This reverts commit 6b1e097698.

commit 27379e7c071a3b1b00e53dccd8c9fd7aa720aa19
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:36 2022 +0000

    Revert "cpuidle: lpm-levels: get bias time from scheduler"

    This reverts commit facfee4aad.

commit b08d8d2fca732aa7b69f3c71bff0274cfa3d17cb
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:35 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit cc9cafa54a.

commit 1ce46c9093dcfc81288a2d9927af040bdcf73e14
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:34 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 4543b1af46.

commit 08cfdca5dd69adae0a5d9ece4aa7c91bd1d26199
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:33 2022 +0000

    Revert "sched: walt: Improve the Scheduler"

    This reverts commit e7ea5478b6.

commit deb41564605954c1c933cd8e2b4303e9511d2026
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:32 2022 +0000

    Revert "sched: walt: remove unused variable"

    This reverts commit db642f679e.

commit 9daaaa5c3e5e550973d241360e6cb4ae71eff1f2
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:31 2022 +0000

    Revert "sched: improve the scheduler"

    This reverts commit 0a8cbbef67.

commit 6b92b54daacfdfc35beeddcad64db64933122cf1
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:30 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit a8f97c3ca1.

commit fb4945792c7b9986e65a0c67c87158cc0d79ed68
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:28 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 5c0ced5d9d.

commit c3059eedcb167b8497f285886048449dabaa3329
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:27 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit b46bc087bd.

commit e484ee8fe7035dbce43cb177b6672cfeddbd7d56
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:26 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 3366cd2842.

commit 779543197fe683968ce5fcee6f439c62edfdbd9a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:25 2022 +0000

    Revert "sched: walt: Dump walt status on BUG_ON"

    This reverts commit c6983696d2.

commit ac1128af676e0228ffd17c99d858398dd7bc2c12
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:24 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 71925eb668.

commit 5dbef64c7db76e1d41f5afd7c695974cfaac1144
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:23 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 276ff38e69.

commit 4ee3bde67112f36c6773e53be4ec155378a58c57
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:22 2022 +0000

    Revert "sched: walt: fix sched_cluster initialization"

    This reverts commit 616dfe7582.

commit 504de651828c72fac4a1faf310b393a85c73dba4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:21 2022 +0000

    Revert "sched: core: Use sched_clusters for updown migration handler"

    This reverts commit bcf375b081.

commit 8174458135535f1821f4818968d93001377f0276
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:20 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit 26703509e9.

commit 8040981a5cd14d38db10e5dbbd80a14e8008c8a9
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:19 2022 +0000

    Revert "sched/walt: Avoid walt irq work in offlined cpu"

    This reverts commit ca0a0ab303.

commit 74e9893b6c08224fabf46a121e86906965812eb7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:18 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 582c417446.

commit d9a19150ca651bc83d3343747b22ccce17bb0b81
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:16 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit a33ebcf1a5.

commit 04cfe69badf318b7e17a21b170366f90bdf43b30
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:15 2022 +0000

    Revert "sched/walt: cleanup unused code"

    This reverts commit e6b442ca5b.

commit 56e3aa3effab63ec2b676085b39dcf67703f468a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:14 2022 +0000

    Revert "sched: walt: improve the scheduler"

    This reverts commit 9ba601ed8e.

commit cb051b1f707e4882aecee1c8dd7eb1ec3b0410f0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:13 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 044275646a.

commit 881007c0098c70dddeab5f95aa3183bbf775603d
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:12 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit 57dde83208.

commit 4b2477928d4c47db7fc73234ee1674091e281414
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:11 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit e2d12493b9.

commit 488d2f7d29d551d77baaef3dd6373bb8834c2e6f
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:10 2022 +0000

    Revert "sched/walt: Fix kernel panic issue by uninitialized data"

    This reverts commit 188d0b63d8.

commit 883e23ece4e293f03e4a82af560acf25acf239ab
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:08 2022 +0000

    Revert "sched: core_ctl: Improve the scheduler"

    This reverts commit 9b7e0b5f21.

commit 958cb0d96b1d482367fc098d8cc272e87f951778
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:40 2022 +0000

    Revert "sched/fair: Don't place wakee on waker cpu if colocate enabled"

    This reverts commit 8601883f77.

commit d210850cb0ed56404e69d8f1bd861f3d60ea11c7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:27 2022 +0000

    Revert "sched/cpufreq_schedutil: create a function for common steps"

    This reverts commit 9d8e438e96.

commit c99ccf59736d9ad8c85b671257d51b5d77fc6ae6
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:26 2022 +0000

    Revert "cpufreq: schedutil: Queue sugov irq work on policy online cpu"

    This reverts commit f4a7dc5aa1.

commit ec851ca3918470d88c17c28625b31f1f9aaa3817
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:25 2022 +0000

    Revert "cpufreq: Avoid leaving stale IRQ work items during CPU offline"

    This reverts commit 03029dc44f.

commit d369a7c3f411362e7e86838c0c5b245496e5ecf3
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:24 2022 +0000

    Revert "sched: fair: Stop running idle_balance on active migration kick"

    This reverts commit f8fdaaa848.

commit 0933780bb1ef84cf5f7a1beba11128888e67bef8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:23 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 84ace0489f.

commit f9531a065ca011b87ad8f2f3c6aa4fdf11228f19
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:21 2022 +0000

    Revert "sched: fair: Improve the scheduler"

    This reverts commit a5b78d7ac5.

commit 4e8db29f70d6793d50cd7c88e40f763c6e97b84c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:20 2022 +0000

    Revert "sched/fair: remove unused variable"

    This reverts commit 1dcc8eb8a5.

commit 509b3a23dd53000fdb9734e95aa173d36de0072c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:19 2022 +0000

    Revert "sched/fair: Cleanup for incoming upstream changes"

    This reverts commit 23bda40eae.

commit 5c3a880db3a913d35a679b490a904d82baf0fcb7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:18 2022 +0000

    Revert "sched/fair: Cleanup for incoming upstream changes"

    This reverts commit 3be3cb8ef9.

commit 3de879456c8e4dd958976f5401458c8a1e7d06bf
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:17 2022 +0000

    Revert "sched/fair: Force gold cpus to do idle lb when silver has big tasks"

    This reverts commit 9a28daeff9.

commit fc407cdd5f935dc09138232eda906be64babe078
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:15 2022 +0000

    Revert "sched/fair: Avoid force newly idle load balance if have iowait task"

    This reverts commit 7ab60698b4.

commit aa2f0e5475d7617825863870cbfe911c94bb349c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:14 2022 +0000

    Revert "sched: Add support to spread tasks"

    This reverts commit 498769889e.

commit dfb558643fcad1eb47eeedd3c3b79526dccf29af
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:13 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 66934ec9de.

commit 5331542fb14397de915e0ee8401f2d4834cfcce5
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:12 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 9775bcc63e.

commit 699dab97a2a180453621562c1c25e9374c15942a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:11 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 0673f890b2.

commit 8dbc5b59fa5b0baae560a7080b45c5785ce17825
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:10 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit f2c76a4b63.

commit 613fc288a80db796b7d366aebbafd036010f918b
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:08 2022 +0000

    Revert "sched/fair: Tighten prefer_spread feature"

    This reverts commit 88be255f29.

commit 852249f0a586ed1d1acec2efc653b5dfbc4095a8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:07 2022 +0000

    Revert "sched/fair: Add timeout for detach_tasks() in load balance"

    This reverts commit e4b2c9df2a.

commit 3f4e2e4785b1986d338f3ff8e9f38ef6f9c666bd
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:06 2022 +0000

    Revert "sched/walt: Avoid taking rq lock for every IRQ update"

    This reverts commit b03a5af6b4.

commit a94a2242cb47d1fc216173b69ef1fe15ecc152b4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:02 2022 +0000

    Revert "ANDROID: sched: fair: balance for single core cluster"

    This reverts commit b30f8c0381.

commit e3b844e3251e3fcf5b89ca3935e4aaa3c383bff4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:11:50 2022 +0000

    Revert "rcu/nocb: Perform deferred wake up before last idle's need_resched() check"

    This reverts commit 8a6d3eaab1.
2022-04-18 11:35:12 +00:00
Lingutla Chandrasekhar
498769889e sched: Add support to spread tasks
If sysctl_sched_prefer_spread is enabled, then tasks would be freely
migrated to idle cpus within same cluster to reduce runnables.

By default, the feature is disabled.
User can trigger feature with:
   echo 1 > /proc/sys/kernel/sched_prefer_spread
	Aggressively spread tasks with in little cluster.
   echo 2 > /proc/sys/kernel/sched_prefer_spread
	Aggressively spread tasks with in little cluster as well as
	big cluster, but not between big and little.

Change-Id: I0a4d87bd17de3525548765472e6f388a9970f13c
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
[render: minor fixups]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2021-04-12 07:13:38 +00:00
Lingutla Chandrasekhar
044275646a sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I5fbadf248c0bfe27bc761686de7a925cec2e4163
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
Signed-off-by: Sai Harshini Nimmala <snimmala@codeaurora.org>
2021-04-12 07:13:38 +00:00
Sai Harshini Nimmala
a33ebcf1a5 sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I33e9ec890f8b54d673770d5d02dba489a8e08ce7
Signed-off-by: Sai Harshini Nimmala <snimmala@codeaurora.org>
2021-04-12 07:13:38 +00:00
Lingutla Chandrasekhar
bcf375b081 sched: core: Use sched_clusters for updown migration handler
Currently, sched updown migration handler derives cluster topology
based on arch topology, the cluster information is already populated
in walt sched_cluster. So reuse it instead of deriving it again.

And move updown tunables support to under WALT.

Change-Id: Iddf4d18ddf75cc20637281d9889f671f42369513
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
[render: minor fixup]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
Sai Harshini Nimmala
5c0ced5d9d sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I8459bcf7b412a5f301566054c28c910567548485
Signed-off-by: Sai Harshini Nimmala <snimmala@codeaurora.org>
2021-04-12 07:13:38 +00:00
Shaleen Agrawal
e7ea5478b6 sched: walt: Improve the Scheduler
This change is for general scheduler improvement.

Change-Id: Ida39a3ee5e6b4b0d3255bfef95601890afd80709
Signed-off-by: Shaleen Agrawal <shalagra@codeaurora.org>
2021-04-12 07:13:38 +00:00
Amir Vajid
4543b1af46 sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I8ff4768d56d8e63b2cfa78e5f34cb156ee60e3da
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
2021-04-12 07:13:38 +00:00
Amir Vajid
cc9cafa54a sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I737751f065df6a5ed3093e3bda5e48750a14e4c9
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
2021-04-12 07:13:38 +00:00
Pavankumar Kondeti
8ff5bf1a85 sched: Use bitmask for sched_busy_hysteresis_enable_cpus tunable
The current code is using a bitmap for sched_busy_hysteresis_enable_cpus
tunable. Since the feature is not enabled for any of the CPUs, the
default value is printed as "\n". This is very inconvenient for
user space applications which tries to write a new value and try to
restore the previous value. Like other scheduler tunables, use
the bitmask to avoid this issue.

Change-Id: I0c5989606352be5382dd688602aefd753fb62317
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2021-04-12 07:13:38 +00:00
Pavankumar Kondeti
4ec8a76524 sched: Introduce sched_busy_hysteresis_enable_cpus tunable
Currently sched busy hysteresis feature is applied only for
CPUs other than the min capacity CPUs. This policy restricts
the flexibility on a system with more than 2 clusters. Add a
tunable to specify which CPUs needs this feature. By default,
the feature is turned off for all the CPUs.

The usage of this tunable:

echo 4-7 > /proc/sys/kernel/sched_busy_hysteresis_enable_cpus

Change-Id: I636575af2c42e2774007582f3d589495c6a3a9f1
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2021-04-12 07:13:38 +00:00
Pavankumar Kondeti
834321e1fa sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I310bbdc19bb65a0c562ec6a208f2da713eba954d
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
[render: minor fixups]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
Pavankumar Kondeti
2c99a96fa9 sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I7d794ad1be10a6811602fabb388facd39c8f3c53
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
Abhijeet Dharmapurikar
e3bae83cac sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I18364c6061ed7525755aaf187bf15a8cb9b54a8a
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
[render: minor fixup]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
Puja Gupta
2d4e6b3850 sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: Idef278a9551e6d7d3c1a945dcfd8804cbc7d6aff
Signed-off-by: Puja Gupta <pujag@codeaurora.org>
2021-04-12 07:13:38 +00:00
Abhijeet Dharmapurikar
5e8ba22939 sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I5d89acdde73f5379d68ebc8513d0bbeaac128f5d
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
[render: minor fixups]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
Pavankumar Kondeti
b3bb2f6702 sched/walt: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: Ib963aef88d85e15fcd19cda3d3f0944b530239ab
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2021-04-12 07:13:38 +00:00
Lingutla Chandrasekhar
336a7071de sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: Ie37ab752a4d69569bce506b0a12715bb45ece79e
Co-developed-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
2021-04-12 07:13:38 +00:00
Satya Durga Srinivasu Prabhala
f79c18f23b sched: clean-up unused/duplicate functions & variables
Deprecate unused/duplicate functions & variables for better
readability.

Change-Id: Ifd91080585f516c4d8290fa4bb4f8dbaddd27d98
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
[render: minor fixups]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
Yadu MG
e339a2357a trace/irq: sched: irq trace events should be used with !PROVE_LOCKING
When enabling PROVE_LOCKING, kernel build fails due to undefined symbol
error for the irqsoff_tracing_threshold_ns which is used in sysctl
interface,sysctl_irqsoff_tracing_threshold_ns. As per PREEMPTIRQ_EVENTS
Kconfig help, for tracing irq disable/enable events CONFIG_PROVE_LOCKING
should be disabled. This commit fixes by making the proc entry under
the PROVE_LOCKING config.

Change-Id: Ie28afd31013a9c393f32ad328cedfc0517867fc4
Signed-off-by: Yadu MG <ymg@codeaurora.org>
2019-11-08 11:06:13 +05:30
Pavankumar Kondeti
d3f96d211b sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: If1ee58a8ed59e4a9ee25dfa6fa2a1c1654e00e6d
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-10-22 11:24:00 +05:30
Pavankumar Kondeti
04d07a9b6e sched/fair: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I9216f9316e2bad067c10762de8d67912826b7bc7
Signed-off-by: Maria Yu <aiquny@codeaurora.org>
Co-developed-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
[pkondeti@codeaurora.org: skip_cpu argument is implemented for fbt]
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-10-22 11:23:51 +05:30
Pavankumar Kondeti
a3dd94a1bb sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I50d41aa3338803cbd45ff6314b2bb3978c59282b
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-04-01 14:35:59 +05:30
Satya Durga Srinivasu Prabhala
5be9b47afc sched: improve the scheduler
This change is for general scheduler improvement.

Change-Id: Iba464885e8b2172f955cfba3bd6d55743d790b32
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2018-09-19 21:24:51 -07:00
Imran Khan
db1aa31ae8 hung task: check specific tasks for long uninterruptible sleep state
khungtask by default monitors all tasks for long unterruptible sleep.
This change introduces a sysctl option, /proc/sys/kernel/
hung_task_selective_monitoring, to enable monitoring selected tasks.
If this sysctl option is enabled then only the tasks with
/proc/$PID/hang_detection_enabled set are to be monitored,
otherwise all tasks are monitored as default case.

Some tasks may intentionally moves to uninterruptable sleep state,
which shouldn't leads to khungtask panics, as those are recoverable
hungs. So to avoid false hung reports, add an option to select tasks
to be monitored and report/panic them only.
By default, enable the feature always to monitor selected tasks.

Change-Id: I48cd8cfe73dbe2b577541fe9607190eac5556bb2
Signed-off-by: Imran Khan <kimran@codeaurora.org>
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
[sramana: Resolved minor merge conflict]
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
2018-08-29 18:02:28 +05:30
Abhijeet Dharmapurikar
d43b69c4ad sched/core: fix userspace affining threads incorrectly
Certain userspace applications, to achieve max performance, affines its
threads to cpus that run the fastest. This is not always the
correct strategy. For e.g. in certain architectures all the
cores have the same max freq but few of them have a bigger
cache. Affining to the cpus that have bigger cache is advantageous
but such an application would end up affining them to all the cores.
Similarly if an architecture has just one cpu that runs at max freq,
it ends up crowding all its thread on that single core, which is
detrimental for performance.

To address this issue, we need to detect a suspicious looking affinity
request from userspace and check if it links in a particular library.
The latter can easily be detected by traversing executable vm areas
that map a file and checking for that library name.
When such a affinity request is found, change it to use a proper
affinity. The suspicious affinity request, the proper affinity request
and the library name can be configured by the userspace.

Change-Id: I6bb8c310ca54c03261cc721f28dfd6023ab5591a
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2018-08-24 14:58:56 -07:00
Satya Durga Srinivasu Prabhala
ff3a481216 sched/walt: improve the scheduler
This change is for general scheduler improvement.

Change-Id: Ie162a57537bb9ada66a4254d606e17d54b7a3a49
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
[pkondeti@codeaurora.org: code refactoring and implemented freq to load
calculations.]
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2018-07-31 22:30:55 -07:00
Abhijeet Dharmapurikar
eb61a9d94d sched/walt: improve the scheduler
This change is for general scheduler improvement.

Change-Id: I01e6610bba2e8c66a628d6289eeed4e854264fdd
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2018-06-29 12:26:07 -07:00
Lingutla Chandrasekhar
07b566961c sched: Use proper conditional flags to fix 32 bit compile failures
Fix 32-bit compilation issues by using proper conditional checks
for preempt and irqsoff trace event threshold variables.

Change-Id: I2b67cf6c33890e5373e69091c4812bec9302dee5
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
2018-04-30 17:58:57 +05:30
Pavankumar Kondeti
86a695fbed trace/irq: Add trace point to track IRQs disable callers
Add trace point to track IRQs disable callers to
isolate issues unrelated to scheduler and improve debug
turn around time.

Change-Id: Ib1ef45d8bed1fc0e128b5ab2051f0c30e8c50ee7
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2018-04-17 12:08:22 -07:00
Pavankumar Kondeti
6559dea820 sched: Add trace point to track preemption disable callers
Add trace point to track preemption disable callers to
isolate issues unrelated to scheduler and improve debug
turn around time.

Change-Id: If9303b7165167e8f79cd339929daf4afc31a61c4
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2018-04-17 12:04:53 -07:00
Pavankumar Kondeti
a34247a314 sched/walt: improve the scheduler
This change is for general scheduler improvement.

Change-Id: Ice980dde340bff8362b4f2adc679423d8f54e8e4
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2018-03-02 12:10:33 +05:30
Satya Durga Srinivasu Prabhala
c669cccb78 sched: Add migration support for multi cluster systems
In case of multi cluster systems with varying capacity of CPUs,
need for migration of tasks would be different as task would need
to get migrated to CPU in adjacent cluster. This change adds
support to accept multiple values for the {up,down}_migrate knobs,
so that, tasks can be migrated to CPU in adjacent cluster.

Change-Id: I325cc71884d9bbac14475cd838a3955d53e03d1e
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2018-02-21 12:12:36 -08:00
Linux Build Service Account
3914cd5bfd Merge "sched: fair: Add load-balancing changes snapshot" 2018-01-24 10:05:41 -08:00
Linux Build Service Account
1c4b4db09f Merge "sched/sysctl: Fix attributes of some extern declarations" 2018-01-24 01:13:14 -08:00
Satya Durga Srinivasu Prabhala
dc0a96e6c9 sysctl: sched: add sched_boost_handler
sched_boost_handler was introduced as part commit 3f083eada363e8f
("sched: Add snapshot of Window Assisted Load Tracking (WALT)"),
but, missed to add to sysctl.

Change-Id: Id6f5dcc076d074fa5665991dd074bdc9251c8255
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2018-01-23 13:08:11 -08:00