public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Martin Bligh <mbligh@google.com>,
	Christoph Hellwig <hch@infradead.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Al Viro <viro@zeniv.linux.org.uk>,
	"David S. Miller" <davem@davemloft.net>,
	Stephane Eranian <eranian@googlemail.com>,
	linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [GIT PULL] Performance Counters for Linux
Date: Thu, 11 Jun 2009 22:23:41 +0200	[thread overview]
Message-ID: <20090611202341.GA23590@elte.hu> (raw)
In-Reply-To: <alpine.LFD.2.01.0906111127520.3573@localhost.localdomain>


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

[...]
> What the "keep it in the kernel sources" approach hopefully allows is
> 
>  - taking advantage of new features in a timely manner.
> 
>    NOT with some ABI breakage, but simply things like supporting a 
>    new CPU architecture or new counters. The thing that oprofile 
>    failed at so badly in my experience.
>
>  - Make it easier for developers, and _avoiding_ the horrible 
>    situation where you have two different groups that don't talk 
>    well to each other because one is a group of user-space 
>    weenies, and the other is a group of manly kernel people, and 
>    there is no common ground.

Yes, very much agreed.

Btw., here are a couple of other arguments why i find it useful to 
have the tools/perf/ in the kernel repo:

1) Super-fast and synchronized release cycles

The kernel is one of the fastest moving packages in Linux - most 
user-space packages have (much!) longer release cycles than 3 
months.

A tight release schedule forces a certain amount of release 
discipline on tooling as well - so i'm glad that the two will be 
coupled. It's so easy for a promising tool to degrade into 
tinkerware with odd release cycles with time - if it's part of the 
kernel then at least the release cycles wont be odd but at precise 3 
months.

2) Performance _matters_

This is an argument pretty specific to perfcounters: Performance 
analysis tools under Linux suck pretty summarily. Yet, one of the 
major strengths of Linux is (or at least used to be) performance. So 
i find it very fitting that the kernel community takes performance 
analysis tooling into their own hand.

3) Strict quality control under a proven mode

In the kernel repo i can be sure that:

  - No one will even think of adding autofools to tools/perf/.

  - No one will send us code with Hungarian notation and two spaces
    tabulation.

  - No one will put getopt.h into the code

  - No one will rewrite it in some weird language

   [ Or at least, even though such incidents might happen 
     occasionally, i can just sit back in my chair and watch the
     resulting showdown on lkml, without having to worry about the 
     outcome ;-) ]

I can point contributors to well-established kernel coding 
principles, without having to argue no end about them.

All in one - the Linux kernel is a fire breathing monster engine 
when it comes to producing good software. Who says it that that this 
infrastructure and experience can only be used to produce kernel 
space code?

4) Code reuse

We actually use code from the kernel: list.h primitives and 
rbtrees.c. We privatized them for now under 
tools/perf/util/rbtree.[ch] and tools/perf/util/list.h because 
there's some header and type pollution in them, but it would be nice 
to include them directly and share the facilities.

5) Reality check for kernel developers

I think kernel hackers need a reality check too. It's easy to say 
that user-space sucks - but now there's a way and channel that 
frustration via direct action and make a real difference. I do hope 
that the extra superfluous mental energies visible in this thread 
can be used for good purposes too ;-)

6) It's a lot of fun

I never thought i'd say that - but hacking properly structured 
user-space code in the kernel repo is serious fun. It's even 
relaxing at times: i can be reasonably sure that i wont crash the 
kernel.

All in one, we did this because we found that it produces better 
code in practice and does it faster - and i dont think we should 
rigidly limit the kernel repo to kernel-space projects alone.

	Ingo

  reply	other threads:[~2009-06-11 20:24 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-11 16:03 [GIT PULL] Performance Counters for Linux Ingo Molnar
2009-06-11 16:17 ` Christoph Hellwig
2009-06-11 16:26   ` Linus Torvalds
2009-06-11 16:34     ` Marcel Holtmann
2009-06-11 16:38       ` Linus Torvalds
2009-06-11 16:46         ` Christoph Hellwig
2009-06-11 16:54           ` Linus Torvalds
2009-06-11 16:47         ` Marcel Holtmann
2009-06-11 18:04         ` David Newall
2009-06-11 16:52     ` Al Viro
2009-06-11 16:56       ` Peter Zijlstra
2009-06-11 17:00         ` Christoph Hellwig
2009-06-11 17:05           ` Ray Lee
2009-06-11 17:08             ` Marcel Holtmann
2009-06-11 17:12             ` Al Viro
2009-06-11 17:22               ` Ray Lee
2009-06-11 17:06           ` Linus Torvalds
2009-06-11 17:59             ` Pekka Enberg
2009-06-11 18:10               ` David Newall
2009-06-11 18:21                 ` Linus Torvalds
2009-06-11 18:38                   ` David Newall
2009-06-11 18:44                     ` Linus Torvalds
2009-06-11 19:07                       ` David Newall
2009-06-11 19:23                         ` Linus Torvalds
2009-06-11 19:29                           ` Linus Torvalds
2009-06-11 19:35                             ` David Newall
2009-06-11 19:49                               ` Linus Torvalds
2009-06-12  1:43                                 ` Robert Richter
2009-06-12  3:21                                 ` David Newall
2009-06-11 19:37                           ` David Newall
2009-06-11 18:51                   ` Christoph Hellwig
2009-06-11 19:05                   ` Marcel Holtmann
2009-06-11 18:24             ` Martin Bligh
2009-06-11 18:34               ` Linus Torvalds
2009-06-11 20:23                 ` Ingo Molnar [this message]
2009-06-11 20:49                   ` Marcel Holtmann
2009-06-11 21:08                     ` Sam Ravnborg
2009-06-11 21:17                       ` Marcel Holtmann
2009-06-11 21:26                         ` Sam Ravnborg
2009-06-11 22:18                           ` Jiri Slaby
2009-06-11 22:27                             ` Linus Torvalds
2009-06-11 22:38                               ` Alan Cox
2009-06-11 22:49                                 ` Linus Torvalds
2009-06-12  7:35                                   ` Alan Cox
2009-06-11 23:19                               ` Al Viro
2009-06-11 23:25                                 ` Linus Torvalds
2009-06-12  0:26                                   ` Al Viro
2009-06-12  2:58                                     ` Linus Torvalds
2009-06-12  4:05                                       ` Al Viro
2009-06-11 21:59                         ` Steven Rostedt
2009-06-12 10:19                           ` Jörn Engel
2009-06-11 21:14                     ` Ingo Molnar
2009-06-28  1:19                   ` Felipe Contreras
2009-06-11 19:58             ` Andrew Morton
2009-06-11 20:09               ` Linus Torvalds
2009-06-12  4:07             ` Kyle McMartin
2009-06-11 16:58       ` Linus Torvalds
2009-06-11 18:50     ` Sam Ravnborg
2009-06-15 13:41       ` Giacomo A. Catenazzi
2009-06-15 15:18         ` Sam Ravnborg
2009-06-12  9:56 ` stephane eranian
2009-06-12 10:28   ` Ingo Molnar
2009-06-18 21:58     ` stephane eranian
2009-06-22 13:10       ` Performance analysis under Linux (was: Re: [GIT PULL] Performance Counters for Linux) Ingo Molnar

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=20090611202341.GA23590@elte.hu \
    --to=mingo@elte.hu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=eranian@googlemail.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@google.com \
    --cc=paulus@samba.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /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