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:
Raghavendra Rao Ananta 2020-08-17 14:28:36 -07:00
commit 7c6e5b50c6

View file

@ -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