Handwritten Text Recognition for manuscripts and early printed texts
LCE13: big.LITTLE IKS upstreaming status review
1. In Kernel Switcher: Upstreaming Status and
How-To
web: www.linaro.org
Presenter: Nicolas Pitre & Mathieu Poirier
nicolas.pitre@linaro.org
mathieu.poirier@linaro.org
2. Slide 2
Status on the Upstreaming Process
● Core Multi-Cluster Power Management (MCPM) code:
○ Prerequisite infrastructure for IKS and GTS (HMP)
○ LWN coverage: http://lwn.net/Articles/539082
○ Merged Upstream in v3.10-rc1
● Platform specific MCPM backends:
○ Versatile Express RTSM
○ Versatile Express TC2
○ Generic PSCI backend
www.linaro.org email: contactus@linaro.org
3. Slide 2
Status on the Upstreaming Process (2)
● Versatile Express RTSM:
○ Includes a driver for the CCI400.
○ Upstream merging queued for v3.11-rc1 via ARM-
SOC.
● Generic PSCI backend:
○ Patches by Achin Gupta @ ARM.
○ Currently available in the Linaro kernel tree.
www.linaro.org email: contactus@linaro.org
4. Slide 2
Status on the Upstreaming Process (3)
● Versatile Express TC2:
○ Includes a driver for SPC.
○ Patches published for the v3.11 merge window.
○ Major rework on the SPC driver needed after public
review.
● Others ???
www.linaro.org email: contactus@linaro.org
5. Slide 2
Status on the Upstreaming Process (4)
● MPIDR linearisation:
○ Prerequisite infrastructure for IKS and cpuidle on big.
LITTLE.
○ Patches by Lorenzo Pieralisi @ ARM.
○ Upstream merging queued for v3.11-rc1 via RMK's
devel-stable tree.
● big.LITTLE cpufreq core driver:
○ Merged upstream in v3.10-rc1.
○ Requires "glue" drivers for specific platforms.
○ TC2 glue driver has SPC driver as prerequisite.
www.linaro.org email: contactus@linaro.org
6. Slide 2
Status on the Upstreaming Process (5)
● In-Kernel Switcher (IKS):
○ Hard prerequisites will be merged in v3.11-rc1.
○ Patches to be posted for public review after v3.11-rc1
is out.
www.linaro.org email: contactus@linaro.org
7. Slide 2
Porting IKS to Your Platform
● Requirements:
○ MCPM backend for your platform.
○ big.LITTLE cpufreq glue driver for your platform.
● IKS porting is not different from HMP porting:
○ They share the same low level infrastructure.
○ IKS and HMP solutions are made of generic code on
top.
www.linaro.org email: contactus@linaro.org
8. Slide 2
Tuning IKS on Your Platform
● All tuning is done at the CPUFREQ governor level.
● IKS will work with any governor for as long as they can
register with the CPUFREQ core.
● Linaro's tuning and optimization efforts have been
concentrating on the interactive governor.
● Feel free to add your own governor or make modifications
to the existing ones.
www.linaro.org email: contactus@linaro.org
9. Slide 2
Start with the A15 configuration
● Start benchmarking with a system where only the A15s
are configured and A7s switched off.
● An A15 configuration is the best the platform can do !
● From there power and performance numbers can be used
for IKS benchmarking.
● How do you know if the A15 configuration is tuned
optimally ?
○ A: If IKS starts yielding better numbers then the A15
configuration needs to be optimized further.
○ It is an iterative process.
www.linaro.org email: contactus@linaro.org
10. Slide 2
Tuning the Interactive Governor (1)
● The "target_loads"
○ Set frequency based on desired CPU load.
○ Very likely the first thing to set.
○ Can be hard to understand at first glance.
● Examples:
○ 85
○ 85 1000000:97
○ 85 800000:92 1000000:97
www.linaro.org email: contactus@linaro.org
11. Slide 2
Tuning the Interactive Governor (2)
● The "hispeeds" - probably the second thing to look at.
● Circumvent "target_loads" to give better response.
● Three tuneables:
○ go_hispeed_load
○ go_hispeed_freq
○ go_hispeed_delay
● Don't forget "min_sample_time" !
www.linaro.org email: contactus@linaro.org
12. Slide 2
Tuning the Interactive Governor (3)
● The "timer_rate": How often is a re-evaluation of the
system load performed (when not idle).
● One condition (not mandatory):
timer_rate <=
min(above_hispeed_delay, min_samble_time);
● If the above is not respected the system is not tuned
optimally, leading to a loss of performance.
www.linaro.org email: contactus@linaro.org
13. Slide 2
Tuning the Interactive Governor (4)
● Other settings we haven't talked about:
○ timer_slack
○ boost
○ boostpulse
○ boostpulse_duration
● Minsung Kim introduced the possibility to associate a
"above_hispeed_delay" with a frequency range in:
"f4ad161 cpufreq: interactive: allow arbitrary speed / delay mappings"
www.linaro.org email: contactus@linaro.org
14. Slide 3
Question and Comments ?
www.linaro.org email: contactus@linaro.org
Nicolas Pitre
Dave Martin
Viresh Kumar
Mathieu Poirier
Amit Kucheria
Serge Broslavsky
Vishal Bhoj
Naresh Kamboju
Ryan Harkin
John (Tixy) Medhurst
Many others from ARM Ltd.
Contributors to this project: