Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Ingo Molnar
2010-03-22T19:20:47Z

* Avi Kivity <avi@redhat.com> wrote:

> > Lets look at the ${HOME}/.qemu/qmp/ enumeration method suggested by
> > Anthony. There's numerous ways that this can break:
>
> I don't like it either. We have libvirt for enumerating guests.

Which has pretty much the same problems to the ${HOME}/.qemu/qmp/ solution,
obviously.

> > - Those special files can get corrupted, mis-setup, get out of sync, or can
> > be hard to discover.
> >
> > - The ${HOME}/.qemu/qmp/ solution suggested by Anthony has a very obvious
> > design flaw: it is per user. When i'm root i'd like to query _all_ current
> > guest images, not just the ones started by root. A system might not even
> > have a notion of '${HOME}'.
> >
> > - Apps might start KVM vcpu instances without adhering to the
> > ${HOME}/.qemu/qmp/ access method.
>
> - it doesn't work with nfs.

So out of a list of 4 disadvantages your reply is that you agree with 3?

> > - There is no guarantee for the Qemu process to reply to a request - while
> > the kernel can always guarantee an enumeration result. I dont want 'perf
> > kvm' to hang or misbehave just because Qemu has hung.
>
> If qemu doesn't reply, your guest is dead anyway.

Erm, but i'm talking about a dead tool here. There's a world of a difference
between 'kvm top' not showing new entries (because the guest is dead), and
'perf kvm top' hanging due to Qemu hanging.

So it's essentially 4 our of 4. Yet your reply isnt "Ingo you are right" but
"hey, too bad" ?

> > Really, for such reasons user-space is pretty poor at doing system-wide
> > enumeration and resource management. Microkernels lost for a reason.
>
> Take a look at your desktop, userspace is doing all of that everywhere, from
> enumerating users and groups, to deciding how your disks are named. The
> kernel only provides the bare facilities.

We dont do that for robust system instrumentation, for heaven's sake!

By your argument it would be perfectly fine to implement /proc purely via
user-space, correct?

> > You are committing several grave design mistakes here.
>
> I am committing on the shoulders of giants.

Really, this is getting outright ridiculous. You agree with me that Anothony
suggested a technically inferior solution, yet you even seem to be proud of it
and are joking about it?

And _you_ are complaining about lkml-style hard-talk discussions?

Thanks,

Ingo