mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
ANDROID: gic-v3: Change GIC v3 vendor hook to restricted
Some of the irq migration paths call chip set affinity, after current CPU is marked offline in cpu_online_mask. These chip set affinity calls do not invoke vendor trace hooks. So, convert gic_v3_set_affinity() vendor hook to a restricted hook, to allow trace hook to be called from these irq migration paths. Bug: 187161770 Change-Id: I8f45536deb1ba1dc6be861ca4fc2b32306a5c50a Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
This commit is contained in:
committed by
Todd Kjos
parent
0dc97b664f
commit
3bd9ad7eb4
@@ -1373,7 +1373,7 @@
|
||||
__traceiter_android_rvh_select_task_rq_rt
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_gic_v3_set_affinity
|
||||
__traceiter_android_rvh_gic_v3_set_affinity
|
||||
__traceiter_android_vh_ipi_stop
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_cpu_idle
|
||||
@@ -1412,7 +1412,7 @@
|
||||
__tracepoint_android_rvh_select_task_rq_rt
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_gic_v3_set_affinity
|
||||
__tracepoint_android_rvh_gic_v3_set_affinity
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_cpu_idle
|
||||
|
||||
@@ -107,7 +107,7 @@ 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_rvh_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);
|
||||
|
||||
@@ -1211,7 +1211,7 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
|
||||
reg = gic_dist_base(d) + offset + (index * 8);
|
||||
val = gic_mpidr_to_affinity(cpu_logical_map(cpu));
|
||||
|
||||
trace_android_vh_gic_v3_set_affinity(d, mask_val, &val, force, gic_dist_base(d));
|
||||
trace_android_rvh_gic_v3_set_affinity(d, mask_val, &val, force, gic_dist_base(d));
|
||||
gic_write_irouter(val, reg);
|
||||
|
||||
/*
|
||||
|
||||
@@ -15,10 +15,11 @@ struct cpumask;
|
||||
DECLARE_HOOK(android_vh_gic_v3_affinity_init,
|
||||
TP_PROTO(int irq, u32 offset, u64 *affinity),
|
||||
TP_ARGS(irq, offset, affinity));
|
||||
DECLARE_HOOK(android_vh_gic_v3_set_affinity,
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_gic_v3_set_affinity,
|
||||
TP_PROTO(struct irq_data *d, const struct cpumask *mask_val,
|
||||
u64 *affinity, bool force, void __iomem *base),
|
||||
TP_ARGS(d, mask_val, affinity, force, base));
|
||||
TP_ARGS(d, mask_val, affinity, force, base),
|
||||
1);
|
||||
|
||||
/* macro versions of hooks are no longer required */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user