
Upstream moved the sugov to DEADLINE class which has higher prio than RT so it can potentially block many RT use case in Android. Also currently iowait doesn't distinguish background/foreground tasks and we have seen cases where device run to high frequency unnecessarily when running some background I/O. Bug: 171598214 Signed-off-by: Wei Wang <wvw@google.com> Change-Id: I21e9bfe9ef75a4178279574389e417c3f38e65ac (cherry picked from commit 03177ef82bd942a3f163e826063491bae6ff0ac9) Signed-off-by: Will McVicker <willmcvicker@google.com>
85 lines
4.0 KiB
C
85 lines
4.0 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/* vendor_hook.c
|
|
*
|
|
* Android Vendor Hook Support
|
|
*
|
|
* Copyright 2020 Google LLC
|
|
*/
|
|
|
|
#define CREATE_TRACE_POINTS
|
|
#include <trace/hooks/vendor_hooks.h>
|
|
#include <trace/hooks/sched.h>
|
|
#include <trace/hooks/fpsimd.h>
|
|
#include <trace/hooks/binder.h>
|
|
#include <trace/hooks/rwsem.h>
|
|
#include <trace/hooks/futex.h>
|
|
#include <trace/hooks/dtask.h>
|
|
#include <trace/hooks/cpuidle.h>
|
|
#include <trace/hooks/topology.h>
|
|
#include <trace/hooks/mpam.h>
|
|
#include <trace/hooks/gic.h>
|
|
#include <trace/hooks/wqlockup.h>
|
|
#include <trace/hooks/debug.h>
|
|
#include <trace/hooks/sysrqcrash.h>
|
|
#include <trace/hooks/printk.h>
|
|
#include <trace/hooks/gic_v3.h>
|
|
#include <trace/hooks/epoch.h>
|
|
#include <trace/hooks/cpufreq.h>
|
|
|
|
/*
|
|
* Export tracepoints that act as a bare tracehook (ie: have no trace event
|
|
* associated with them) to allow external modules to probe them.
|
|
*/
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_fair);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_rt);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_fallback_rq);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scheduler_tick);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_can_migrate_task);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_lowest_rq);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_prepare_setprio);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_prepare_prio_fork);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_finish_prio_fork);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_user_nice);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_setscheduler);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_arch_set_freq_scale);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_init);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_set_priority);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_start);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_finish);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_start);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_finish);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mpam_set);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_group);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_resume);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_wq_lockup_pool);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dump_throttled_rt_tasks);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_hotplug);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_jiffies_update);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_v3_set_affinity);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_v3_affinity_init);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_suspend_epoch_val);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_resume_epoch_val);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_max_freq);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_table_limits);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_newidle_balance);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_nohz_balancer_kick);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_queue);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_migrate_queued_task);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait); |