vendor_hooks.c 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /* vendor_hook.c
  3. *
  4. * Copyright 2022 Google LLC
  5. */
  6. #include <linux/sched/cputime.h>
  7. #include "sched.h"
  8. #include "pelt.h"
  9. #include "smp.h"
  10. #define CREATE_TRACE_POINTS
  11. #include <trace/hooks/vendor_hooks.h>
  12. #include <linux/tracepoint.h>
  13. #include <trace/hooks/sched.h>
  14. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_fair);
  15. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_rt);
  16. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_fallback_rq);
  17. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scheduler_tick);
  18. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task);
  19. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task);
  20. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_can_migrate_task);
  21. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_lowest_rq);
  22. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_prepare_prio_fork);
  23. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_finish_prio_fork);
  24. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_force_update);
  25. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_prepare_setprio);
  26. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_user_nice);
  27. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_user_nice_locked);
  28. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_setscheduler);
  29. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_group);
  30. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dump_throttled_rt_tasks);
  31. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_jiffies_update);
  32. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_newidle_balance);
  33. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_nohz_balancer_kick);
  34. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_rebalance_domains);
  35. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_queue);
  36. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_migrate_queued_task);
  37. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_overutilized);
  38. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_setaffinity);
  39. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_cpus_allowed);
  40. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains);
  41. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_tick);
  42. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup_ignore);
  43. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair);
  44. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_balance_rt);
  45. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity);
  46. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup);
  47. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_by_task);
  48. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_task);
  49. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_copy_process);
  50. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_get);
  51. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_after_enqueue_task);
  52. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_after_dequeue_task);
  53. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_entity);
  54. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_entity);
  55. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_entity_tick);
  56. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task_fair);
  57. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task_fair);
  58. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_est_update);
  59. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_setscheduler_uclamp);
  60. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_task_cpu);
  61. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_try_to_wake_up);
  62. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_try_to_wake_up_success);
  63. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork);
  64. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_wake_up_new_task);
  65. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_new_task_stats);
  66. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_flush_task);
  67. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_tick_entry);
  68. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule);
  69. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_cpu_starting);
  70. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_cpu_dying);
  71. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_account_irq);
  72. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_place_entity);
  73. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_build_perf_domains);
  74. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_fits_cpu);
  75. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_cpu_capacity);
  76. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_misfit_status);
  77. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rto_next_cpu);
  78. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed);
  79. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target);
  80. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_getaffinity);
  81. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);
  82. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_before_do_sched_yield);
  83. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork_init);
  84. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond);
  85. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug);
  86. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_exec);
  87. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
  88. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_thermal_stats);
  89. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_stat_runtime_rt);
  90. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_wake_up_sync);
  91. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_wake_flags);
  92. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb);
  93. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu);
  94. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_pelt_multiplier);
  95. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq);
  96. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_comm);
  97. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_setaffinity_early);
  98. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_process_tick_gran);
  99. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_task_time);
  100. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dup_task_struct);
  101. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_irqtime_account_process_tick);
  102. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg);
  103. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_effective_cpu_util);
  104. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmput);
  105. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uclamp_validate);
  106. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr);
  107. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait);
  108. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_attach_entity_load_avg);
  109. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_detach_entity_load_avg);
  110. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_sum);
  111. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg);
  112. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg);
  113. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair);
  114. EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg);
  115. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_prio_inheritance);
  116. EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_prio_restore);