All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky at gmail.com>
To: powertop@lists.01.org
Subject: Re: [Powertop] segfault on Sheevaplug (ARM Kirkwood)
Date: Mon, 21 May 2012 00:57:46 +0300	[thread overview]
Message-ID: <20120520215746.GA3585@swordfish> (raw)
In-Reply-To: 1337511718.10611.YahooMailNeo@web160306.mail.bf1.yahoo.com

[-- Attachment #1: Type: text/plain, Size: 5918 bytes --]

On (05/20/12 04:01), Rui DaCosta wrote:
>    Thanks,
>    this has gotten past the issue. I now get:
>    PowerTOP v2.0 needs the kernel to support the 'perf' subsystem
>    as well as support for trace points in the kernel:
> 
>    CONFIG_PERF_EVENTS=y
>    CONFIG_PERF_COUNTERS=y
>    CONFIG_TRACEPOINTS=y
>    CONFIG_TRACING=y
> 
>    all these except CONFIG_PERF_COUNTERS are already set, so i'll need to see
>    if i can get a kernel built with that option on.
>

>
>    Will this patch make it into trunk?
>

Well, it depends. The patch itself is quite innocent -- assuming default
number of processors being 1 instead of -1 will not do any harm. Of course,
such default value could be considered as debugging friendly, yet segfault
is still no good.

We'll see what project owners think about that.

	-ss

>    Many thanks.
> 
>    ──────────────────────────────────────────────────────────────────────────
> 
>    From: Sergey Senozhatsky <sergey.senozhatsky(a)gmail.com>
>    To: Rui DaCosta <ruidc(a)yahoo.com>
>    Cc: Arjan van de Ven <arjan(a)linux.intel.com>; Chris Ferron
>    <chris.e.ferron(a)linux.intel.com>; powertop(a)lists.01.org
>    Sent: Sunday, 20 May 2012, 11:34
>    Subject: Re: [Powertop] segfault on Sheevaplug (ARM Kirkwood)
>    On (05/20/12 02:19), Rui DaCosta wrote:
>    > Sure and thanks,
>    > (v1.13 worked fine btw)
>    > Processor    : Feroceon 88FR131 rev 1 (v5l)
>    > BogoMIPS    : 1191.11
>    > Features    : swp half thumb fastmult edsp
>    > CPU implementer    : 0x56
>    > CPU architecture: 5TE
>    > CPU variant    : 0x2
>    > CPU part    : 0x131
>    > CPU revision    : 1
>    >
>    > Hardware    : Marvell SheevaPlug Reference Board
>    > Revision    : 0000
>    > Serial        : 0000000000000000
>    >
>    >
> 
>    Thanks,
> 
>    Well, that's the problem. Current cpu info parser doesn't understand your
>    cpuinfo format. It awaits for sane values on special places. For example,
>    word
>    "processor" should be followed by a number, not model name.
> 
>        processor    : 2
>        vendor_id    : GenuineIntel
>        cpu family    : 6
>        model        : 37
>        bogomips    : 4522.66
> 
>    while cpuinfo on your system is totally different.
> 
>    the following is untested patch (I'm a bit skeptical) plus I don't have
>    ARM device for testing.
> 
>    ---
> 
>    src/cpu/cpu.cpp |  26 ++++++++++++++------------
>    1 file changed, 14 insertions(+), 12 deletions(-)
> 
>    diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
>    index 09d4a2d..143e18c 100644
>    --- a/src/cpu/cpu.cpp
>    +++ b/src/cpu/cpu.cpp
>    @@ -225,7 +225,7 @@ void enumerate_cpus(void)
>        ifstream file;
>        char line[1024];
> 
>    -    int number = -1;
>    +    int number = 1;
>        char vendor[128];
>        int family = 0;
>        int model = 0;
>    @@ -236,7 +236,6 @@ void enumerate_cpus(void)
>            return;
> 
>        while (file) {
>    -
>            file.getline(line, sizeof(line));
>            if (strncmp(line, "vendor_id\t",10) == 0) {
>                char *c;
>    @@ -247,42 +246,45 @@ void enumerate_cpus(void)
>                        c++;
>                    strncpy(vendor,c, 127);
>                }
>    -        }
>    -        if (strncmp(line, "processor\t",10) == 0) {
>    +        } else if (strncmp(line, "processor\t",10) == 0) {
>                char *c;
>                c = strchr(line, ':');
>                if (c) {
>                    c++;
>                    number = strtoull(c, NULL, 10);
>                }
>    -        }
>    -        if (strncmp(line, "cpu family\t",11) == 0) {
>    +        } else if (strncmp(line, "Processor\t",10) == 0) {
>    +            char *c;
>    +            c = strchr(line, ':');
>    +            if (c) {
>    +                c++;
>    +                if (*c == ' ')
>    +                    c++;
>    +                strncpy(vendor, c, 127);
>    +            }
>    +        }  else if (strncmp(line, "cpu family\t",11) == 0) {
>                char *c;
>                c = strchr(line, ':');
>                if (c) {
>                    c++;
>                    family = strtoull(c, NULL, 10);
>                }
>    -        }
>    -        if (strncmp(line, "model\t",6) == 0) {
>    +        } else if (strncmp(line, "model\t",6) == 0) {
>                char *c;
>                c = strchr(line, ':');
>                if (c) {
>                    c++;
>                    model = strtoull(c, NULL, 10);
>                }
>    -        }
>    -        if (strncasecmp(line, "bogomips\t", 9) == 0) {
>    +        } else if (strncasecmp(line, "bogomips\t", 9) == 0) {
>                handle_one_cpu(number, vendor, family, model);
>                set_max_cpu(number);
>            }
>        }
> 
>    -
>        file.close();
> 
>        perf_events = new perf_power_bundle();
>    -
>        if (!perf_events->add_event("power:cpu_idle")){
>            perf_events->add_event("power:power_start");
>            perf_events->add_event("power:power_end");

             reply	other threads:[~2012-05-20 21:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-20 21:57 Sergey Senozhatsky [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-05-22 22:08 [Powertop] segfault on Sheevaplug (ARM Kirkwood) Rui DaCosta
2012-05-22 21:58 Rui DaCosta
2012-05-22 21:23 Sergey Senozhatsky
2012-05-22 20:50 Thomas Spura
2012-05-22 19:35 Rui DaCosta
2012-05-22 19:19 Rui DaCosta
2012-05-21 23:09 Chris Ferron
2012-05-20 22:17 Sergey Senozhatsky
2012-05-20 22:05 Sergey Senozhatsky
2012-05-20 19:32 Rui DaCosta
2012-05-20 11:01 Rui DaCosta
2012-05-20  9:34 Sergey Senozhatsky
2012-05-20  9:19 Rui DaCosta
2012-05-20  9:05 Sergey Senozhatsky
2012-05-20  8:41 Rui DaCosta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120520215746.GA3585@swordfish \
    --to=powertop@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.