ANDROID: cpuidle-psci: Add vendor hook for cpuidle psci enter and exit
Add vendor hook for cpuidle to allow vendor modules for s2idle enhancements. Bug: 190353898 Change-Id: I02b1393e6119e32eae96010ba5951405dbdada2b Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
This commit is contained in:
@@ -61,6 +61,7 @@
|
|||||||
#include <trace/hooks/v4l2mc.h>
|
#include <trace/hooks/v4l2mc.h>
|
||||||
#include <trace/hooks/scmi.h>
|
#include <trace/hooks/scmi.h>
|
||||||
#include <trace/hooks/user.h>
|
#include <trace/hooks/user.h>
|
||||||
|
#include <trace/hooks/cpuidle_psci.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Export tracepoints that act as a bare tracehook (ie: have no trace event
|
* Export tracepoints that act as a bare tracehook (ie: have no trace event
|
||||||
@@ -318,3 +319,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_force_compatible_post);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_user);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_user);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_enter);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_exit);
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
|
||||||
#include <asm/cpuidle.h>
|
#include <asm/cpuidle.h>
|
||||||
|
#include <trace/hooks/cpuidle_psci.h>
|
||||||
|
|
||||||
#include "cpuidle-psci.h"
|
#include "cpuidle-psci.h"
|
||||||
#include "dt_idle_states.h"
|
#include "dt_idle_states.h"
|
||||||
@@ -67,6 +68,8 @@ static int __psci_enter_domain_idle_state(struct cpuidle_device *dev,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
trace_android_vh_cpuidle_psci_enter(dev, s2idle);
|
||||||
|
|
||||||
/* Do runtime PM to manage a hierarchical CPU toplogy. */
|
/* Do runtime PM to manage a hierarchical CPU toplogy. */
|
||||||
rcu_irq_enter_irqson();
|
rcu_irq_enter_irqson();
|
||||||
if (s2idle)
|
if (s2idle)
|
||||||
@@ -88,6 +91,8 @@ static int __psci_enter_domain_idle_state(struct cpuidle_device *dev,
|
|||||||
pm_runtime_get_sync(pd_dev);
|
pm_runtime_get_sync(pd_dev);
|
||||||
rcu_irq_exit_irqson();
|
rcu_irq_exit_irqson();
|
||||||
|
|
||||||
|
trace_android_vh_cpuidle_psci_exit(dev, s2idle);
|
||||||
|
|
||||||
cpu_pm_exit();
|
cpu_pm_exit();
|
||||||
|
|
||||||
/* Clear the domain state to start fresh when back from idle. */
|
/* Clear the domain state to start fresh when back from idle. */
|
||||||
|
25
include/trace/hooks/cpuidle_psci.h
Normal file
25
include/trace/hooks/cpuidle_psci.h
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
|
#undef TRACE_SYSTEM
|
||||||
|
#define TRACE_SYSTEM cpuidle_psci
|
||||||
|
#define TRACE_INCLUDE_PATH trace/hooks
|
||||||
|
#if !defined(_TRACE_HOOK_CPUIDLE_PSCI_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||||
|
#define _TRACE_HOOK_CPUIDLE_PSCI_H
|
||||||
|
#include <linux/tracepoint.h>
|
||||||
|
#include <trace/hooks/vendor_hooks.h>
|
||||||
|
/*
|
||||||
|
* Following tracepoints are not exported in tracefs and provide a
|
||||||
|
* mechanism for vendor modules to hook and extend functionality
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct cpuidle_device;
|
||||||
|
DECLARE_HOOK(android_vh_cpuidle_psci_enter,
|
||||||
|
TP_PROTO(struct cpuidle_device *dev, bool s2idle),
|
||||||
|
TP_ARGS(dev, s2idle));
|
||||||
|
|
||||||
|
DECLARE_HOOK(android_vh_cpuidle_psci_exit,
|
||||||
|
TP_PROTO(struct cpuidle_device *dev, bool s2idle),
|
||||||
|
TP_ARGS(dev, s2idle));
|
||||||
|
|
||||||
|
#endif /* _TRACE_HOOK_CPUIDLE_PSCI_H */
|
||||||
|
/* This part must be outside protection */
|
||||||
|
#include <trace/define_trace.h>
|
Reference in New Issue
Block a user