summaryrefslogtreecommitdiff
path: root/include/trace
diff options
context:
space:
mode:
authorPavankumar Kondeti <pkondeti@codeaurora.org>2017-10-16 14:09:29 +0530
committerMichael Bestas <mkbestas@lineageos.org>2019-12-23 23:43:40 +0200
commit5c43a2afb87ea44e4d52585989a76b1e6a2e6ce6 (patch)
tree21e47dbfdfdc56c4aac8f476c77e8f3532f733a7 /include/trace
parent3d6ed948d991660254494856baabbf03e1915751 (diff)
core_ctl: Consider high irq loaded CPU as busy
Currently a CPU is considered as busy if it's utilization in the last window exceeds busy threshold. A CPU loaded with hardirqs/softirqs does not necessarily have high utilization. Isolating such CPUs may hurt performance as it involves waking up the CPU frequently from deep c-state. Prevent isolating high irq loaded CPUs by considering them as busy. Change-Id: I169b69f6003eb59a126c8a16b67b65be2aa7af40 Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/sched.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
index 8fd96aebfdee..73cd7e502d4c 100644
--- a/include/trace/events/sched.h
+++ b/include/trace/events/sched.h
@@ -1373,16 +1373,18 @@ TRACE_EVENT(core_ctl_set_busy,
__field(u32, busy)
__field(u32, old_is_busy)
__field(u32, is_busy)
+ __field(bool, high_irqload)
),
TP_fast_assign(
__entry->cpu = cpu;
__entry->busy = busy;
__entry->old_is_busy = old_is_busy;
__entry->is_busy = is_busy;
+ __entry->high_irqload = sched_cpu_high_irqload(cpu);
),
- TP_printk("cpu=%u, busy=%u, old_is_busy=%u, new_is_busy=%u",
+ TP_printk("cpu=%u, busy=%u, old_is_busy=%u, new_is_busy=%u high_irqload=%d",
__entry->cpu, __entry->busy, __entry->old_is_busy,
- __entry->is_busy)
+ __entry->is_busy, __entry->high_irqload)
);
TRACE_EVENT(core_ctl_set_boost,