android_kernel_msm-6.1_noth.../include/trace/hooks
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
..
audio_usboffload.h ANDROID: sound: usb: Add vendor hooks for connect & disconnect 2023-03-22 02:29:10 +00:00
avc.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
binder.h ANDROID: vendor_hooks: Add hooks for binder proc transaction 2023-05-30 21:51:17 +00:00
bl_hib.h ANDROID: vendor hooks: Encrypt snapshot for bootloader based hibernation 2023-06-07 14:25:05 +00:00
bug.h ANDROID: bug: add vendor hook for bug trap 2023-03-13 20:34:25 +00:00
cgroup.h ANDROID: cgroup: Cleanup android_rvh_cgroup_force_kthread_migration 2023-07-25 16:01:47 +00:00
cpufreq.h ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power 2023-05-22 20:26:30 +00:00
cpuidle.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
cpuidle_psci.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
creds.h ANDROID: kernel: Add restricted vendor hook in creds 2023-04-18 19:28:00 +00:00
debug.h ANDROID: remove CONFIG_TRACEPOINTS from hook definition headers 2022-09-07 19:59:35 +00:00
dmabuf.h ANDROID: dma-buf: Add vendorhook to allow mmaping more memory than a DMA-BUF holds 2023-01-10 17:26:59 -08:00
dtask.h ANDROID: Inherit "user-aware property" across rtmutex. 2023-07-27 00:04:07 +00:00
epoch.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
fault.h ANDROID: arm64: add vendor hooks for kernel fault cases 2023-03-13 20:34:25 +00:00
fips140.h ANDROID: crypto: lib/aes - add vendor hooks for AES library routines 2023-01-09 21:33:28 +00:00
fpsimd.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
ftrace_dump.h ANDROID: remove inclusions from hook definition headers 2022-09-07 20:00:46 +00:00
futex.h ANDROID: vendor_hooks: Add hooks for futex 2023-05-11 05:22:29 +00:00
gic.h ANDROID: gic: Add vendor hook for gic-v3 resume 2023-03-20 10:53:38 -07:00
gic_v3.h ANDROID: irqchip/irq-gic-v3: Add vendor hook for gic suspend 2023-06-02 17:02:43 +00:00
hung_task.h ANDROID: hung_task: Add vendor hook for hung task detect 2023-01-30 11:14:35 +08:00
iommu.h ANDROID: iommu: Define vendor hook to limit max alignment 2023-01-20 18:48:47 +00:00
mm.h ANDROID: vendor_hooks: vendor hook for MM 2023-06-28 12:31:36 +00:00
mmc.h ANDROID: vendor_hooks: Define new hooks in _mmc_suspend/resume 2023-06-01 18:00:57 +00:00
module.h ANDROID: module: Add vendor hooks 2023-04-18 19:28:00 +00:00
mpam.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
net.h ANDROID: GKI: net: add vendor hooks for 'struct sock' lifecycle 2023-05-24 13:15:37 +00:00
pm_domain.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
power.h ANDROID: power: Add vendor hook to qos for GKI purpose. 2023-05-11 05:22:29 +00:00
preemptirq.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
printk.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
psci.h ANDROID: Fix incorrect hook declaration 2023-06-02 20:46:44 +00:00
psi.h ANDROID: psi: Add vendor hooks for PSI tracing 2023-05-18 21:53:34 +00:00
regmap.h ANDROID: GKI: regmap: Add regmap vendor hook for of_syscon_register 2023-07-13 02:22:21 +00:00
remoteproc.h ANDROID: remove inclusions from hook definition headers 2022-09-07 20:00:46 +00:00
rwsem.h ANDROID: vendor_hooks: Add hooks for rwsem and mutex 2023-05-05 23:07:06 +00:00
sched.h ANDROID: Inherit "user-aware property" across rtmutex. 2023-07-27 00:04:07 +00:00
selinux.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
signal.h ANDROID: vendor_hooks: Add hooks for signal 2023-05-19 19:41:20 +00:00
softlockup.h ANDROID: softlockup: add vendor hook for a softlockup task 2023-03-13 20:34:25 +00:00
sys.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
syscall_check.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
sysrqcrash.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
thermal.h ANDROID: thermal: Add hook to enable/disable thermal power throttle 2023-06-28 16:15:01 +00:00
timer.h ANDROID: timer: Add vendor hook for timer calc index 2023-01-11 10:52:28 -08:00
topology.h ANDROID: sched: add vendor hook for correcting cpu capacity 2023-01-19 18:06:37 +00:00
traps.h ANDROID: arm64: add vendor hooks for unusal abort cases 2023-03-13 20:34:25 +00:00
typec.h ANDROID: vendor_hooks: Add vendor hook for tcpm logs 2023-04-14 19:25:17 +00:00
ufshcd.h ANDROID: ufs: Improve MCQ err handling 2023-05-26 18:14:14 +00:00
user.h ANDROID: user: Add vendor hook to user for GKI purpose 2023-05-11 05:22:29 +00:00
vendor_hooks.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00
vmscan.h ANDROID: mm: create vendor hooks for memory reclaim 2023-06-05 16:31:49 +00:00
wqlockup.h ANDROID: vendor_hooks: Reduce pointless modversions CRC churn 2022-03-31 19:07:59 +00:00