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.orgwrote:
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