RE: opcontrol does not create results

"Lentes, Bernd" <[email protected]>
Newsgroups gmane.linux.oprofile
Message-ID <[email protected]>
William wrote:
>
> >
> >
> >
>
>
> You might take a look at
> http://people.redhat.com/wcohen/Fedora12OprofileTutorial.txt and
> use the following to get a better idea what it is doing in __do_softirq:
>
> opreport --include-symbols=__do_softirq --details

idcc-devel:~ # opreport -l --include-symbols=__do_softirq --details --image-path=/usr/lib/debug/boot/

warning: /af_packet could not be found.
...
warning: /xt_tcpudp could not be found.

CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
vma      samples  %        image name               app name                 symbol name
ffffffff8013a83b 4374     24.2676  vmlinux-2.6.16.60-0.103.1-smp.debug update-status            __do_softirq
  ffffffff8013a885 4374     100.000
ffffffff8013a83b 4204     23.3245  vmlinux-2.6.16.60-0.103.1-smp.debug transact                 __do_softirq
  ffffffff8013a885 4204     100.000
ffffffff8013a83b 2994     16.6112  vmlinux-2.6.16.60-0.103.1-smp.debug mono                     __do_softirq
  ffffffff8013a885 2994     100.000
ffffffff8013a83b 1543      8.5608  vmlinux-2.6.16.60-0.103.1-smp.debug vmlinux-2.6.16.60-0.103.1-smp.debug __do_softirq
  ffffffff8013a885 1543     100.000
ffffffff8013a83b 991       5.4982  vmlinux-2.6.16.60-0.103.1-smp.debug parse-metadata           __do_softirq
  ffffffff8013a885 991      100.000
ffffffff8013a83b 932       5.1709  vmlinux-2.6.16.60-0.103.1-smp.debug sshd                     __do_softirq
  ffffffff8013a885 932      100.000
ffffffff8013a83b 640       3.5508  vmlinux-2.6.16.60-0.103.1-smp.debug resolve-dependencies     __do_softirq
  ffffffff8013a885 640      100.000
ffffffff8013a83b 464       2.5743  vmlinux-2.6.16.60-0.103.1-smp.debug hald-addon-storage       __do_softirq
  ffffffff8013a885 464      100.000
ffffffff8013a83b 298       1.6534  vmlinux-2.6.16.60-0.103.1-smp.debug mysqld                   __do_softirq
  ffffffff8013a885 298      100.000
ffffffff8013a83b 271       1.5036  vmlinux-2.6.16.60-0.103.1-smp.debug top                      __do_softirq
  ffffffff8013a885 271      100.000

No new information for me.
>
> Maybe use the opannotate to see what lines of code in __do_softirq are
> getting the samples.
>

Hi,

i invoked "opannotate -s -o annotate -i __do_softirq -d /usr/src/linux/" and afterwards "less annotate/usr/src/linux-2.6.16.60-0.103.1/kernel/softirq.c".
What I got:

               :asmlinkage void __do_softirq(void)
               :{ /* __do_softirq total:  18024 100.000 */
               :        struct softirq_action *h;
               :        __u32 pending;
               :        int max_restart = MAX_SOFTIRQ_RESTART;
               :        int cpu;
               :
               :        pending = local_softirq_pending();
               :
               :        local_bh_disable();
               :        cpu = smp_processor_id();
               :restart:
               :        /* Reset the pending bitmask before enabling irqs */
               :        set_softirq_pending(0);
               :
               :        local_irq_enable();
               :
               :        h = softirq_vec;
               :
               :        do {
 18024 100.000 :                if (pending & 1) {
               :                        h->action(h);
               :                        rcu_bh_qsctr_inc(cpu);
               :                }
               :                h++;
               :                pending >>= 1;
               :        } while (pending);
               :
               :        local_irq_disable();
               :
               :        pending = local_softirq_pending();
               :        if (pending && --max_restart)
               :                goto restart;
               :
               :        if (pending)
               :                wakeup_softirqd();
               :
               :        __local_bh_enable();
               :}

and at the end:

/*
 * Total samples for file : "kernel/softirq.c"
 *
 *  18024 100.000
 */


/*
 * Command line: opannotate -s -o annotate -i __do_softirq -d /usr/src/linux/
 *
 * Interpretation of command line:
 * Output annotated source file with samples
 * Output all files
 *
 * CPU: CPU with timer interrupt, speed 0 MHz (estimated)
 * Profiling through timer interrupt
 */


What I understand is that __do_softirq has 18024 samples and all the samples spent their time in
       do {
                if (pending & 1) {
                        h->action(h);
                        rcu_bh_qsctr_inc(cpu);
                }
                h++;
                pending >>= 1;
        } while (pending);

Having a look at "Understanding the Linux Kernel" I find:
" For each bit set in the pending local variable, it executes the corresponding softirq function; recall that the function address for the softirq with index n is stored in softirq_vec[n]->action."
So here is where the respective softirq is startet. But which one ? How can I find out that ? Is there e.g. a way to check the variable h or pending ?


Bernd




Helmholtz Zentrum München
Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH)
Ingolstädter Landstr. 1
85764 Neuherberg
www.helmholtz-muenchen.de
Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe
Geschäftsführer: Prof. Dr. Günther Wess, Dr. Nikolaus Blum, Dr. Alfons Enhsen
Registergericht: Amtsgericht München HRB 6466
USt-IdNr: DE 129521671
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
oprofile-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oprofile-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.