diff options
author | Pavankumar Kondeti <pkondeti@codeaurora.org> | 2017-10-16 14:09:29 +0530 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2019-12-23 23:43:40 +0200 |
commit | 5c43a2afb87ea44e4d52585989a76b1e6a2e6ce6 (patch) | |
tree | 21e47dbfdfdc56c4aac8f476c77e8f3532f733a7 /include/trace | |
parent | 3d6ed948d991660254494856baabbf03e1915751 (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.h | 6 |
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, |