Hello Amit,

Thanks. I have sent the patch (different thread). I replaced "Samsung" with "ARMv7" as this looks more suitable.


- Meraj



On Tue, May 6, 2014 at 12:34 PM, Amit Kucheria <amit.kucheria@linaro.org> wrote:
Hi Mohammad,

Thanks for investigating. Care to send this patch as a diff?

Also, we'll need to come up with a better solution that to add the
"Samsung" string in there before we submit this upstream.

Regards,
Amit

On Tue, May 6, 2014 at 11:06 AM, Mohammad Merajul Islam Molla
<meraj.enigma@gmail.com> wrote:
> Hello,
>
> I tested powertop on Samsung Arndale Board with Ubuntu Saucy Server 14.01
> with custom kernel (config file attached, powertop config options enabled),
> and reported a bug 1316096. Also, I found the other bug 1316096 happening on
> arndale board.
>
> In short, bug 1316096 - Powertop displays "nan" on top [summary] where it
> should show legal value.
>                                          Summary: nan wakeups/second, nan
> GPU ops/seconds, nan VFS ops/sec and -0.0% CPU use <--- displays "nan"
> instead of valid value
>
>        bug 1316096 - Idle stats & Frequency stats pages are empty.
>
> I did some debugging and it seems that the root cause of both the bugs may
> be same. It looks like the parsing code enumerate_cpus()[src/cpu/cpu.cpp]
> called from main.cpp, is expecting /proc/cpuinfo file in a particular format
> which works on Intel but not on ARM.
>
> On Intel, it gets the file in the format expected. However, on ARM on
> Arndale board with saucy server, the file looks as below -
>
> processor       : 0
> model name      : ARMv7 Processor rev 4 (v7l)
> Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
> idiva idivt vfpd32 lpae evtstrm
> CPU implementer : 0x41
> CPU architecture: 7
> CPU variant     : 0x0
> CPU part        : 0xc0f
> CPU revision    : 4
>
> processor       : 1
> model name      : ARMv7 Processor rev 4 (v7l)
> Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
> idiva idivt vfpd32 lpae evtstrm
> CPU implementer : 0x41
> CPU architecture: 7
> CPU variant     : 0x0
> CPU part        : 0xc0f
> CPU revision    : 4
>
> Hardware        : SAMSUNG EXYNOS5 (Flattened Device Tree)
> Revision        : 0000
> Serial          : 0000000000000000
>
> The parsing code which gathers information about cpus, fails to parse this
> file and as a result the vector "all_cpus" remains empty.
>
> I played with it a bit more and added a few lines to get a work around as
> follows -
>
> in function enumarate_cpus():
>
>  if (strncmp(line, "processor\t",10) == 0) {
>                          char *c;
>                          c = strchr(line, ':');
>                         if (c) {
>                                  c++;
>                                  number = strtoull(c, NULL, 10);
>                                  handle_one_cpu(number, "Samsung", 0, 0); [
> line added]
>                                  set_max_cpu(number); [ line added]
>                          }
>                }
>
> With this changes, idle stat and frequency pages were populated and summary
> was shown properly as noted below -
>
> Summary: 392.6 wakeups/second,  0.0 GPU ops/seconds, 0.0 VFS ops/sec and
> 4.0% CPU use
>
> I think due to this bug, the information shown on summary page was also not
> correct and some other info displayed by powertop may be incorrect too.
>
> Please comment.
>
> --
> Thanks,
> -Meraj
>
>
>
>
>
>