All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Pekka Enberg <penberg@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"H. Peter Anvin" <hpa@linux.intel.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	David Rientjes <rientjes@google.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sasha Levin <levinsasha928@gmail.com>,
	"H. Peter Anvin" <hpa@zytor.com>, Michal Marek <mmarek@suse.cz>,
	Stephen Rothwell <sfr@canb.auug.org.au>
Subject: Re: kvmtool tree (Was: Re: [patch] config: fix make kvmconfig)
Date: Mon, 11 Feb 2013 18:28:07 +0100	[thread overview]
Message-ID: <20130211172807.GA9716@gmail.com> (raw)
In-Reply-To: <CA+55aFwq+_TvOZNEPO-eFPjYuPuMFL0bgR0x=nLq_tvfATqaTA@mail.gmail.com>


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

> On Mon, Feb 11, 2013 at 4:26 AM, Ingo Molnar <mingo@kernel.org> wrote:
> >
> > If you are asking whether it is critical for the kernel 
> > project to have tools/kvm/ integrated then it isn't. The 
> > kernel will live just fine without it, even if that decision 
> > is a mistake.
> 
> You go on to explain how this helps kvmtool, and quite 
> frankly, I DO NOT CARE.

Me and Pekka also listed several examples of how it already 
helped the kernel, despite it only being partially present in 
some kernel repos:

 - Pekka listed new virtio drivers that were done via tools/kvm.

 - Pekka listed ARM KVM support which was written/prototyped
   using tools/kvm.

 - There's over a dozen bugfixes in your kernel which were found 
   via syscall fuzzing built into tools/kvm. (I can dig them all
   out if you want.)

 - There are several fixes in the kernel side KVM subsystem
   itself that were unearthed via tools/kvm.

 - I showed how it helped the kernel by creating user-space
   lockdep: code used in more situations means more exposure,
   more bugfixes and more contributors. (It also allowed
   immediate lockdep coverage for all the user-space mutexes
   that tools/perf/ itself uses.)

Those were all real benefits to the kernel which are upstream or 
almost upstream today.

This tool alone generated a *more* versatile number of 
improvements to the kernel than the majority of filesystems and 
the majority of drivers in the Linux kernel tree today has ever 
achieved.

How on earth can anyone, against all that evidence, still claim 
that it's a net minus?

> Everything you talk about is about helping your work, by 
> making the kernel maintenance be more. The fact that you want 
> to use kernel infrastructure in kvmtool is a great example: 
> you may think it's a great thing, but for the kernel it's just 
> extra work, and extra layers of abstraction etc etc.

At least in the case of lockdep, the kernel side change enabling 
it was a trivial:

  kernel/lockdep.c | 4 ++++
  1 file changed, 4 insertions(+)

... but we could probably make even that interaction go away and 
make it exactly zero, and push all the changes on to the 
liblockdep side.

Anyway, should I consider user space lockdep NAK-ed too in this 
form, before we put any more work into it?

> And then you make it clear that you haven't even *bothered* to 
> try to make it a separate project.

Just like back in the days you haven't even bothered to make 
Linux a proper GNU project, and for good reasons. Nor have I 
ever tried to write scheduler code for another OS.

Some expensive, disruptive things you don't "try" because you 
disagree with the model, on what you think to be valid grounds. 
You make a judgement call, you take your chances, and you see 
whether it works.

> Sorry, but with that kind of approach, I get less and less 
> interested. I think this whole tying together is a big 
> mistake. It encourages linkages that simply shouldn't be 
> there.
> 
> And no, perf is not the perfect counter-example. With perf,. 
> the linkages made sense! There's supposed to be deep linkages 
> to profiling and event counting. There is ABSOLUTELY NOT 
> supposed to be deep linkages with virtualization. Quite the 
> reverse.

I'm *really* surprised that you say that.

perf interfaces to the Linux kernel in a very similar way to how 
tools/kvm interfaces to the Linux kernel: both use (very) Linux 
specific system calls to run on a host system running the Linux 
kernel.

Neither tool will in the foreseeable future execute on any 
other, non-Linux host kernel.

( Running non-Linux guest OS's is an entirely different matter
  and there's no fundamental restriction there. )

tools/perf/ is not in the kernel because it interfaces with the 
kernel in nasty, incestous ways.

It is in the kernel mainly because that's the contribution model 
that turned out to work well for both the kernel and the tooling 
side:

I initially made the user-space bits of perf a separate project. 
I didn't run it in that form for a long time, but I got 
essentially zero contributions. The moment it went into a silly 
directory in Documentation/perf_counters/, contributions started 
trickling in. Today it's fully embraced by the kernel side 
subsystem and allows very efficient interface enhancements on 
the kernel and tooling side, in lock-step - benefiting both 
sides significantly.

> And no, I don't want to maintain the mess that is both. 
> There's just no gain, and lots of potential pain.

I disagree, and I don't see the validity of most of your 
arguments, but it's obviously your call.

Thanks,

	Ingo

  reply	other threads:[~2013-02-11 17:28 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-20 21:51 [PATCH] x86: Default to ARCH=x86 to avoid overriding CONFIG_64BIT David Woodhouse
2012-12-21  2:07 ` [tip:x86/build] x86: Default to ARCH= x86 " tip-bot for David Woodhouse
2012-12-26  6:32   ` David Rientjes
2012-12-26  8:43     ` David Woodhouse
2012-12-26 10:44       ` David Rientjes
2012-12-26 12:38         ` David Woodhouse
2012-12-26 22:00           ` David Rientjes
2012-12-26 22:19             ` David Woodhouse
2012-12-27  1:52               ` David Rientjes
2012-12-27  8:01                 ` David Woodhouse
2012-12-26 22:30             ` Jesper Juhl
2012-12-26 23:07             ` David Woodhouse
2012-12-26 23:13             ` H. Peter Anvin
2012-12-26 23:32     ` [tip] config: Add 'make kvmconfig' David Woodhouse
2012-12-27  1:08       ` Randy Dunlap
2013-02-04 18:20         ` [patch] config: fix make kvmconfig David Rientjes
2013-02-04 18:44           ` Ingo Molnar
2013-02-04 18:57             ` David Rientjes
2013-02-04 19:11               ` Ingo Molnar
2013-02-04 19:14               ` Greg Kroah-Hartman
2013-02-04 19:13                 ` Ingo Molnar
2013-02-06 18:25                   ` Pekka Enberg
2013-02-06 20:12                     ` David Rientjes
2013-02-06 20:45                       ` Pekka Enberg
2013-02-06 21:02                       ` kvmtool tree (Was: Re: [patch] config: fix make kvmconfig) Stephen Rothwell
2013-02-06 21:46                         ` Ingo Molnar
2013-02-06 21:55                           ` H. Peter Anvin
2013-02-07 21:44                             ` Stephen Rothwell
2013-02-07 21:40                           ` Stephen Rothwell
2013-02-08 14:55                             ` Ingo Molnar
2013-02-08 21:14                               ` Linus Torvalds
2013-02-08 23:57                                 ` Pekka Enberg
2013-02-09  0:45                                   ` Linus Torvalds
2013-02-09 10:01                                     ` Pekka Enberg
2013-02-09 18:07                                       ` Linus Torvalds
2013-02-09 19:39                                         ` Pekka Enberg
2013-02-09 19:57                                           ` Linus Torvalds
2013-02-09 21:06                                             ` Theodore Ts'o
2013-02-11 12:38                                               ` Ingo Molnar
2013-02-11 12:26                                             ` Ingo Molnar
2013-02-11 12:56                                               ` Ingo Molnar
2013-02-11 13:18                                                 ` David Woodhouse
2013-02-11 13:58                                                   ` Anca Emanuel
2013-02-11 16:34                                                   ` Linus Torvalds
2013-02-11 17:34                                                     ` H. Peter Anvin
2013-02-11 17:41                                                   ` Ingo Molnar
2013-02-11 14:47                                               ` Pekka Enberg
2013-02-11 16:46                                                 ` David Woodhouse
2013-02-11 17:26                                                   ` Anca Emanuel
2013-02-11 16:32                                               ` Linus Torvalds
2013-02-11 17:28                                                 ` Ingo Molnar [this message]
     [not found]                                                   ` <CA+55aFx-0-qcYMqH2wnJJ7iAPhoEvD_EQ0xqVW3VGS3G9=_1_w@mail.gmail.com>
2013-02-11 17:58                                                     ` Ingo Molnar
2013-02-11 23:32                                                       ` Linus Torvalds
2013-02-12  9:52                                                         ` Ingo Molnar
2013-02-13  8:23                                                           ` Paolo Bonzini
2013-02-13  8:56                                                             ` Pekka Enberg
2013-02-13  9:23                                                               ` Ingo Molnar
2013-02-14 15:32                                                               ` Anthony Liguori
2013-02-19  8:08                               ` Ingo Molnar
2013-01-12 17:06   ` [tip:x86/build] x86: Default to ARCH= x86 to avoid overriding CONFIG_64BIT Borislav Petkov
2013-01-12 17:40     ` H. Peter Anvin
2013-01-12 18:08       ` Borislav Petkov
2013-01-12 18:10         ` H. Peter Anvin
2013-04-12 16:01 ` [PATCH] x86: Default to ARCH=x86 " richard -rw- weinberger
2013-04-12 16:38   ` David Woodhouse

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=20130211172807.GA9716@gmail.com \
    --to=mingo@kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=levinsasha928@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mmarek@suse.cz \
    --cc=penberg@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=rientjes@google.com \
    --cc=sfr@canb.auug.org.au \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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 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.