From: "K. Y. Srinivasan" <kys@microsoft.com> To: linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, ohering@suse.com, jbottomley@parallels.com, jasowang@redhat.com, apw@canonical.com, linux-scsi@vger.kernel.org Cc: "K. Y. Srinivasan" <kys@microsoft.com>, <stable@vger.kernel.org> Subject: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host Date: Tue, 8 Jul 2014 17:46:45 -0700 [thread overview] Message-ID: <1404866812-26950-1-git-send-email-kys@microsoft.com> (raw) In-Reply-To: <1404866789-26910-1-git-send-email-kys@microsoft.com> Hyper-V hosts can support multiple targets and multiple channels and larger number of LUNs per target. Update the code to reflect this. With this patch we can correctly enumerate all the paths in a multi-path storage environment. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> --- drivers/scsi/storvsc_drv.c | 53 ++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 14 deletions(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index 9969fa1..2e4131c 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -331,16 +331,19 @@ static int storvsc_timeout = 180; static void storvsc_on_channel_callback(void *context); /* - * In Hyper-V, each port/path/target maps to 1 scsi host adapter. In - * reality, the path/target is not used (ie always set to 0) so our - * scsi host adapter essentially has 1 bus with 1 target that contains - * up to 256 luns. + * In Hyper-V, each port/path/target maps to 1 scsi host adapter. */ -#define STORVSC_MAX_LUNS_PER_TARGET 64 -#define STORVSC_MAX_TARGETS 1 -#define STORVSC_MAX_CHANNELS 1 +#define STORVSC_MAX_LUNS_PER_TARGET 255 +#define STORVSC_MAX_TARGETS 2 +#define STORVSC_MAX_CHANNELS 8 +#define STORVSC_FC_MAX_LUNS_PER_TARGET 255 +#define STORVSC_FC_MAX_TARGETS 128 +#define STORVSC_FC_MAX_CHANNELS 8 +#define STORVSC_IDE_MAX_LUNS_PER_TARGET 64 +#define STORVSC_IDE_MAX_TARGETS 1 +#define STORVSC_IDE_MAX_CHANNELS 1 struct storvsc_cmd_request { struct list_head entry; @@ -1690,7 +1693,7 @@ static struct scsi_host_template scsi_driver = { .slave_alloc = storvsc_device_alloc, .slave_destroy = storvsc_device_destroy, .slave_configure = storvsc_device_configure, - .cmd_per_lun = 1, + .cmd_per_lun = 255, /* 64 max_queue * 1 target */ .can_queue = STORVSC_MAX_IO_REQUESTS*STORVSC_MAX_TARGETS, .this_id = -1, @@ -1789,12 +1792,34 @@ static int storvsc_probe(struct hv_device *device, host_dev->path = stor_device->path_id; host_dev->target = stor_device->target_id; - /* max # of devices per target */ - host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; - /* max # of targets per channel */ - host->max_id = STORVSC_MAX_TARGETS; - /* max # of channels */ - host->max_channel = STORVSC_MAX_CHANNELS - 1; + switch (dev_id->driver_data) { + case SFC_GUID: + /* max # of devices per target */ + host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_FC_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; + break; + + case SCSI_GUID: + /* max # of devices per target */ + host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_MAX_CHANNELS - 1; + break; + + default: + /* max # of devices per target */ + host->max_lun = STORVSC_IDE_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_IDE_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_IDE_MAX_CHANNELS - 1; + break; + } /* max cmd length */ host->max_cmd_len = STORVSC_MAX_CMD_LEN; -- 1.7.4.1
WARNING: multiple messages have this Message-ID (diff)
From: "K. Y. Srinivasan" <kys@microsoft.com> To: linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, ohering@suse.com, jbottomley@parallels.com, jasowang@redhat.com, apw@canonical.com, linux-scsi@vger.kernel.org Cc: stable@vger.kernel.org Subject: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host Date: Tue, 8 Jul 2014 17:46:45 -0700 [thread overview] Message-ID: <1404866812-26950-1-git-send-email-kys@microsoft.com> (raw) In-Reply-To: <1404866789-26910-1-git-send-email-kys@microsoft.com> Hyper-V hosts can support multiple targets and multiple channels and larger number of LUNs per target. Update the code to reflect this. With this patch we can correctly enumerate all the paths in a multi-path storage environment. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> --- drivers/scsi/storvsc_drv.c | 53 ++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 14 deletions(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index 9969fa1..2e4131c 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -331,16 +331,19 @@ static int storvsc_timeout = 180; static void storvsc_on_channel_callback(void *context); /* - * In Hyper-V, each port/path/target maps to 1 scsi host adapter. In - * reality, the path/target is not used (ie always set to 0) so our - * scsi host adapter essentially has 1 bus with 1 target that contains - * up to 256 luns. + * In Hyper-V, each port/path/target maps to 1 scsi host adapter. */ -#define STORVSC_MAX_LUNS_PER_TARGET 64 -#define STORVSC_MAX_TARGETS 1 -#define STORVSC_MAX_CHANNELS 1 +#define STORVSC_MAX_LUNS_PER_TARGET 255 +#define STORVSC_MAX_TARGETS 2 +#define STORVSC_MAX_CHANNELS 8 +#define STORVSC_FC_MAX_LUNS_PER_TARGET 255 +#define STORVSC_FC_MAX_TARGETS 128 +#define STORVSC_FC_MAX_CHANNELS 8 +#define STORVSC_IDE_MAX_LUNS_PER_TARGET 64 +#define STORVSC_IDE_MAX_TARGETS 1 +#define STORVSC_IDE_MAX_CHANNELS 1 struct storvsc_cmd_request { struct list_head entry; @@ -1690,7 +1693,7 @@ static struct scsi_host_template scsi_driver = { .slave_alloc = storvsc_device_alloc, .slave_destroy = storvsc_device_destroy, .slave_configure = storvsc_device_configure, - .cmd_per_lun = 1, + .cmd_per_lun = 255, /* 64 max_queue * 1 target */ .can_queue = STORVSC_MAX_IO_REQUESTS*STORVSC_MAX_TARGETS, .this_id = -1, @@ -1789,12 +1792,34 @@ static int storvsc_probe(struct hv_device *device, host_dev->path = stor_device->path_id; host_dev->target = stor_device->target_id; - /* max # of devices per target */ - host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; - /* max # of targets per channel */ - host->max_id = STORVSC_MAX_TARGETS; - /* max # of channels */ - host->max_channel = STORVSC_MAX_CHANNELS - 1; + switch (dev_id->driver_data) { + case SFC_GUID: + /* max # of devices per target */ + host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_FC_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; + break; + + case SCSI_GUID: + /* max # of devices per target */ + host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_MAX_CHANNELS - 1; + break; + + default: + /* max # of devices per target */ + host->max_lun = STORVSC_IDE_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_IDE_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_IDE_MAX_CHANNELS - 1; + break; + } /* max cmd length */ host->max_cmd_len = STORVSC_MAX_CMD_LEN; -- 1.7.4.1
next prev parent reply other threads:[~2014-07-08 23:46 UTC|newest] Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-07-09 0:46 [PATCH 0/8] Drivers: scsi: storvsc: Bug fixes and improvements K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan [this message] 2014-07-09 0:46 ` [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host K. Y. Srinivasan 2014-07-09 0:46 ` [PATCH 2/8] Drivers: scsi: storvsc: Filter commands based on the storage protocol version K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:40 ` Christoph Hellwig 2014-07-09 20:02 ` KY Srinivasan 2014-07-09 20:02 ` KY Srinivasan 2014-07-09 0:46 ` [PATCH 3/8] Drivers: scsi: storvsc: Fix a bug in handling VMBUS " K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:41 ` Christoph Hellwig 2014-07-09 20:01 ` KY Srinivasan 2014-07-09 0:46 ` [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:43 ` Christoph Hellwig 2014-07-09 8:43 ` Christoph Hellwig 2014-07-09 19:52 ` KY Srinivasan 2014-07-09 19:52 ` KY Srinivasan 2014-07-09 19:56 ` James Bottomley 2014-07-09 19:56 ` James Bottomley 2014-07-09 21:14 ` KY Srinivasan 2014-07-09 21:14 ` KY Srinivasan 2014-07-09 22:27 ` James Bottomley 2014-07-09 22:27 ` James Bottomley 2014-07-09 22:36 ` KY Srinivasan 2014-07-10 10:07 ` hch 2014-07-10 21:02 ` KY Srinivasan 2014-07-10 21:02 ` KY Srinivasan 2014-07-10 22:12 ` James Bottomley 2014-07-10 22:12 ` James Bottomley 2014-07-10 22:12 ` James Bottomley 2014-07-11 6:32 ` hch 2014-07-11 6:32 ` hch 2014-07-11 12:54 ` Martin K. Petersen 2014-07-11 12:54 ` Martin K. Petersen 2014-07-12 2:53 ` KY Srinivasan 2014-07-12 2:50 ` KY Srinivasan 2014-07-13 12:58 ` Martin K. Petersen 2014-07-13 12:58 ` Martin K. Petersen 2014-07-13 18:49 ` KY Srinivasan 2014-07-13 18:49 ` KY Srinivasan 2014-07-14 2:37 ` KY Srinivasan 2014-07-14 2:37 ` KY Srinivasan 2014-07-14 3:19 ` KY Srinivasan 2014-07-16 11:01 ` hch 2014-07-16 11:01 ` hch 2014-07-16 14:53 ` James Bottomley 2014-07-16 14:53 ` James Bottomley 2014-07-16 15:44 ` Martin K. Petersen 2014-07-16 15:44 ` Martin K. Petersen 2014-07-16 17:38 ` hch 2014-07-16 17:38 ` hch 2014-07-16 17:47 ` Martin K. Petersen 2014-07-16 17:47 ` Martin K. Petersen 2014-07-16 17:55 ` hch 2014-07-16 17:55 ` hch 2014-07-16 18:02 ` James Bottomley 2014-07-16 18:43 ` Elliott, Robert (Server Storage) 2014-07-16 19:20 ` Martin K. Petersen 2014-07-16 19:20 ` Martin K. Petersen 2014-07-17 7:42 ` hch 2014-07-17 12:41 ` Martin K. Petersen 2014-07-17 12:41 ` Martin K. Petersen 2014-07-16 18:45 ` Martin K. Petersen 2014-07-16 18:45 ` Martin K. Petersen 2014-07-16 18:50 ` James Bottomley 2014-07-16 18:50 ` James Bottomley 2014-07-16 19:08 ` Martin K. Petersen 2014-07-16 19:08 ` Martin K. Petersen 2014-07-16 19:14 ` James Bottomley 2014-07-16 19:14 ` James Bottomley 2014-07-16 19:44 ` Martin K. Petersen 2014-07-16 19:44 ` Martin K. Petersen 2014-07-09 0:46 ` [PATCH 5/8] Drivers: scsi: storvsc: Fix a bug in the handling of SRB status flags K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:43 ` Christoph Hellwig 2014-07-09 8:43 ` Christoph Hellwig 2014-07-09 0:46 ` [PATCH 6/8] Drivers: scsi: storvsc: Implement an abort handler K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:44 ` Christoph Hellwig 2014-07-09 8:44 ` Christoph Hellwig 2014-07-09 18:51 ` KY Srinivasan 2014-07-10 10:13 ` Christoph Hellwig 2014-07-10 10:13 ` Christoph Hellwig 2014-07-10 22:26 ` KY Srinivasan 2014-07-11 9:52 ` Hannes Reinecke 2014-07-11 9:52 ` Hannes Reinecke 2014-07-11 9:54 ` Christoph Hellwig 2014-07-11 9:54 ` Christoph Hellwig 2014-07-11 14:49 ` KY Srinivasan 2014-07-11 14:49 ` KY Srinivasan 2014-07-10 10:33 ` Richard Weinberger 2014-07-12 16:16 ` Richard Weinberger 2014-07-12 16:16 ` Richard Weinberger 2014-07-12 16:35 ` KY Srinivasan 2014-07-12 16:35 ` KY Srinivasan 2014-07-09 0:46 ` [PATCH 7/8] drivers: scsi: storvsc: Set srb_flags in all cases K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:44 ` Christoph Hellwig 2014-07-09 18:40 ` KY Srinivasan 2014-07-09 18:40 ` KY Srinivasan 2014-07-10 10:17 ` Christoph Hellwig 2014-07-10 22:22 ` KY Srinivasan 2014-07-10 10:18 ` Christoph Hellwig 2014-07-10 10:18 ` Christoph Hellwig 2014-07-11 21:03 ` KY Srinivasan 2014-07-09 0:46 ` [PATCH 8/8] drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure K. Y. Srinivasan 2014-07-09 0:46 ` K. Y. Srinivasan 2014-07-09 8:46 ` Christoph Hellwig 2014-07-09 18:35 ` KY Srinivasan 2014-07-09 18:35 ` KY Srinivasan 2014-07-09 8:39 ` [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host Christoph Hellwig 2014-07-09 20:07 ` KY Srinivasan 2014-07-09 20:07 ` KY Srinivasan 2014-07-09 23:39 ` KY Srinivasan 2014-07-09 23:39 ` KY Srinivasan
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=1404866812-26950-1-git-send-email-kys@microsoft.com \ --to=kys@microsoft.com \ --cc=apw@canonical.com \ --cc=devel@linuxdriverproject.org \ --cc=jasowang@redhat.com \ --cc=jbottomley@parallels.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=ohering@suse.com \ --cc=stable@vger.kernel.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: linkBe 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.