virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: KY Srinivasan <kys@microsoft.com>
Cc: Christoph Hellwig <hch@infradead.org>, Greg KH <greg@kroah.com>,
	"gregkh@suse.de" <gregkh@suse.de>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
	"virtualization@lists.osdl.org" <virtualization@lists.osdl.org>
Subject: Re: [PATCH 00/25] Staging: hv: Cleanup vmbus driver code
Date: Wed, 27 Apr 2011 08:18:56 -0400	[thread overview]
Message-ID: <20110427121856.GA20633@infradead.org> (raw)
In-Reply-To: <6E21E5352C11B742B20C142EB499E0481DD266@TK5EX14MBXC124.redmond.corp.microsoft.com>

On Wed, Apr 27, 2011 at 11:47:03AM +0000, KY Srinivasan wrote:
> On the host side, Windows emulates the  standard PC hardware
> to permit hosting of fully virtualized operating systems.
> To enhance disk I/O performance, we support a virtual block driver.
> This block driver currently handles disks that have been setup as IDE
> disks for the guest - as specified in the guest configuration.
> 
> On the SCSI side, we emulate a SCSI HBA. Devices configured
> under the SCSI controller for the guest are handled via this
> emulated HBA (SCSI front-end). So, SCSI disks configured for
> the guest are handled through native SCSI upper-level drivers.
> If this SCSI front-end driver is not loaded, currently, the guest
> cannot see devices that have been configured as SCSI devices.
> So, while the virtual block driver described earlier could potentially
> handle all block devices, the implementation choices made on the host
> will not permit it. Also, the only SCSI device that can be currently configured
> for the guest is a disk device.
> 
> Both the block device driver (hv_blkvsc) and the SCSI front-end
> driver (hv_storvsc) communicate with the host via unique channels 
> that are implemented as bi-directional ring buffers. Each (storage) 
> channel carries with it enough state to uniquely identify the device on
> the host side. Microsoft has chosen to use SCSI verbs for this storage channel 
> communication. 

This doesn't really explain much at all.  The only important piece
of information I can read from this statement is that both blkvsc
and storvsc only support disks, but not any other kind of device,
and that chosing either one is an arbitrary seletin when setting up
a VM configuration.

But this still isn't an excuse to implement a block layer driver for
a SCSI protocol, and it doesn't not explain in what way the two
protocols actually differ.  You really should implement blksvs as a SCSI
LLDD, too - and from the looks of it it doesn't even have to be a
separate one, but just adding the ids to storvsc would do the work.

  reply	other threads:[~2011-04-27 12:18 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-26 16:19 [PATCH 00/25] Staging: hv: Cleanup vmbus driver code K. Y. Srinivasan
2011-04-26 16:20 ` [PATCH 01/25] Staging: hv: Introduce a function to map a generic driver pointer to a pointer to storvsc_driver_object K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 02/25] Staging: hv: Get rid of the references to the priv element of struct hv_driver in block driver K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 03/25] Staging: hv: Get rid of the references to the priv element of struct hv_driver in hv_mouse.c K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 04/25] Staging: hv: Introduce a function to map a generic driver pointer to a pointer to struct netvsc_driver K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 05/25] Staging: hv: Get rid of the references to the priv element of struct hv_driver in net driver K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 06/25] Staging: hv: Get rid of the references to the priv element of struct hv_driver in storvsc_drv.c K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 07/25] Staging: hv: Cleanup vmbus_match() K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 08/25] Staging: hv: vmbus_driver cannot be unloaded; cleanup accordingly K. Y. Srinivasan
2011-04-26 22:45     ` Greg KH
2011-04-27  2:31       ` KY Srinivasan
2011-04-27  4:55         ` uabuntsu
2011-04-28  0:20         ` Greg KH
2011-04-29 13:49           ` KY Srinivasan
2011-04-29 15:10             ` Greg KH
2011-04-29 17:40               ` KY Srinivasan
2011-04-29 22:02               ` KY Srinivasan
2011-04-29 23:14                 ` Greg KH
2011-04-29 23:22                   ` KY Srinivasan
2011-04-26 16:20   ` [PATCH 09/25] Staging: hv: Get rid of vmbus_release_unattached_channels() as it is not used K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 10/25] Staging: hv: Get rid of the priv pointer in struct hv_driver K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 11/25] Staging: hv: Get rid of the drv field in struct hv_device K. Y. Srinivasan
2011-04-26 22:56     ` Greg KH
2011-04-27  1:55       ` KY Srinivasan
2011-04-26 16:20   ` [PATCH 12/25] Staging: hv: Cleanup error handling in vmbus_child_device_register() K. Y. Srinivasan
2011-04-26 22:50     ` Greg KH
2011-04-27  2:11       ` KY Srinivasan
2011-04-28  0:25         ` Greg KH
2011-04-29 15:45           ` KY Srinivasan
2011-04-26 16:20   ` [PATCH 13/25] Staging: hv: Cleanup vmbus_probe() function K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 14/25] Staging: hv: Properly handle errors in hv_pci_probe() K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 15/25] Staging: hv: Make hv_pci_dev a static variable K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 16/25] Staging: hv: Make msg_dpc a global variable K. Y. Srinivasan
2011-04-26 22:43     ` Greg KH
2011-04-26 16:20   ` [PATCH 17/25] Staging: hv: Make event_dpc " K. Y. Srinivasan
2011-04-26 22:43     ` Greg KH
2011-04-26 16:20   ` [PATCH 18/25] Staging: hv: Get rid of struct hv_bus K. Y. Srinivasan
2011-04-26 19:40     ` Greg KH
2011-04-26 20:23       ` KY Srinivasan
2011-04-26 20:58         ` Greg KH
2011-04-26 22:12           ` KY Srinivasan
2011-04-26 16:20   ` [PATCH 19/25] Staging: hv: Add probe function to struct hv_driver K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 20/25] Staging: hv: Use the probe function in " K. Y. Srinivasan
2011-04-26 16:51     ` Christoph Hellwig
2011-04-26 16:20   ` [PATCH 21/25] Staging: hv: Add remove() function to " K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 22/25] Staging: hv: Use the remove() function in " K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 23/25] Staging: hv: Add shutdown() function to " K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 24/25] Staging: hv: Use the shutdown() function in " K. Y. Srinivasan
2011-04-26 16:20   ` [PATCH 25/25] Staging: hv: VMBUS is a acpi enumerated device; get irq value from bios K. Y. Srinivasan
2011-04-26 16:57 ` [PATCH 00/25] Staging: hv: Cleanup vmbus driver code Christoph Hellwig
2011-04-26 17:04   ` KY Srinivasan
2011-04-26 19:39     ` Greg KH
2011-04-26 23:28 ` Greg KH
2011-04-27  1:54   ` KY Srinivasan
2011-04-27  6:45     ` Christoph Hellwig
2011-04-27 11:47       ` KY Srinivasan
2011-04-27 12:18         ` Christoph Hellwig [this message]
2011-04-29 16:32           ` KY Srinivasan
2011-04-29 16:40             ` Greg KH
2011-04-29 17:32               ` KY Srinivasan
2011-05-01 15:40               ` Christoph Hellwig
2011-05-01 15:46                 ` KY Srinivasan
2011-05-01 16:07                   ` Christoph Hellwig
2011-05-01 18:08                     ` KY Srinivasan
2011-05-01 20:53                       ` Christoph Hellwig
2011-05-02 19:48                         ` KY Srinivasan
2011-05-02 20:00                           ` Christoph Hellwig
2011-05-02 21:16                             ` KY Srinivasan
2011-05-02 21:35                               ` Christoph Hellwig
2011-05-02 22:11                                 ` KY Srinivasan
2011-05-01 15:39             ` Christoph Hellwig
2011-05-01 15:47               ` Greg KH
2011-05-01 18:56                 ` KY Srinivasan
2011-05-01 20:47                   ` Christoph Hellwig
2011-04-28  0:28     ` Greg KH
2011-04-29 14:26       ` KY Srinivasan
2011-04-29 15:08         ` Greg KH

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=20110427121856.GA20633@infradead.org \
    --to=hch@infradead.org \
    --cc=devel@linuxdriverproject.org \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=kys@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=virtualization@lists.osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).