lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 17 Feb 2009 19:20:45 +0100
From:	Ingo Molnar <mingo@...e.hu>
To:	Frederic Weisbecker <fweisbec@...il.com>
Cc:	Steven Rostedt <rostedt@...dmis.org>,
	Arnaldo Carvalho de Melo <acme@...hat.com>,
	linux kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] tracing/function-graph-tracer: trace the idle tasks


* Frederic Weisbecker <fweisbec@...il.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@...il.com>
> ---
>  kernel/trace/ftrace.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)

Applied to tip:tracing/urgent, thanks Frederic!

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ