Wheezy Kernel (amd64) 3.2 perf

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Wheezy Kernel (amd64) 3.2 perf

Beitrag von alexander_ro » 07.04.2013 21:57:53

Hi Mädels, Jungs ... :)

Ich versuche mich gerade mal wieder mit Performance Messung. Dazu wollte ich das Kernel Tool perf benutzen. Im Moment komm ich da aber irgendwie nicht weiter. Wenn ich mit

Code: Alles auswählen

perf record ./Programm

die Daten aufzeichnen um dann mit

Code: Alles auswählen

perf annotate ./Programm
die Messergebnisse zusammen mit dem Source Code angezeigt zu bekommen. Erhalte ich immer die Fehlermeldung

Code: Alles auswählen

The perf.data file has no samples!
Ich habe bereits alle möglichen Beispiele mit den verschiedensten Optionen versucht aber es bleibt immer bei der gleichen Fehlermeldung.

Grüße
Alexander

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wheezy Kernel (amd64) 3.2 perf

Beitrag von Cae » 08.04.2013 01:05:02

Kann ich bestaetigen. perf report --stdio funktioniert und spuckt plausible Ergebnisse aus, also muss die perf.data wohl intakt sein. [1] schreibt etwas von Broken?, der Eintrag ist von 2013-02-17, also nicht allzulange her.

Gruss Cae

[1] https://en.wikibooks.org/wiki/Linux_App ... f_annotate
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: Wheezy Kernel (amd64) 3.2 perf

Beitrag von alexander_ro » 08.04.2013 12:22:44

Ich habe mal ein bisschen im Sourcecode des Debian Kernel gestöbert und bin da auf was gestoßen. Die Konstante »PERF_RECORD_SAMPLE« enthält den Text »SAMPLE« dieser kommt aber nicht in der Datei »perf.data« vor. Stellt sich jetzt nur die Frage warum das so ist?

[Edit]
Das stimmte natürlich nicht wie auf die schnelle gedacht ... :roll:
»PERF_RECORD_SAMPLE = 9« an dieser stelle. Hm ...
[/Edit]

Datei »linux-source-3.2/tools/perf/builtin-annotate.c«

Code: Alles auswählen

        total_nr_samples = 0;
        list_for_each_entry(pos, &session->evlist->entries, node) {
                struct hists *hists = &pos->hists;
                u32 nr_samples = hists->stats.nr_events[PERF_RECORD_SAMPLE];

                if (nr_samples > 0) {
                        total_nr_samples += nr_samples;
                        hists__collapse_resort(hists);
                        hists__output_resort(hists);
                        hists__find_annotations(hists, pos->idx,
                                                session->evlist->nr_entries);
                }
        }

        if (total_nr_samples == 0) {
                ui__warning("The %s file has no samples!\n", input_name);
                goto out_delete;

Grüße
Alexander

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wheezy Kernel (amd64) 3.2 perf

Beitrag von Cae » 08.04.2013 14:40:41

Aeh, wtf? Ich hab' gerade das Ding nochmal mit Debugging-Informationen gebaut um mir das im Debugger anzuschauen... und es verhaelt sich dort ganz normal. :o Selbst eigenstaendig gestartet. Ich sehe da einen objectdump-Output mit Codezeilen dazwischen, also eine kombinierte C/ASM-Ansicht. Davon sind einige Anweisungen hervorgehoben und man kann herumscrollen. Alles scheint zu tun.

Das Ganze funktioniert auch ohne DEB_BUILD_OPTIONS=debug, und vor allem mit der offiziellen Installation aus dem Binaer-Repo... selbst nachdem ich die build-dep-Abhaengigkeiten wieder entfernt habe. Keinerlei Spuren von "no samples"-Meldungen... :?

Ein bisschen verdaechtig kommt mir Debianlibsysfs2 vor, was neben Debianasciidoc die einzige Build-Abhaengigkeit ist, die keine lib*-dev ist. Vielleicht kann jemand mit einem noch kaputten perf Debianlibsysfs2 nachinstallieren und gucken, ob's dann geht?

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: Wheezy Kernel (amd64) 3.2 perf

Beitrag von alexander_ro » 08.04.2013 15:05:15

Ich habe die libsysfs2 mal installiert hat aber keinerlei Einfluss auf das Problem.

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: Wheezy Kernel (amd64) 3.2 perf

Beitrag von alexander_ro » 09.04.2013 11:22:21

Ist ja nun nicht so das die Samples mit 9 nicht vorhanden wären:

Code: Alles auswählen

0x2368 [0x38]: event: 9
.
. ... raw event: size 56 bytes
.  0000:  09 00 00 00 01 00 38 00 dd b3 02 81 ff ff ff ff  ......8.........
.  0010:  6e 5e 00 00 6e 5e 00 00 19 23 e1 b1 31 ef 00 00  n^..n^...#..1...
.  0020:  03 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  ................
.  0030:  04 00 00 00 00 00 00 00                          ........
.
3 262996716757785 0x2368 [0x38]: PERF_RECORD_SAMPLE(IP, 1): 24174/24174: 0xffffffff8102b3dd period: 23 addr: 0
 ... thread: perf_3.2:24174
 ...... dso: [kernel.kallsyms]
Falls jemanden interessiert wie man diese Daten erhält:

Code: Alles auswählen

perf annotate -D
Etwas seltsam das ganze.

Grüße
Alexander

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: Wheezy Kernel (amd64) 3.2 perf

Beitrag von alexander_ro » 10.04.2013 11:25:16

Ich hab es mit dem neu Compilieren des Kernel mit der Debian Config zum laufen bekommen. Nur die perf Tools neu zu übersetzen hat nichts gebracht. Aber die perf Tools sind meiner Meinung nach auch im Kernel 3.2 nicht wirklich brauchbar für Anwendungsentwickler.

Nachdem es in Wheezy den Oprofiler nicht mehr als Paket gibt werde ich den halt wieder selber bauen. Wie es nach einem Artikel im Linux-Magazin aussieht bin ich nicht der einzige der das so sieht.
http://www.linux-magazin.de/Ausgaben/20 ... klungs-Set

Danke für die Hilfe ... :)
Alexander

Antworten