Re: [PATCH/RFC 7/9] Virtual network guest device driver

Carsten Otte
2007-05-12T08:46:49Z

ron minnich wrote:
> Let me ask what may seem to be a naive question to the linux world. I
> see you are doing a lot off solid work on adding block and network
> devices. The code for block and network devices
> is implemented in different ways. I've also seen this difference of
> inerface/implementation on Xen.
Actually, the difference derives from the fact that block and network
are indeed different:
- block submits requests that ask the host to transfer from/to
preallocated guest data buffers via dma (request driven)
- net transmits packets that should end up in an skb on the remote
side (two way, push driven)
- net is sensitive to round-trip times, block is not due to the device
plug for request merging

We tried different access methods for both block and network. We have
selected the current communication mechanics after doing performance
measurements.
I believe for a portable solution we need to develop a set of
primitives for sending signals (read: interrupts) back and forth, for
copying data to guest memory, and for establishing shared memory
between guests and between guest+host. These primitives need to be
implemented for each platform, and paravirtual drivers should build on
top of that.
At this point in time, we are aware that these device drivers don't do
what we'd want for a portable solution. We'll focus on getting the
kernel interfaces to sie/vt/svm proper and portable first.

so long,
Carsten