On Tue, 6 May 2014 12:34:45 +0300
Siarhei Siamashka <siarhei.siamas...@gmail.com> wrote:

> Implemented an automated script for running tests at different
> operating points:
>     https://github.com/ssvb/cpuburn-arm/blob/master/cpufreq-ljt-stress-test

And also added a script to parse the cpufreq tables from the sunxi-3.4
kernel to generate a plot picture via gnuplot:
    https://github.com/ssvb/cpuburn-arm/blob/547c229284f3/gnuplot-sunxi-cpufreq

Using the cpufreq-ljt-stress-test script I have found the quasi-stable
pairs of the CPU clock frequency and voltage for my A10-OLinuXino-LIME
to populate the following table:

#define SAFETY_MARGIN 0 /* should be set to at least 25 */
static struct cpufreq_dvfs sun4i_poorlime_dvfs_table[] = {
        {.freq = 1008000000, .volt = 1450 + SAFETY_MARGIN},
        {.freq =  960000000, .volt = 1400 + SAFETY_MARGIN},
        {.freq =  912000000, .volt = 1350 + SAFETY_MARGIN},
        {.freq =  864000000, .volt = 1300 + SAFETY_MARGIN},
        {.freq =  696000000, .volt = 1275 + SAFETY_MARGIN},
        {.freq =  648000000, .volt = 1250 + SAFETY_MARGIN},
        {.freq =  528000000, .volt = 1225 + SAFETY_MARGIN},
        {.freq =  480000000, .volt = 1200 + SAFETY_MARGIN},
        {.freq =  432000000, .volt = 1175 + SAFETY_MARGIN},
        {.freq =  408000000, .volt = 1125 + SAFETY_MARGIN},
        {.freq =  384000000, .volt = 1025 + SAFETY_MARGIN},
        {.freq = 0, .volt = 1000}, /* end of cpu dvfs table */
};

Quasi-stable here means that the cpufreq-ljt-stress-test can run
without failures for something like 10 minutes at each of these
points, but increasing the clock frequency or decreasing the core
voltage makes it fail.

Surely, running longer may reveal that some of these operating points
are actually not stable. And also we can't be sure that libjpeg-turbo is
really the toughest possible workload one can find. So it makes sense to
additionally increase the voltage by at least one extra step (0.025V)
to have some safety margin.

Anyway, the generated plot is attached ('sun4i_poorlime' represents
the A10-OLinuXino-LIME cpufreq table that I tried to make). Anyone
should be able to generate the same picture too by running:

gnuplot-sunxi-cpufreq result.png \
                      arch/arm/mach-sun7i/cpu-freq/cpu-freq.c \
                      arch/arm/plat-sunxi/cpu-freq/cpu-freq-table.c \
                      some_file_with_sun4i_poorlime_dvfs_table.c

-- 
Best regards,
Siarhei Siamashka

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to