All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	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:49:17 +0200	[thread overview]
Message-ID: <1244753357.27363.82.camel@violet> (raw)
In-Reply-To: <20090611202341.GA23590@elte.hu>

Hi Ingo,

> > 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.

that might be true for some projects, but for others this is wrong. You
are just making an assumption out of thin air.

> 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.

And you can't do that within a perf.git tree on kernel.org because?

> 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/.

That argument is non-sense. While autoconf/automake is maybe not to your
liking, nobody forces you to use it. Projects like git, iw etc. do
perfectly fine without it. I don't mind having autoconf/automake around.

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

What kind of shitty argument it is that. I enforce kernel coding style
in my userspace project all the time. No problem with that.

>   - No one will put getopt.h into the code

And that is so bad because?

>   - No one will rewrite it in some weird language

And they can do as they please. You don't have to accept the re-write.
These are all non-sense arguments. If you maintain a userspace project
properly then you will not see any of these problems.

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

Come on. A lot of projects use kernel coding style nowadays. That is not
a problem here.

> 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?

And who says that all userspace people have no idea what they are doing.
We have a lot of successful project that follow almost the same rules as
the kernel.

> 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.

Lets see if you are making up an argument or if you are really trying to
work this out and solve it.

> 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.

Linus has a bad expierience with oprofile and wants to try something new
and I can follow that argument to a certain degree. I don't agree with
it, but that is fine.

So you are saying that only good code comes from including it into
linux-2.6.git and otherwise you will never get there. Have you actually
tried to maintain this in a separate repository on kernel.org?

Regards

Marcel



  reply	other threads:[~2009-06-11 20:49 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
2009-06-11 20:49                   ` Marcel Holtmann [this message]
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=1244753357.27363.82.camel@violet \
    --to=marcel@holtmann.org \
    --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=mingo@elte.hu \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.