From b093be62e8246eceba15376a5ff1625e781f61af Mon Sep 17 00:00:00 2001 From: Satya Durga Srinivasu Prabhala Date: Mon, 11 Jul 2016 13:03:22 -0700 Subject: [PATCH] ARM: dts: msm: set rcu_expedited for msm chisets While working on PCMark Photo Editing regression, found that binder transactions sometimes take really long time 70+ms. The reason for these long durations was cgroup write calling percpu_down_write, which in turn calls synchronize_rcu. This issue is very generic and impacts multiple real-world use-cases involving all binder transactions. - All the launch applications also show it. - Systrace below is captured during launch of helloworld application. Systrace clearly shows the regression: Thread of interest: 562 Binder:528_1-562 ( 528) [000] ...1 57.877862: \ tracing_mark_write: B|528|Write Binder:528_1-562 ( 528) [000] .... 57.877905: \ __cgroup_procs_write.isra.30: percpu_down_write --> begin Binder:528_1-562 ( 528) [003] .... 57.926479: \ __cgroup_procs_write.isra.30: percpu_down_write --> end To mitigate these performance issues, set rcu_expedited to use expedited grace-period primitives. CRs-Fixed: 1025554 Change-Id: I1a6e694591f41d6c3449e3f3d976650df93c5645 Signed-off-by: Satya Durga Srinivasu Prabhala --- arch/arm/boot/dts/qcom/msm8996.dtsi | 2 +- arch/arm/boot/dts/qcom/msmcobalt.dtsi | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/qcom/msm8996.dtsi b/arch/arm/boot/dts/qcom/msm8996.dtsi index d81cc3dd14d8..2da89bd9ac6e 100644 --- a/arch/arm/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996.dtsi @@ -42,7 +42,7 @@ chosen { stdout-path = "serial0"; - bootargs = "sched_enable_hmp=1 sched_enable_power_aware=1"; + bootargs = "sched_enable_hmp=1 sched_enable_power_aware=1 rcupdate.rcu_expedited=1"; }; psci { diff --git a/arch/arm/boot/dts/qcom/msmcobalt.dtsi b/arch/arm/boot/dts/qcom/msmcobalt.dtsi index 8d778ac3f104..99debfb0f4a0 100644 --- a/arch/arm/boot/dts/qcom/msmcobalt.dtsi +++ b/arch/arm/boot/dts/qcom/msmcobalt.dtsi @@ -34,6 +34,7 @@ chosen { stdout-path = "serial0"; + bootargs = "rcupdate.rcu_expedited=1"; }; cpus {