Architected timer not being used by default on Arndale

Bug #1166892 reported by Steve Capper
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Arndale
Fix Released
Undecided
Unassigned
Linaro Linux Baseline
Fix Released
Undecided
Andrey Konovalov
linaro-landing-team-samsung
Fix Released
Medium
Tushar Behera

Bug Description

Hi,
The Exynos 5250 includes an architected timer which is on core and very cheap to read.

This appears on dmesg on bootup, but is not in use by default:
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
mct-frc

We can manually enable the architected timer via:
# echo "arch_sys_counter" > /sys/devices/system/clocksource/clocksource0/current_clocksource
Switching to clocksource arch_sys_counter

Enabling the architected timer can lead to a significant performance improvement for timer sensitive workloads such as TCP/IP.

It turns out that both arch_sys_counter and mct-frc have a rating of 400.
On bootup, arch_sys_counter is initialised first then the clocksource changes to mct-frc when that initialises later on.

If the rating of mct-frc is reduced below 400 (in arch/arm/mach-exynos/mct.c) , then arch_sys_counter becomes the default.

Best,
--
Steve

(This applies to the latest linaro tracking tree).

Fathi Boudra (fboudra)
Changed in linaro-linux-baseline:
milestone: none → 13.04
assignee: nobody → Andrey Konovalov (andrey-konovalov)
Changed in linaro-landing-team-samsung:
assignee: nobody → Tushar Behera (tusharbehera)
milestone: none → 2013.04
importance: Undecided → Medium
Revision history for this message
Tushar Behera (tusharbehera) wrote :

If there is a way to measure the performance difference with arch_sys_counter is available, that would be better.

The changes regarding mct-frc would be committed with 3.9-rc7 release.

Changed in linaro-landing-team-samsung:
status: New → In Progress
Revision history for this message
Ali (asaidi) wrote :

You can see the impact by running netperf:

echo "mct-frc" > /sys/devices/system/clocksource/clocksource0/current_clocksource
netperf -t TCP_STREAM -H 127.0.0.1 -T 1,1 -j -l 30 -- -m 64 -D

echo "arch_sys_counter" > /sys/devices/system/clocksource/clocksource0/current_clocksource

netperf -t TCP_STREAM -H 127.0.0.1 -T 1,1 -j -l 30 -- -m 64 -D

Changed in linaro-landing-team-samsung:
status: In Progress → Fix Committed
Changed in linaro-linux-baseline:
status: New → Fix Released
Changed in linaro-landing-team-samsung:
status: Fix Committed → Fix Released
Changed in arndale:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.