All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Cc: kvm-devel
	<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
	lguest <lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH 1/6] virtio interace
Date: Fri, 21 Sep 2007 14:05:31 +0200	[thread overview]
Message-ID: <200709211405.32116.arnd@arndb.de> (raw)
In-Reply-To: <1190290140.7262.228.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

On Thursday 20 September 2007, Rusty Russell wrote:
> + * virtio_driver - operations for a virtio I/O driver
> + * @name: the name of the driver (KBUILD_MODNAME).
> + * @owner: the module which contains these routines (ie. THIS_MODULE).
> + * @id_table: the ids (we re-use PCI ids) serviced by this driver.
> + * @probe: the function to call when a device is found.  Returns a token for
> + *    remove, or PTR_ERR().
> + * @remove: the function when a device is removed.
> + */
> +struct virtio_driver {
> +       const char *name;
> +       struct module *owner;
> +       struct pci_device_id *id_table;
> +       void *(*probe)(struct device *device,
> +                      struct virtio_config_space *config,
> +                      struct virtqueue_ops *vqops);
> +       void (*remove)(void *dev);
> +};
> +
> +int register_virtio_driver(struct virtio_driver *drv);
> +void unregister_virtio_driver(struct virtio_driver *drv);
> +
> +/* The particular virtio backend supplies these. */
> +struct virtio_backend_ops {
> +       int (*register_driver)(struct virtio_driver *drv);
> +       void (*unregister_driver)(struct virtio_driver *drv);
> +};
> +extern struct virtio_backend_ops virtio_backend_ops;

This still seems a little awkward. From what I understand, you register
a virtio_driver, which leads to a pci_driver (or whatever you are based on)
to be registered behind the covers, so that the pci_device can be used
directly as the virtio device.

I think there should instead be a pci_driver that automatically binds
to all PCI based virtio imlpementations and creates a child device for
the actual virtio_device. Then you can have the virtio_driver itself
be based on a device_driver, and you can get rid of the global
virtio_backend_ops. That will be useful when a virtual machine
has two ways to get at the virtio devices, e.g. a KVM guest that
has both hcall based probing for virtio devices and some other virtio
devices that are exported through PCI.

	Arnd <><

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

  parent reply	other threads:[~2007-09-21 12:05 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-20 12:03 [PATCH 0/6] virtio with config abstraction and ring implementation Rusty Russell
2007-09-20 12:09 ` [PATCH 1/6] virtio interace Rusty Russell
2007-09-20 13:43 ` [PATCH 0/6] virtio with config abstraction and ring implementation Dor Laor
     [not found] ` <1190289808.7262.223.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:09   ` [PATCH 1/6] virtio interace Rusty Russell
2007-09-20 12:12     ` [PATCH 2/6] virtio_config Rusty Russell
2007-09-20 12:27     ` [kvm-devel] [PATCH 1/6] virtio interace Avi Kivity
2007-09-21 12:05     ` Arnd Bergmann
     [not found]     ` <1190290140.7262.228.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:12       ` [PATCH 2/6] virtio_config Rusty Russell
2007-09-20 12:14         ` [PATCH 3/6] virtio net driver Rusty Russell
     [not found]         ` <1190290369.7262.231.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:14           ` Rusty Russell
     [not found]             ` <1190290495.7262.235.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:16               ` [PATCH 4/6] virtio block driver Rusty Russell
     [not found]                 ` <1190290606.7262.239.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:19                   ` [PATCH 5/6] virtio console driver Rusty Russell
2007-09-20 12:27                     ` [PATCH 6/6] virtio ring helper Rusty Russell
     [not found]                     ` <1190290761.7262.242.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:27                       ` Rusty Russell
     [not found]                         ` <1190291234.7262.246.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:43                           ` Avi Kivity
2007-09-21  2:04                             ` [kvm-devel] " Rusty Russell
     [not found]                             ` <46F26AF6.60904-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-21  2:04                               ` Rusty Russell
2007-09-23 10:05                                 ` [kvm-devel] " Avi Kivity
     [not found]                                 ` <1190340251.19451.36.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 10:05                                   ` Avi Kivity
2007-09-23 11:40                                     ` [kvm-devel] " Rusty Russell
     [not found]                                     ` <46F63A64.9070200-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-23 11:40                                       ` Rusty Russell
2007-09-23 11:46                                         ` [kvm-devel] " Avi Kivity
     [not found]                                         ` <1190547607.27805.120.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 11:46                                           ` Avi Kivity
2007-09-20 12:43                         ` [kvm-devel] " Avi Kivity
2007-09-20 12:27                   ` [PATCH 4/6] virtio block driver Jens Axboe
     [not found]                     ` <20070920122713.GK2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-21 12:00                       ` Rusty Russell
     [not found]                         ` <1190376007.27805.19.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 12:27                           ` Jens Axboe
     [not found]                             ` <20070921122746.GO2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-23  6:47                               ` Rusty Russell
2007-09-23  6:47                             ` Rusty Russell
2007-09-21 12:27                         ` Jens Axboe
2007-09-21 12:00                     ` Rusty Russell
2007-09-20 13:05                   ` Jens Axboe
2007-09-21  2:06                     ` Rusty Russell
2007-09-21 11:47                       ` Jens Axboe
     [not found]                       ` <1190340367.19451.40.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 11:47                         ` Jens Axboe
     [not found]                           ` <20070921114703.GN2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-21 12:30                             ` Rusty Russell
2007-09-21 12:30                           ` Rusty Russell
2007-09-20 12:19                 ` [PATCH 5/6] virtio console driver Rusty Russell
2007-09-20 12:27                 ` [PATCH 4/6] virtio block driver Jens Axboe
2007-09-20 13:05                 ` Jens Axboe
2007-09-21 10:48               ` [PATCH 3/6] virtio net driver Christian Borntraeger
2007-09-21 11:53                 ` [kvm-devel] " Rusty Russell
     [not found]                 ` <200709211248.11783.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-21 11:53                   ` Rusty Russell
2007-09-21 12:36                     ` [kvm-devel] " Christian Borntraeger
     [not found]                     ` <1190375615.27805.9.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 12:36                       ` Christian Borntraeger
     [not found]                         ` <200709211436.43964.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-21 14:08                           ` Herbert Xu
     [not found]                             ` <20070921140833.GA12242-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2007-09-21 14:42                               ` Christian Borntraeger
     [not found]                                 ` <200709211642.25208.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-23  7:13                                   ` Rusty Russell
2007-09-23  7:13                                 ` [kvm-devel] " Rusty Russell
2007-09-21 14:42                             ` Christian Borntraeger
2007-09-21 14:08                         ` Herbert Xu
2007-09-20 12:16             ` [PATCH 4/6] virtio block driver Rusty Russell
2007-09-21 10:48             ` [kvm-devel] [PATCH 3/6] virtio net driver Christian Borntraeger
2007-09-20 12:36           ` [PATCH 2/6] virtio_config Avi Kivity
     [not found]             ` <46F26958.4080102-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-20 12:55               ` Avi Kivity
     [not found]                 ` <46F26DC7.9040001-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-21  1:50                   ` Rusty Russell
     [not found]                     ` <1190339435.19451.23.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-22 13:03                       ` Avi Kivity
2007-09-22 13:03                     ` [kvm-devel] " Avi Kivity
2007-09-21  1:50                 ` Rusty Russell
2007-09-20 12:55             ` Avi Kivity
2007-09-20 12:36         ` Avi Kivity
2007-09-20 12:27       ` [PATCH 1/6] virtio interace Avi Kivity
2007-09-21 11:37         ` [kvm-devel] " Rusty Russell
2007-09-21 12:05       ` Arnd Bergmann [this message]
     [not found]         ` <200709211405.32116.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-21 12:45           ` Rusty Russell
     [not found]             ` <1190378736.27805.54.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 14:22               ` Arnd Bergmann
2007-09-22  9:55                 ` Rusty Russell
2007-09-22 10:01                   ` Arnd Bergmann
     [not found]                   ` <1190454934.27805.80.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-22 10:01                     ` Arnd Bergmann
     [not found]                       ` <200709221201.33865.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-23  8:33                         ` Rusty Russell
2007-09-23 11:20                           ` Dor Laor
     [not found]                           ` <1190536431.27805.109.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 11:20                             ` Dor Laor
2007-09-23  8:33                       ` Rusty Russell
2007-09-21 14:22             ` Arnd Bergmann
2007-09-21 12:45         ` Rusty Russell
2007-09-20 13:43   ` [PATCH 0/6] virtio with config abstraction and ring implementation Dor Laor
2007-09-20 13:50     ` [Lguest] [PATCH 0/6] virtio with config abstraction and ringimplementation Dor Laor
     [not found]     ` <46F2791A.8070601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-20 13:50       ` Dor Laor
2007-09-21  3:20     ` [PATCH 0/6] virtio with config abstraction and ring implementation Rusty Russell

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=200709211405.32116.arnd@arndb.de \
    --to=arnd-r2ngtmty4d4@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
    --cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@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.