Re: [PATCH 1/38] KVM: Create kvm-intel.ko module

From: Ingo Molnar
Date: Thu Nov 30 2006 - 10:44:56 EST



* Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:

> > please move this from drivers/kvm/ to kernel/kvm/ [or even into a
> > toplevel kvm/ directory] - KVM is not a "driver", KVM enhances the
> > core Linux kernel with hypervisor functionality.
>
> Actually it's exactly a driver. It's a character driver that exposes
> the virtualization features of modern x86 hardware. [...]

you are fundamentally wrong. In the end KVM is a fundamental and complex
infrastructure that enables Linux to provide full hardware capabilities
to another OS via the resources of this OS. This concept justifies a
system call and a place in linux/kernel/. It's not fundamentally limited
to x86 either. Full virtualization (and paravirtualization) makes sense
on any platform. And there's no reason KVM be limited to full
virtualization alone - both paravirtualization and accelerated guest
drivers need a sane hypercall API.

> [...] Pretty similar to things like the msr or mtrr driver that expose
> cpu features as character drivers aswell.

you can expose everything as character drivers and ioctls, but that
doesnt make it the right solution. It might /start out/ as a driver,
because that's an easy to hack model, but the moment something becomes
important enough (and virtualization certainly is such a model) it
demands a system call.

Just like inotify started out as an ioctl hack, but then was
(rightfully) moved to the system-call space. [ Which btw. was on your
request ;-) ]

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