diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 24fb6b9a3465..aa802204073f 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -3716,6 +3716,8 @@ + + @@ -4222,14 +4224,6 @@ - - - - - - - - @@ -8888,7 +8882,7 @@ - + @@ -12473,6 +12467,7 @@ + @@ -13014,7 +13009,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + @@ -15068,6 +15085,7 @@ + @@ -26209,7 +26227,7 @@ - + @@ -29784,6 +29802,7 @@ + @@ -45473,6 +45492,7 @@ + @@ -49601,32 +49621,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -72008,36 +72003,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -72048,7 +72043,7 @@ - + @@ -72072,96 +72067,96 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -73495,7 +73490,26 @@ - + + + + + + + + + + + + + + + + + + + + @@ -76800,7 +76814,7 @@ - + @@ -99577,7 +99591,7 @@ - + @@ -99594,7 +99608,7 @@ - + @@ -99602,7 +99616,7 @@ - + @@ -99610,12 +99624,12 @@ - + - + @@ -99623,7 +99637,7 @@ - + @@ -99631,7 +99645,7 @@ - + @@ -99648,12 +99662,12 @@ - + - + @@ -99679,7 +99693,7 @@ - + @@ -99690,7 +99704,7 @@ - + @@ -99710,7 +99724,7 @@ - + @@ -99733,7 +99747,7 @@ - + @@ -99747,12 +99761,12 @@ - + - + @@ -99763,7 +99777,7 @@ - + @@ -99777,7 +99791,7 @@ - + @@ -99788,7 +99802,7 @@ - + @@ -99802,7 +99816,7 @@ - + @@ -99816,12 +99830,12 @@ - + - + @@ -99829,7 +99843,7 @@ - + @@ -99843,7 +99857,7 @@ - + @@ -99851,7 +99865,7 @@ - + @@ -99862,7 +99876,7 @@ - + @@ -99879,7 +99893,7 @@ - + @@ -99899,7 +99913,7 @@ - + @@ -99916,7 +99930,7 @@ - + @@ -99927,7 +99941,7 @@ - + @@ -99935,7 +99949,7 @@ - + @@ -99943,7 +99957,7 @@ - + @@ -99951,7 +99965,7 @@ - + @@ -99965,7 +99979,7 @@ - + @@ -99973,7 +99987,7 @@ - + @@ -99984,7 +99998,7 @@ - + @@ -100001,7 +100015,7 @@ - + @@ -107680,7 +107694,7 @@ - + @@ -109402,6 +109416,8 @@ + + diff --git a/android/abi_gki_aarch64_type_visibility b/android/abi_gki_aarch64_type_visibility index 4f826b7b1f87..8a98e59ea81b 100644 --- a/android/abi_gki_aarch64_type_visibility +++ b/android/abi_gki_aarch64_type_visibility @@ -2,3 +2,4 @@ # for type visibility GKI_struct_blk_mq_alloc_data + GKI_struct_cgroup_taskset diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index d313d85eb576..7966f96c1834 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -62,7 +62,9 @@ #include #include #include +#ifdef __GENKSYMS__ #include +#endif #include #include #include @@ -104,7 +106,6 @@ 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_task_rq_dl); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_fallback_rq); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_refrigerator); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scheduler_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task); @@ -249,8 +250,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_get); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_task_util); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_rq_util_with); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpufreq_transition); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_set_task); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cgroup_force_kthread_migration); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_syscall_prctl_finished); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_create_worker); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_tick); @@ -315,7 +314,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_swappiness); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_slab_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpuset_fork); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_comm); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_setaffinity_early); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_task); @@ -333,7 +331,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_is_initialized); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_inactive_ratio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_of_i2c_get_board_info); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_dirty_limits); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_oom_check_panic); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterruptible_tasks); diff --git a/kernel/cgroup/Makefile b/kernel/cgroup/Makefile index 5d7a76bfbbb7..c8bc5cbe1d45 100644 --- a/kernel/cgroup/Makefile +++ b/kernel/cgroup/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_CGROUP_PIDS) += pids.o obj-$(CONFIG_CGROUP_RDMA) += rdma.o obj-$(CONFIG_CPUSETS) += cpuset.o obj-$(CONFIG_CGROUP_DEBUG) += debug.o +obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o diff --git a/kernel/cgroup/vendor_hooks.c b/kernel/cgroup/vendor_hooks.c new file mode 100644 index 000000000000..95f7e3410d7d --- /dev/null +++ b/kernel/cgroup/vendor_hooks.c @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* vendor_hook.c + * + * Android Vendor Hook Support + * + * Copyright 2022 Google LLC + */ +#ifndef __GENKSYMS__ +#include "cgroup-internal.h" +#else +/* + * Needed to preserve CRC for cgroup-related hooks + */ +#include +#include <../drivers/gpio/gpiolib.h> +#endif + +#define CREATE_TRACE_POINTS +#include +#include +#include + +/* + * 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_vh_cgroup_set_task); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpuset_fork); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cgroup_force_kthread_migration); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_refrigerator); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_attach); + +/* + * For type visibility + */ +const struct cgroup_taskset *GKI_struct_cgroup_taskset; +EXPORT_SYMBOL_GPL(GKI_struct_cgroup_taskset);