All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [RFC PATCH 0/9] PV device infrastructure v2
Date: Wed, 15 Aug 2007 06:58:30 +0300	[thread overview]
Message-ID: <46C279E6.40004@qumranet.com> (raw)
In-Reply-To: <1187149634.4165.151.camel-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>

Gregory Haskins wrote:
>
>> If so, be aware that virtio is (a) mostly done (b) very well done.
>>     
>
> I would very much like to help make virtio work, which is really where I
> was going with this.  My design is a little bit different so I was
> submitting it in case there was any ideas worth salvaging to be picked
> up by the official project.  (I tried to explain this in the v1
> announcement so I apologize if anyone, particularly Rusty, felt
> slighted....it was not my intention)
>   

Alternative implementation ideas should of course not slight anyone but
instead be welcomed.

>   
>> Can you describe what you are trying to achieve that virtio doesn't do?
>>
>>     
>
> To be perfectly honest, I have never been able to find an implementation
> of virtio (I looked and even asked Rusty directly via email but never
> found/heard anything back) so I don't know exactly what its capabilities
> are.  My impressions from reading Rusty's email proposals are that there
> are certainly similarities to the virtio interface and the ioq interface
> in concept.  Where they seem to differ is that the concept of the ring
> is more exposed in IOQ via the iterator idiom instead of the sg-buffer
> idiom.
>   

Yes.  virtio adapts the driver interface to an API can drive a shared
memory queue more easily, while you actually provide the queue protocol
(and ABI).

> At the time I first saw the virtio proposals, I couldn't quite wrap my
> head around how I could do things like "zero copy" + deferred pointer
> reaping, which was a design goal of mine.  So I kept up with the IOQ
> design for the interim to at least demonstrate where I was trying to go.
> Perhaps it will be a useful innovation and the virtio interface design
> will pick up some of my ideas.  Perhaps virtio deals with it already.
> Or perhaps no one will think its a good idea and it gets pushed
> to /dev/null ;)  I am not sure what the answer will be.
>
> But in any case, I was also trying to go beyond the shared-ring
> interface design.  For instance, the series also provides:
>
> *) a system for efficiently discovering/communicating with PV backend
> devices that was not laden with legacy interfaces like PCI.  (I am in
> the process of converting over to use bus_register as Dor suggested).
>
> *) generalization of as much of the shared-memory code as possible so it
> could be reused (for instance, both guest and host can use the same IOQ
> interface, and the code itself will largely work with any hypervisor, or
> even non-hypervisor shared-memory systems, like RDMA/AMP).
>
> Again, perhaps virtio will cover all these areas too.  Without having
> seen it I am not really sure where the overlap exists, but perhaps there
> will be at least some aspects of my series that are useful.  That is why
> I submitted it.  Ideally I can hook up with whomever is working on the
> implementation (sounds like Dor?) and we can crank something out
> together.  :)
>   

virtio seems to have more modest goals:

- make it easier to write guest/host (or guest/guest) transports, but
not actually provide them
- limited to guest only (and Linux only)
- no discovery/hotplug (yet?)

since it wants to be hypervisor agnostic, it cannot specify an ABI (as
some already have ABIs, for example Xen).

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

  parent reply	other threads:[~2007-08-15  3:58 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-14 23:33 [RFC PATCH 0/9] PV device infrastructure v2 Gregory Haskins
     [not found] ` <20070814233352.11895.55788.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-08-14 23:33   ` [RFC PATCH 1/9] IOQ: Adding basic definitions for IO-Queue logic Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 2/9] PARAVIRTUALIZATION: Add support for a bus abstraction Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 3/9] IRQ: Export create_irq/destroy_irq Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 4/9] KVM: Add a guest side driver for IOQ Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 5/9] KVM: Add a gpa_to_hva helper function Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 6/9] KVM: Add support for IOQ Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 7/9] KVM: Add PVBUS support to the KVM host Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 8/9] IOQ: Add an IOQ network driver Gregory Haskins
2007-08-14 23:34   ` [RFC PATCH 9/9] KVM: Add an IOQNET backend driver Gregory Haskins
2007-08-15  2:50   ` [RFC PATCH 0/9] PV device infrastructure v2 Avi Kivity
     [not found]     ` <46C269EE.10807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-15  3:47       ` Gregory Haskins
     [not found]         ` <1187149634.4165.151.camel-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-08-15  3:58           ` Avi Kivity [this message]
     [not found]             ` <46C279E6.40004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-15  4:13               ` Gregory Haskins
     [not found]                 ` <1187151233.4165.166.camel-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-08-15  4:31                   ` Anthony Liguori
2007-08-15 12:15                   ` Gregory Haskins
2007-08-15  4:52       ` Rusty Russell
     [not found]         ` <1187153531.11093.119.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-08-15  7:52           ` Dor Laor
     [not found]             ` <64F9B87B6B770947A9F8391472E032160D309340-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-08-15 12:06               ` Gregory Haskins
     [not found]                 ` <1187179582.4165.197.camel-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-08-15 22:37                   ` Dor Laor
     [not found]                     ` <64F9B87B6B770947A9F8391472E032160D3B02FB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-08-15 23:56                       ` Gregory Haskins
2007-08-16  0:03               ` Rusty Russell
     [not found]                 ` <1187222609.11093.141.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-08-16  8:07                   ` Dor Laor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46C279E6.40004@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.