mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
arch: arm64: Add RCU related configs for lahaina
Enable RCU NOCB_CPU and FAST_NO_HZ options for the lahaina. These configs
are needed to avoid frequent cpu wake up for processing rcu callbacks.
Whenever LPM governor driver has requested for sleep length
tick_nohz_get_sleep_length tries to find the next event from
tick_nohz_next_event function.
static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
{
...
if (rcu_needs_cpu(basemono, &next_rcu) || arch_needs_cpu() ||
irq_work_needs_cpu() || local_timer_softirq_pending()) {
next_tick = basemono + TICK_NSEC;
} else {
tick_nohz_next_event calls rcu_needs_cpu to find whether future
non-offloaded RCU-related work need to be done by the current CPU
or not. If any non-offloaded future callbacks are present rcu
framework requests the cpu to wake up for every tick period to
process the callbacks.
When CONFIG_FAST_NO_HZ is defined rcu_needs_cpu function checks whether
any callbacks are ready to process or not. If there are no ready
call backs and no non-offloaded callbacks pending for this CPU, RCU
doesn't need the CPU and returns KTIME_MAX for sleep length. Another
important thing is that, if CPU has lazy callbacks or future non-offload
RCU callbacks, rcu framework try to advance those callbacks and allows
the CPU to enter dyntick-idle mode.
RCU_NOCB_CPU config option helps to offload callback invocation from
the set of CPUs to kthread ("rcuox/N") and reduce OS jitter for
aggressive high performance computing workloads.
Change-Id: I47cdd2a3528e3a447a6909bf3f840ee8a3dd4b1e
Signed-off-by: Prasad Sodagudi <[email protected]>
Signed-off-by: Raghavendra Rao Ananta <[email protected]>
This commit is contained in:
parent
487ed773a1
commit
7c6e5b50c6
1 changed files with 3 additions and 0 deletions
|
|
@ -14,6 +14,9 @@ CONFIG_IOMMU_IO_PGTABLE_FAST=y
|
|||
CONFIG_IOMMU_DYNAMIC_DOMAINS=y
|
||||
# CONFIG_IOMMU_IO_PGTABLE_FAST_SELFTEST is not set
|
||||
# CONFIG_IOMMU_IO_PGTABLE_FAST_PROVE_TLB is not set
|
||||
CONFIG_RCU_EXPERT=y
|
||||
CONFIG_RCU_FAST_NO_HZ=y
|
||||
CONFIG_RCU_NOCB_CPU=y
|
||||
CONFIG_QCOM_LLCC_PERFMON=m
|
||||
CONFIG_SCHED_WALT=y
|
||||
CONFIG_QCOM_HYP_CORE_CTL=y
|
||||
|
|
|
|||
Loading…
Reference in a new issue