android_kernel_msm-6.1_noth.../include
xieliujie 544ae28cf6 ANDROID: Inherit "user-aware property" across rtmutex.
Since upstream commit 715f7f9ece ("locking/rtmutex: Squash !RT
tasks to DEFAULT_PRIO"), non-rt tasks do not inherit the
nice-priority values across rt_mutexes. This removes the minor
(and indirect) priority-inheritance that rt-mutexes provided for
CFS tasks.

Though without priority inheritance, time-bounded priority
inversion can occur between CFS tasks of different nice
priorities / cgroup limitations.  The proxy-execution efforts
are a work-in-progress to resolve this upstream, but in the
meantime it is left to vendor hooks to provide a near term
solution to avoid priority inversion between CFS tasks.

In our oem scheduler, if a  CFS thread has an "user-aware
property", we will always pick it even if it's vruntime is
bigger than the smallest one in runqueue. That's why the
trace_android_rvh_replace_next_task_fair vendorhook was added
previously in commit 53e809978443 ("ANDROID: vendor_hooks: Add
hooks for scheduler").

Thus for our oem scheduler, important CFS tasks(like
RenderThread) are marked with the "user-aware property" in their
struct task_struct. If those tasks are blocked on an rtmutex, we
want to allow the "user-aware property" to be inherited to lock
owner, so it will be selected to run immediately to release the
lock.

To support this, we need new hooks to map "user-aware property"
into different rtmutex_waiter prio and update the owner's
"user-aware property" if needed. Thus these additional vendor
hooks are needed.

In the future, once an generalized upstream solution for CFS
priority inheritance is in place, this will no longer be needed.

Bug: 290585456
Change-Id: I6521ed2086b147400a54da6b84a324baf16bc649
Signed-off-by: xieliujie <xieliujie@oppo.com>
2023-07-27 00:04:07 +00:00
..
acpi ACPI: video: Add auto_detect arg to __acpi_video_get_backlight_type() 2023-04-13 16:55:33 +02:00
asm-generic BACKPORT: arm64: unwind: add asynchronous unwind tables to kernel and modules 2023-05-25 15:37:14 -07:00
clocksource
crypto
drm Merge 6.1.24 into android14-6.1 2023-04-22 08:52:25 +00:00
dt-bindings dt-bindings: clocks: imx8mp: Add ID for usb suspend clock 2022-12-31 13:33:09 +01:00
keys
kunit kunit: fix kunit_test_init_section_suites(...) 2023-02-09 11:28:08 +01:00
kvm Revert "Revert "KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode"" 2023-05-11 05:22:29 +00:00
linux BACKPORT: blk-crypto: use dynamic lock class for blk_crypto_profile::lock 2023-07-27 00:02:13 +00:00
math-emu
media ANDROID: GKI: add kabi padding for structures for the android14 release 2023-06-07 14:24:51 +00:00
memory memory: renesas-rpc-if: Split-off private data from struct rpcif 2023-03-11 13:55:17 +01:00
misc
net UPSTREAM: netfilter: nf_tables: fix chain binding transaction logic 2023-07-25 12:25:13 +01:00
pcmcia
ras
rdma
rv
scsi ANDROID: GKI: scsi: add Android ABI padding to some structures 2023-06-07 14:24:56 +00:00
soc ARM: at91: pm: avoid soft resetting AC DLL 2022-11-01 12:25:19 +02:00
sound ANDROID: GKI: add kabi padding for structures for the android14 release 2023-06-07 14:24:51 +00:00
target
trace ANDROID: Inherit "user-aware property" across rtmutex. 2023-07-27 00:04:07 +00:00
uapi UPSTREAM: scsi: ufs: core: bsg: Fix cast to restricted __be16 warning 2023-07-03 14:45:09 +01:00
ufs FROMLIST: scsi: ufs: core: Export symbols for MTK driver module 2023-07-04 09:08:44 +00:00
vdso
video
xen x86/PVH: obtain VGA console info in Dom0 2023-04-06 12:10:39 +02:00