public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Jens Axboe <jens.axboe@oracle.com>
Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>,
	Ingo Molnar <mingo@elte.hu>,
	linux-kernel@vger.kernel.org,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Paul Mackerras <paulus@samba.org>,
	Tom Zanussi <tzanussi@gmail.com>,
	Steven Rostedt <srostedt@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Greg Kroah-Hartman <gregkh@suse.de>
Subject: Re: [PATCH 00/12] perf lock: New subcommand "perf lock", for analyzing  lock statistics
Date: Sun, 31 Jan 2010 22:07:09 +0100	[thread overview]
Message-ID: <20100131210707.GF5224@nowhere> (raw)
In-Reply-To: <20100131204408.GC13771@kernel.dk>

On Sun, Jan 31, 2010 at 09:44:08PM +0100, Jens Axboe wrote:
> On Sat, Jan 30 2010, Hitoshi Mitake wrote:
> > (2010???01???29??? 23:34), Jens Axboe wrote:
> >> On Fri, Jan 22 2010, Hitoshi Mitake wrote:
> >>    
> >>> Adding new subcommand "perf lock" to perf.
> >>>
> >>> I made this patch series on
> >>> latest perf/core of tip (ef12a141306c90336a3a10d40213ecd98624d274),
> >>> so please apply this series to perf/core.
> >>>      
> >> [snip]
> >>
> >> I wanted to give this a go today, since I think it's pretty nifty and a
> >> lot better than using /proc/lock_stat. But it basically spirals the
> >> system into death [1]. How big a system did you test this on?
> >>
> >> [1] Got this: [  117.097918] hrtimer: interrupt took 35093901 ns
> >>
> >>    
> >
> > I tested this on Core i7 965 + 3GB DRAM machine.
> > Test program is mainly "perf bench sched messaging".
> >
> > Could you tell me the detail of your test situation?
> 
> I tried to run it on a 64 thread box, on a fio job that was driving 80
> disks. It was just a quick test, but after ~20 seconds it had not even
> gotten started yet, it was still stuck in setting up the jobs and
> traversing sysfs for finding disk stats, etc. I can try something
> lighter to see if it's the cpu count or the tough job that was making it
> spiral into (near) death.


So you're experiencing a severe slowdown but it's not a lockup, right?

I think there are various reasons for that.

- The first is that lock events are high freq events, probably the highest
  frequency of all events we have, and this amount of course is going to
  scale with the number of cpus.

- They are suboptimally implemented. We are copying various strings
  in every lock events (acquire(d), release, contended) that could be
  sent once in a lock_init event. Among these strings are the name of
  the lock and the __FILE__ __LINE__ of its declaration.
  Ingo has applied Hitoshi's patches in tip:/perf/core few hours ago
  without the __FILE__ __LINE__ infos. We are thinking about other
  ways to get these infos.
  The name is going to move in a new lock_init event, I'm currently
  working at it.

- We are using the -M option from perf tools which multiplexes every
  event buffers, which means every cpu commit their lock events in
  the same buffer. Couple that with the two above reasons, it's supposed
  to scale at worst.

Given that and the fact you have a 64 threads box, I'm not very
surprised of such global slowdown.

But we are working toward this and will try to make it better in this
regard.

Thanks.


  reply	other threads:[~2010-01-31 21:07 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-22 13:39 [PATCH 00/12] perf lock: New subcommand "perf lock", for analyzing lock statistics Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 01/12] perf tools: Add __data_loc support Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 02/12] perf: Add util/include/linuxhash.h to include hash.h of kernel Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 03/12] lockdep: Add information of file and line where lock inited to struct lockdep_map Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 04/12] lockdep: Add file and line to initialize sequence of spinlock Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 05/12] lockdep: Add file and line to initialize sequence of rwlock Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 06/12] lockdep: Add file and line to initialize sequence of rwsem Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 07/12] lockdep: Add file and line to initialize sequence of rwsem (x86) Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 08/12] lockdep: Add file and line to initialize sequence of mutex Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 09/12] lockdep: Fix the way to initialize class_mutex for information of file and line Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 10/12] perf lock: Enhance information of lock trace events Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 11/12] perf lock: New subcommand "perf lock", for analyzing lock statistics Hitoshi Mitake
2010-01-28  6:51   ` Hitoshi Mitake
2010-01-28 14:28     ` [PATCH] perf: Add util/include/linux/config.h for including generated autoconf.h of kernel Hitoshi Mitake
2010-01-28 14:44       ` Peter Zijlstra
2010-01-30 11:44         ` Hitoshi Mitake
2010-01-28 22:27       ` Paul Mackerras
2010-01-30 11:51         ` Hitoshi Mitake
2010-01-22 13:39 ` [PATCH 12/12] Revert "perf record: Intercept all events" Hitoshi Mitake
2010-01-25  2:23   ` Arnaldo Carvalho de Melo
2010-01-25 14:47     ` Hitoshi Mitake
2010-01-25 14:50       ` Peter Zijlstra
2010-01-25 14:57       ` Arnaldo Carvalho de Melo
2010-01-26  7:17         ` Hitoshi Mitake
2010-01-22 16:42 ` [PATCH 00/12] perf lock: New subcommand "perf lock", for analyzing lock statistics Jason Baron
2010-01-22 16:48   ` Peter Zijlstra
2010-01-22 16:52     ` Peter Zijlstra
2010-01-23  6:57       ` Ingo Molnar
2010-01-25 14:15   ` Hitoshi Mitake
2010-01-25 14:48     ` Peter Zijlstra
2010-01-26  7:04       ` Hitoshi Mitake
2010-01-26  4:26     ` Greg KH
2010-01-29 14:34 ` Jens Axboe
2010-01-30 12:00   ` Hitoshi Mitake
2010-01-31 20:44     ` Jens Axboe
2010-01-31 21:07       ` Frederic Weisbecker [this message]
2010-01-31 21:11         ` Jens Axboe
2010-02-01  9:15         ` Peter Zijlstra
2010-02-01  9:22           ` Ingo Molnar
2010-02-01 17:58             ` Frederic Weisbecker
2010-02-01 13:23       ` Jens Axboe

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=20100131210707.GF5224@nowhere \
    --to=fweisbec@gmail.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=gregkh@suse.de \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mitake@dcl.info.waseda.ac.jp \
    --cc=paulus@samba.org \
    --cc=srostedt@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=tzanussi@gmail.com \
    /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