[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061130154425.GB28507@elte.hu>
Date: Thu, 30 Nov 2006 16:44:25 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Christoph Hellwig <hch@...radead.org>,
Avi Kivity <avi@...ranet.com>, kvm-devel@...ts.sourceforge.net,
linux-kernel@...r.kernel.org, akpm@...l.org
Subject: Re: [PATCH 1/38] KVM: Create kvm-intel.ko module
* Christoph Hellwig <hch@...radead.org> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists