From: Ingo Molnar on

* Avi Kivity <avi(a)redhat.com> wrote:

> >> [...] Second, from my point of view all contributors are volunteers
> >> (perhaps their employer volunteered them, but there's no difference from
> >> my perspective). Asking them to repaint my apartment as a condition to
> >> get a patch applied is abuse. If a patch is good, it gets applied.
> >
> > This is one of the weirdest arguments i've seen in this thread. Almost all
> > the time do we make contributions conditional on the general shape of the
> > project. Developers dont get to do just the fun stuff.
>
> So, do you think a reply to a patch along the lines of
>
> NAK. Improving scalability is pointless while we don't have a decent GUI.
> I'll review you RCU patches
> _after_ you've contributed a usable GUI.
>
> ?

What does this have to do with RCU?

I'm talking about KVM, which is a Linux kernel feature that is useless without
a proper, KVM-specific app making use of it.

RCU is a general kernel performance feature that works across the board. It
helps KVM indirectly, and it helps many other kernel subsystems as well. It
needs no user-space tool to be useful.

KVM on the other hand is useless without a user-space tool.

[ Theoretically you might have a fair point if it were a critical feature of
RCU for it to have a GUI, and if the main tool that made use of it sucked.
But it isnt and you should know that. ]

Had you suggested the following 'NAK', applied to a different, relevant
subsystem:

| NAK. Improving scalability is pointless while we don't have a usable
| tool. I'll review you perf patches _after_ you've contributed a usable
| tool.

you would have a fair point. In fact, we are doing that we are living by that.
It makes absolutely zero sense to improve the scalability of perf if its
usability sucks.

So where you are trying to point out an inconsistency in my argument there is
none.

> > This is a basic quid pro quo: new features introduce risks and create
> > additional workload not just to the originating developer but on the rest
> > of the community as well. You should check how Linus has pulled new
> > features in the past 15 years: he very much requires the existing code to
> > first be top-notch before he accepts new features for a given area of
> > functionality.
>
> For a given area, yes. [...]

That is my precise point.

KVM is a specific subsystem or "area" that makes no sense without the
user-space tooling it relates to. You seem to argue that you have no 'right'
to insist on good quality of that tooling - and IMO you are fundamentally
wrong with that.

Thanks,

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

* Anthony Liguori <anthony(a)codemonkey.ws> wrote:

> On 03/19/2010 03:53 AM, Ingo Molnar wrote:
> >* Avi Kivity<avi(a)redhat.com> wrote:
> >
> >>>There were two negative reactions immediately, both showed a fundamental
> >>>server versus desktop bias:
> >>>
> >>> - you did not accept that the most important usecase is when there is a
> >>> single guest running.
> >>Well, it isn't.
> >Erm, my usability points are _doubly_ true when there are multiple guests ...
> >
> >The inconvenience of having to type:
> >
> > perf kvm --host --guest --guestkallsyms=/home/ymzhang/guest/kallsyms \
> > --guestmodules=/home/ymzhang/guest/modules top
> >
> >is very obvious even with a single guest. Now multiply that by more guests ...
>
> If you want to improve this, you need to do the following:
>
> 1) Add a userspace daemon that uses vmchannel that runs in the guest and can
> fetch kallsyms and arbitrary modules. If that daemon lives in
> tools/perf, that's fine.

Adding any new daemon to an existing guest is a deployment and usability
nightmare.

The basic rule of good instrumentation is to be transparent. The moment we
have to modify the user-space of a guest just to monitor it, the purpose of
transparent instrumentation is defeated.

That was one of the fundamental usability mistakes of Oprofile.

There is no 'perf' daemon - all the perf functionality is _built in_, and for
very good reasons. It is one of the main reasons for perf's success as well.

Now Qemu is trying to repeat that stupid mistake ...

So please either suggest a different transparent solution that is technically
better than the one i suggested, or you should concede the point really.

Please try think with the heads of our users and developers and dont suggest
some weird ivory-tower design that is totally impractical ...

And no, you have to code none of this, we'll do all the coding. The only thing
we are asking is for you to not stand in the way of good usability ...

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Antoine Martin on
On 03/22/2010 02:17 AM, Ingo Molnar wrote:
> * Anthony Liguori<anthony(a)codemonkey.ws> wrote:
>
>> On 03/19/2010 03:53 AM, Ingo Molnar wrote:
>>
>>> * Avi Kivity<avi(a)redhat.com> wrote:
>>>
>>>>> There were two negative reactions immediately, both showed a fundamental
>>>>> server versus desktop bias:
>>>>>
>>>>> - you did not accept that the most important usecase is when there is a
>>>>> single guest running.
>>>>>
>>>> Well, it isn't.
>>>>
>>> Erm, my usability points are _doubly_ true when there are multiple guests ...
>>>
>>> The inconvenience of having to type:
>>>
>>> perf kvm --host --guest --guestkallsyms=/home/ymzhang/guest/kallsyms \
>>> --guestmodules=/home/ymzhang/guest/modules top
>>>
>>> is very obvious even with a single guest. Now multiply that by more guests ...
>>>
>> If you want to improve this, you need to do the following:
>>
>> 1) Add a userspace daemon that uses vmchannel that runs in the guest and can
>> fetch kallsyms and arbitrary modules. If that daemon lives in
>> tools/perf, that's fine.
>>
> Adding any new daemon to an existing guest is a deployment and usability
> nightmare.
>
Absolutely. In most cases it is not desirable, and you'll find that in a
lot of cases it is not even possible - for non-technical reasons.
One of the main benefits of virtualization is the ability to manage and
see things from the outside.
> The basic rule of good instrumentation is to be transparent. The moment we
> have to modify the user-space of a guest just to monitor it, the purpose of
> transparent instrumentation is defeated.
>
Not to mention Heisenbugs and interference.

Cheers
Antoine

> That was one of the fundamental usability mistakes of Oprofile.
>
> There is no 'perf' daemon - all the perf functionality is _built in_, and for
> very good reasons. It is one of the main reasons for perf's success as well.
>
> Now Qemu is trying to repeat that stupid mistake ...
>
> So please either suggest a different transparent solution that is technically
> better than the one i suggested, or you should concede the point really.
>
> Please try think with the heads of our users and developers and dont suggest
> some weird ivory-tower design that is totally impractical ...
>
> And no, you have to code none of this, we'll do all the coding. The only thing
> we are asking is for you to not stand in the way of good usability ...
>
> Thanks,
>
> Ingo
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo(a)vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

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

* Antoine Martin <antoine(a)nagafix.co.uk> wrote:

> On 03/22/2010 02:17 AM, Ingo Molnar wrote:
> >* Anthony Liguori<anthony(a)codemonkey.ws> wrote:
> >>On 03/19/2010 03:53 AM, Ingo Molnar wrote:
> >>>* Avi Kivity<avi(a)redhat.com> wrote:
> >>>>>There were two negative reactions immediately, both showed a fundamental
> >>>>>server versus desktop bias:
> >>>>>
> >>>>> - you did not accept that the most important usecase is when there is a
> >>>>> single guest running.
> >>>>Well, it isn't.
> >>>Erm, my usability points are _doubly_ true when there are multiple guests ...
> >>>
> >>>The inconvenience of having to type:
> >>>
> >>> perf kvm --host --guest --guestkallsyms=/home/ymzhang/guest/kallsyms \
> >>> --guestmodules=/home/ymzhang/guest/modules top
> >>>
> >>>is very obvious even with a single guest. Now multiply that by more guests ...
> >>If you want to improve this, you need to do the following:
> >>
> >>1) Add a userspace daemon that uses vmchannel that runs in the guest and can
> >> fetch kallsyms and arbitrary modules. If that daemon lives in
> >> tools/perf, that's fine.
> >
> > Adding any new daemon to an existing guest is a deployment and usability
> > nightmare.
>
> Absolutely. In most cases it is not desirable, and you'll find that in a lot
> of cases it is not even possible - for non-technical reasons.
>
> One of the main benefits of virtualization is the ability to manage and see
> things from the outside.
>
> > The basic rule of good instrumentation is to be transparent. The moment we
> > have to modify the user-space of a guest just to monitor it, the purpose
> > of transparent instrumentation is defeated.
>
> Not to mention Heisenbugs and interference.

Correct.

Frankly, i was surprised (and taken slightly off base) by both Avi and Anthony
suggesting such a clearly inferior "add a demon to the guest space" solution.
It's a usability and deployment non-starter.

Furthermore, allowing a guest to integrate/mount its files into the host VFS
space (which was my suggestion) has many other uses and advantages as well,
beyond the instrumentation/symbol-lookup purpose.

So can we please have some resolution here and move on: the KVM maintainers
should either suggest a different transparent approach, or should retract the
NAK for the solution we suggested.

We very much want to make progress and want to write code, but obviously we
cannot code against a maintainer NAK, nor can we code up an inferior solution
either.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Avi Kivity on
On 03/21/2010 09:17 PM, Ingo Molnar wrote:
>
> Adding any new daemon to an existing guest is a deployment and usability
> nightmare.
>

The logical conclusion of that is that everything should be built into
the kernel. Where a failure brings the system down or worse. Where you
have to bear the memory footprint whether you ever use the functionality
or not. Where to update the functionality you need to deploy a new
kernel (possibly introducing unrelated bugs) and reboot.

If userspace daemons are such a deployment and usability nightmare,
maybe we should fix that instead.

> The basic rule of good instrumentation is to be transparent. The moment we
> have to modify the user-space of a guest just to monitor it, the purpose of
> transparent instrumentation is defeated.
>

You have to modify the guest anyway by deploying a new kernel.

> Please try think with the heads of our users and developers and dont suggest
> some weird ivory-tower design that is totally impractical ...
>

inetd.d style 'drop a listener config here and it will be executed on
connection' should work. The listener could come with the kernel
package, though I don't think it's a good idea. module-init-tools
doesn't and people have survived somehow.

> And no, you have to code none of this, we'll do all the coding. The only thing
> we are asking is for you to not stand in the way of good usability ...
>

Thanks.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

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