All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
To: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH 2/6] virtio block driver for QEMU (v2)
Date: Tue, 13 Nov 2007 11:28:44 +1100	[thread overview]
Message-ID: <200711131128.44492.rusty@rustcorp.com.au> (raw)
In-Reply-To: <4738E102.2050200-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>

On Tuesday 13 November 2007 10:25:54 Anthony Liguori wrote:
> Dor Laor wrote:
> > Anthony Liguori wrote:
> >> Dor Laor wrote:
> >>> In general I think we need to add another feature or even version
> >>> number ( I know you guys hate it).
> >>> The reason is - Let's say you dont change functionality but change
> >>> the irq protocol (for example the isr won't be zeroed on read), then
> >>> an old
> >>> guest driver wouldn't know it runs on a new host version and will
> >>> have its irq line pulled up.
> >>> So I suggest adding a capability of VIRTIO_ISR_CLEAR_XXX or adding a
> >>> version number.
> >>> Comments?
> >>
> >> I don't think we'll actually change the ISR protocol.  I think it's
> >> the best that it can actually be.  However, if we do need to change
> >> the ABI for some reason, I think the right thing to do is just use a
> >> new device ID (since it's effectively a new device).
> >>
> >> Regards,
> >>
> >> Anthony Liguori
> >
> > Changing the devid is acceptable and much more easier then backward
> > compatibility support, I prefer it too.
> > Note that there are some disadvantages when changing the devid - For
> > example,
> > if you installed an old device drivers in the guest kernel and after a
> > while you bring the guest down,
> > upgrade the kvm host version and bring the guest back up.
> > If it has a new device id (and since the abi is not maintained the
> > driver won't match VENDOR=virtio; DEVID=*),
> > then the guest won't have a driver for the new device.
> > In that case I think a guest agent can switch to fully virtualized
> > device and afterwards install the driver automatically.
> > This is what we do in our production environment.
>
> Hrm, I have to think about backwards compatibility at the virtio-pci
> layer.  virtio-pci basically exposes two things, the first is an ABI for
> doing bidirectional notification and setting driver status.  The second
> is a standard and transparent mechanism for virt_rings.
>
> I think that the first is simply enough that we don't need a feature
> mask or a version number.  Maybe perhaps with the status bits, I don't
> know.  For the virt_rings, if we had something more sophisticated than
> virt_rings down the road, that can be discovered/configured in the
> per-device configuration area so I don't think we need feature/version
> info for that.

I originally had feature bits on each virtqueue for just such a reason.  Used 
the same "ack" logic as the normal feature bits (ie. set corresponding bit to 
indicate guest wants to use the feature).

Probably worth engineering this in now.

Cheers,
Rusty.

-------------------------------------------------------------------------
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-11-13  0:28 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-11  3:20 [PATCH 0/6] QEMU support for virtio (v2) Anthony Liguori
     [not found] ` <11947512401155-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-11  3:20   ` [PATCH 1/6] Basic virtio infrastructure for QEMU (v2) Anthony Liguori
2007-11-11  3:20   ` [PATCH 2/6] virtio block driver " Anthony Liguori
     [not found]     ` <11947512432057-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-11 17:24       ` Dor Laor
     [not found]         ` <47373ADF.3000607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-11 19:25           ` Anthony Liguori
     [not found]             ` <47375731.7020007-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-12 12:21               ` Dor Laor
     [not found]                 ` <4738452F.8070502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-12 23:25                   ` Anthony Liguori
     [not found]                     ` <4738E102.2050200-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-13  0:28                       ` Rusty Russell [this message]
     [not found]                         ` <200711131128.44492.rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
2007-11-27  9:47                           ` Avi Kivity
2007-11-12 15:02       ` Daniel P. Berrange
     [not found]         ` <20071112150211.GA14436-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-11-12 15:05           ` Avi Kivity
     [not found]             ` <47386BA9.8050000-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-12 23:26               ` Anthony Liguori
2007-11-11  3:20   ` [PATCH 3/6] 9p virtio transport " Anthony Liguori
2007-11-11  3:20   ` [PATCH 4/6] virtio network driver " Anthony Liguori
     [not found]     ` <11947512454030-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-11 17:31       ` Dor Laor
     [not found]         ` <47373C6B.7090102-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-11 19:29           ` Anthony Liguori
2007-11-11  3:20   ` [PATCH 5/6] Remove hypercall driver (v2) Anthony Liguori
     [not found]     ` <1194751246584-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-11 17:25       ` Dor Laor
2007-11-27 12:28       ` Avi Kivity
2007-11-11  3:20   ` [PATCH 6/6] Provide a mechanism to build virtio drivers as modules (v2) Anthony Liguori
     [not found]     ` <11947512473786-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-27 12:30       ` Avi Kivity

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=200711131128.44492.rusty@rustcorp.com.au \
    --to=rusty-8n+1lvoiyb80n/f98k4iww@public.gmane.org \
    --cc=aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@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.