Thread (1 message) 1 message, 1 author, 2007-06-04

RE: [Xen-devel] [PATCH RFC 1/3] virtio infrastructure

From: Santos, Jose Renato G <hidden>
Date: 2007-06-04 21:14:01

 
-----Original Message-----
From: Rusty Russell [mailto:rusty@rustcorp.com.au] 
Sent: Saturday, June 02, 2007 3:13 AM
To: Santos, Jose Renato G
Cc: kvm-devel; Xen Mailing List; virtualization; Jimi 
Xenidis; Stephen Rothwell; jmk@plan9.bell-labs.com; Herbert 
Xu; Christian Borntraeger; Suzanne McIntosh; Anthony Liguori; 
Martin Schwidefsky
Subject: RE: [Xen-devel] [PATCH RFC 1/3] virtio infrastructure


Hi Renato!

	This is a very good question.  For currently-existing 
and working devices it just seems like another layer of 
indirection, and not much code saving.

	There are several reasons for having a common layer.  
The obvious is to reduce the amount of code, but that's the 
least important.  Slightly more important is that noone wants 
to maintain and tune 5 different virtual net drivers, 5 
different virtual block drivers, etc.  In fact, the kernel 
community will start to rebel at some point, especially if 
they want different optimization hooks deeper into the kernel.
  Rusty,

  Thanks for clarifying your thinking. This helped me understand
  your goals better.
  I agree it would be nice to reduce the number of drivers as it
  improves mantainability. However I am not convinced that
  adding an IO virtualization layer will remove the need
  for having different drivers for different virtualization
  technologies.
  It seems that we will still need specific devices drivers
  for each different virtualization flavor. For example,
  we will still need to have a specific Xen netfront 
  device that talks to a backend device in dom0, using
  page grants, and other Xen specific mechanisms.
  It looks like  will still need to maintain all the virtual device 
  drivers and in addition we will now have to maintain 
  another virtualization layer. 
  I confess I don't know well any of the other virtualization
  technologies besides Xen. Maybe for some of them there is
  enough similarities that you could benefit from a common
  virtualization layer, but I just can't see it yet. 
  
  Regards

  Renato
  
	We expect to see new device types (entropy device, 
anyone?), and so the
5 different drivers becomes the 5 x N different drivers.  
Eventually we may come up with common bus and probing which 
everyone loves, but until then we can at least make it simple 
for each virtualization technology to implement the new XYZZY device.

	Finally, virtual I/O techniques are *moving*.  KVM 
doesn't really have one, XenSource are discussing more 
changes to theirs (at least for
networking) and lguest is still looking for an efficient one. 
 No doubt the others would love to use clean and optimal 
Linux drivers, too (UML, S/390, Power, VMWare?).

	When Linux doesn't provide a model of what it expects 
from virtual devices, one end of the design process is 
untethered: we've already seen some fairly random and 
gratuitously different results.  If we can provide a simple 
interface which we like it encourages new implementations to 
produce Linux-friendly interfaces.

	Of course, the new interface must not suck.

I hope that clarifies my thinking?
Rusty.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help