mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] tracing/function-graph-tracer: trace the idle tasks
Date: Tue, 17 Feb 2009 19:20:45 +0100	[thread overview]
Message-ID: <20090217182045.GA28195@elte.hu> (raw)
In-Reply-To: <499af874.07a0660a.0de0.1aff@mx.google.com>


* Frederic Weisbecker <fweisbec@gmail.com> wrote:

> When the function graph tracer is activated, it iterates over the task_list
> to allocate a stack to store the return addresses.
> But the per cpu idle tasks are not iterated by using do_each_thread / while_each_thread.
> So we have to iterate on them manually.
> 
> This fixes somes weirdness in the traces and many losses of traces.
> Examples on two cpus:
> 
>  0)   Xorg-4287    |   2.906 us    |              }
>  0)   Xorg-4287    |   3.965 us    |            }
>  0)   Xorg-4287    |   5.302 us    |          }
>  ------------------------------------------
>  0)   Xorg-4287    =>    <idle>-0
>  ------------------------------------------
> 
>  0)    <idle>-0    |   2.861 us    |                        }
>  0)    <idle>-0    |   0.526 us    |                        set_normalized_timespec();
>  0)    <idle>-0    |   7.201 us    |                      }
>  0)    <idle>-0    |   8.214 us    |                    }
>  0)    <idle>-0    |               |                    clockevents_program_event() {
>  0)    <idle>-0    |               |                      lapic_next_event() {
>  0)    <idle>-0    |   0.510 us    |                        native_apic_mem_write();
>  0)    <idle>-0    |   1.546 us    |                      }
>  0)    <idle>-0    |   2.583 us    |                    }
>  0)    <idle>-0    | + 12.435 us   |                  }
>  0)    <idle>-0    | + 13.470 us   |                }
>  0)    <idle>-0    |   0.608 us    |                _spin_unlock_irqrestore();
>  0)    <idle>-0    | + 23.270 us   |              }
>  0)    <idle>-0    | + 24.336 us   |            }
>  0)    <idle>-0    | + 25.417 us   |          }
>  0)    <idle>-0    |   0.593 us    |          _spin_unlock();
>  0)    <idle>-0    | + 41.869 us   |        }
>  0)    <idle>-0    | + 42.906 us   |      }
>  0)    <idle>-0    | + 95.035 us   |    }
>  0)    <idle>-0    |   0.540 us    |    menu_reflect();
>  0)    <idle>-0    | ! 100.404 us  |  }
>  0)    <idle>-0    |   0.564 us    |  mce_idle_callback();
>  0)    <idle>-0    |               |  enter_idle() {
>  0)    <idle>-0    |   0.526 us    |    mce_idle_callback();
>  0)    <idle>-0    |   1.757 us    |  }
>  0)    <idle>-0    |               |  cpuidle_idle_call() {
>  0)    <idle>-0    |               |    menu_select() {
>  0)    <idle>-0    |   0.525 us    |      pm_qos_requirement();
>  0)    <idle>-0    |   0.518 us    |      tick_nohz_get_sleep_length();
>  0)    <idle>-0    |   2.621 us    |    }
> [...]
>  1)    <idle>-0    |   0.518 us    |              touch_softlockup_watchdog();
>  1)    <idle>-0    | + 14.355 us   |            }
>  1)    <idle>-0    | + 22.840 us   |          }
>  1)    <idle>-0    | + 25.949 us   |        }
>  1)    <idle>-0    |               |        handle_irq() {
>  1)    <idle>-0    |   0.511 us    |          irq_to_desc();
>  1)    <idle>-0    |               |          handle_edge_irq() {
>  1)    <idle>-0    |   0.638 us    |            _spin_lock();
>  1)    <idle>-0    |               |            ack_apic_edge() {
>  1)    <idle>-0    |   0.510 us    |              irq_to_desc();
>  1)    <idle>-0    |               |              move_native_irq() {
>  1)    <idle>-0    |   0.510 us    |                irq_to_desc();
>  1)    <idle>-0    |   1.532 us    |              }
>  1)    <idle>-0    |   0.511 us    |              native_apic_mem_write();
>  ------------------------------------------
>  1)    <idle>-0    =>    cat-5073
>  ------------------------------------------
> 
>  1)    cat-5073    |   3.731 us    |                    }
>  1)    cat-5073    |               |                    run_local_timers() {
>  1)    cat-5073    |   0.533 us    |                      hrtimer_run_queues();
>  1)    cat-5073    |               |                      raise_softirq() {
>  1)    cat-5073    |               |                        __raise_softirq_irqoff() {
>  1)    cat-5073    |               |                          /* nr: 1 */
>  1)    cat-5073    |   2.718 us    |                        }
>  1)    cat-5073    |   3.814 us    |                      }
> 
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> ---
>  kernel/trace/ftrace.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)

Applied to tip:tracing/urgent, thanks Frederic!

	Ingo

      reply	other threads:[~2009-02-17 18:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-17 17:35 Frederic Weisbecker
2009-02-17 18:20 ` Ingo Molnar [this message]

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=20090217182045.GA28195@elte.hu \
    --to=mingo@elte.hu \
    --cc=acme@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®