All of lore.kernel.org
 help / color / mirror / Atom feed
From: KY Srinivasan <kys@microsoft.com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: "hch@infradead.org" <hch@infradead.org>,
	James Bottomley <jbottomley@parallels.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
	"apw@canonical.com" <apw@canonical.com>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"ohering@suse.com" <ohering@suse.com>,
	"jasowang@redhat.com" <jasowang@redhat.com>
Subject: RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
Date: Mon, 14 Jul 2014 02:37:50 +0000	[thread overview]
Message-ID: <ba0ec0e3d04748eab3fb26e3c4964b4d@BY2PR03MB299.namprd03.prod.outlook.com> (raw)
In-Reply-To: yq1a98d2z5x.fsf@sermon.lab.mkp.net



> -----Original Message-----
> From: KY Srinivasan
> Sent: Sunday, July 13, 2014 11:50 AM
> To: 'Martin K. Petersen'
> Cc: hch@infradead.org; James Bottomley; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; apw@canonical.com; stable@vger.kernel.org;
> linux-scsi@vger.kernel.org; ohering@suse.com; jasowang@redhat.com
> Subject: RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> 
> 
> 
> > -----Original Message-----
> > From: Martin K. Petersen [mailto:martin.petersen@oracle.com]
> > Sent: Sunday, July 13, 2014 5:59 AM
> > To: KY Srinivasan
> > Cc: hch@infradead.org; James Bottomley; linux-kernel@vger.kernel.org;
> > devel@linuxdriverproject.org; apw@canonical.com;
> > stable@vger.kernel.org; linux-scsi@vger.kernel.org; ohering@suse.com;
> > jasowang@redhat.com
> > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> >
> > >>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:
> >
> > KY> Windows hosts do support UNMAP and set the field in the EVPD.
> > KY> However, since the host advertises SPC-2 compliance, Linux does
> > KY> not even query the VPD page.
> >
> > >> If we want to enable UNMAP in this case I'd prefer a blacklist
> > >> entry than trying UNMAP despite the device not advertising it.
> >
> > I agree with that. We could do something like the patch below.
> >
> > However, I do think it's a good idea that you guys are looking into
> > reporting SPC-3.
> 
> Thanks Martin; this patch would address our present issues. I will get some
> testing done and report back.

How should we force the flag (BLIST_TRY_VPD_PAGES) to be set.

K. Y
> 
> Regards,
> 
> K. Y
> >
> >
> > SCSI: Add a blacklist flag which enables VPD page inquiries
> >
> > Despite supporting modern SCSI features some storage devices continue
> > to claim conformance to an older version of the SPC spec. This is done
> > for compatibility with legacy operating systems.
> >
> > Linux by default will not attempt to read VPD pages on devices that
> > claim
> > SPC-2 or older. Introduce a blacklist flag that can be used to trigger
> > VPD page inquiries on devices that are known to support them.
> >
> > Reported-by: KY Srinivasan <kys@microsoft.com>
> > Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> >
> > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index
> > 4a6e4ba5a400..a5b1a224628a 100644
> > --- a/drivers/scsi/scsi_scan.c
> > +++ b/drivers/scsi/scsi_scan.c
> > @@ -949,7 +949,9 @@ static int scsi_add_lun(struct scsi_device *sdev,
> > unsigned char *inq_result,
> >
> >  	sdev->eh_timeout = SCSI_DEFAULT_EH_TIMEOUT;
> >
> > -	if (*bflags & BLIST_SKIP_VPD_PAGES)
> > +	if (*bflags & BLIST_TRY_VPD_PAGES)
> > +		sdev->try_vpd_pages = 1;
> > +	else if (*bflags & BLIST_SKIP_VPD_PAGES)
> >  		sdev->skip_vpd_pages = 1;
> >
> >  	transport_configure_device(&sdev->sdev_gendev);
> > diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index
> > 87566b51fcf7..31d32b9077ca 100644
> > --- a/drivers/scsi/sd.c
> > +++ b/drivers/scsi/sd.c
> > @@ -2701,6 +2701,11 @@ static void sd_read_write_same(struct scsi_disk
> > *sdkp, unsigned char *buffer)
> >
> >  static int sd_try_extended_inquiry(struct scsi_device *sdp)  {
> > +	/* Attempt VPD inquiry if the device blacklist explicitly calls
> > +	 * for it.
> > +	 */
> > +	if (sdp->try_vpd_pages)
> > +		return 1;
> >  	/*
> >  	 * Although VPD inquiries can go to SCSI-2 type devices,
> >  	 * some USB ones crash on receiving them, and the pages diff --git
> > a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index
> > 9aa38f7b303b..f579408620f0 100644
> > --- a/include/scsi/scsi_device.h
> > +++ b/include/scsi/scsi_device.h
> > @@ -155,6 +155,7 @@ struct scsi_device {
> >  	unsigned skip_ms_page_8:1;	/* do not use MODE SENSE page 0x08
> > */
> >  	unsigned skip_ms_page_3f:1;	/* do not use MODE SENSE page 0x3f
> > */
> >  	unsigned skip_vpd_pages:1;	/* do not read VPD pages */
> > +	unsigned try_vpd_pages:1;	/* attempt to read VPD pages */
> >  	unsigned use_192_bytes_for_3f:1; /* ask for 192 bytes from page
> 0x3f
> > */
> >  	unsigned no_start_on_add:1;	/* do not issue start on add */
> >  	unsigned allow_restart:1; /* issue START_UNIT in error handler */
> > diff --git a/include/scsi/scsi_devinfo.h b/include/scsi/scsi_devinfo.h
> > index 8670c04e199e..1fdd6fc5492b 100644
> > --- a/include/scsi/scsi_devinfo.h
> > +++ b/include/scsi/scsi_devinfo.h
> > @@ -34,4 +34,5 @@
> >  #define BLIST_SKIP_VPD_PAGES	0x4000000 /* Ignore SBC-3 VPD pages
> > */
> >  #define BLIST_SCSI3LUN		0x8000000 /* Scan more than 256
> > LUNs
> >  					     for sequential scan */
> > +#define BLIST_TRY_VPD_PAGES	0x10000000 /* Attempt to read VPD
> > pages */
> >  #endif

WARNING: multiple messages have this Message-ID (diff)
From: KY Srinivasan <kys@microsoft.com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>,
	"ohering@suse.com" <ohering@suse.com>,
	"hch@infradead.org" <hch@infradead.org>,
	James Bottomley <jbottomley@parallels.com>,
	"apw@canonical.com" <apw@canonical.com>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>
Subject: RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
Date: Mon, 14 Jul 2014 02:37:50 +0000	[thread overview]
Message-ID: <ba0ec0e3d04748eab3fb26e3c4964b4d@BY2PR03MB299.namprd03.prod.outlook.com> (raw)
In-Reply-To: yq1a98d2z5x.fsf@sermon.lab.mkp.net



> -----Original Message-----
> From: KY Srinivasan
> Sent: Sunday, July 13, 2014 11:50 AM
> To: 'Martin K. Petersen'
> Cc: hch@infradead.org; James Bottomley; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; apw@canonical.com; stable@vger.kernel.org;
> linux-scsi@vger.kernel.org; ohering@suse.com; jasowang@redhat.com
> Subject: RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> 
> 
> 
> > -----Original Message-----
> > From: Martin K. Petersen [mailto:martin.petersen@oracle.com]
> > Sent: Sunday, July 13, 2014 5:59 AM
> > To: KY Srinivasan
> > Cc: hch@infradead.org; James Bottomley; linux-kernel@vger.kernel.org;
> > devel@linuxdriverproject.org; apw@canonical.com;
> > stable@vger.kernel.org; linux-scsi@vger.kernel.org; ohering@suse.com;
> > jasowang@redhat.com
> > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> >
> > >>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:
> >
> > KY> Windows hosts do support UNMAP and set the field in the EVPD.
> > KY> However, since the host advertises SPC-2 compliance, Linux does
> > KY> not even query the VPD page.
> >
> > >> If we want to enable UNMAP in this case I'd prefer a blacklist
> > >> entry than trying UNMAP despite the device not advertising it.
> >
> > I agree with that. We could do something like the patch below.
> >
> > However, I do think it's a good idea that you guys are looking into
> > reporting SPC-3.
> 
> Thanks Martin; this patch would address our present issues. I will get some
> testing done and report back.

How should we force the flag (BLIST_TRY_VPD_PAGES) to be set.

K. Y
> 
> Regards,
> 
> K. Y
> >
> >
> > SCSI: Add a blacklist flag which enables VPD page inquiries
> >
> > Despite supporting modern SCSI features some storage devices continue
> > to claim conformance to an older version of the SPC spec. This is done
> > for compatibility with legacy operating systems.
> >
> > Linux by default will not attempt to read VPD pages on devices that
> > claim
> > SPC-2 or older. Introduce a blacklist flag that can be used to trigger
> > VPD page inquiries on devices that are known to support them.
> >
> > Reported-by: KY Srinivasan <kys@microsoft.com>
> > Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> >
> > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index
> > 4a6e4ba5a400..a5b1a224628a 100644
> > --- a/drivers/scsi/scsi_scan.c
> > +++ b/drivers/scsi/scsi_scan.c
> > @@ -949,7 +949,9 @@ static int scsi_add_lun(struct scsi_device *sdev,
> > unsigned char *inq_result,
> >
> >  	sdev->eh_timeout = SCSI_DEFAULT_EH_TIMEOUT;
> >
> > -	if (*bflags & BLIST_SKIP_VPD_PAGES)
> > +	if (*bflags & BLIST_TRY_VPD_PAGES)
> > +		sdev->try_vpd_pages = 1;
> > +	else if (*bflags & BLIST_SKIP_VPD_PAGES)
> >  		sdev->skip_vpd_pages = 1;
> >
> >  	transport_configure_device(&sdev->sdev_gendev);
> > diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index
> > 87566b51fcf7..31d32b9077ca 100644
> > --- a/drivers/scsi/sd.c
> > +++ b/drivers/scsi/sd.c
> > @@ -2701,6 +2701,11 @@ static void sd_read_write_same(struct scsi_disk
> > *sdkp, unsigned char *buffer)
> >
> >  static int sd_try_extended_inquiry(struct scsi_device *sdp)  {
> > +	/* Attempt VPD inquiry if the device blacklist explicitly calls
> > +	 * for it.
> > +	 */
> > +	if (sdp->try_vpd_pages)
> > +		return 1;
> >  	/*
> >  	 * Although VPD inquiries can go to SCSI-2 type devices,
> >  	 * some USB ones crash on receiving them, and the pages diff --git
> > a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index
> > 9aa38f7b303b..f579408620f0 100644
> > --- a/include/scsi/scsi_device.h
> > +++ b/include/scsi/scsi_device.h
> > @@ -155,6 +155,7 @@ struct scsi_device {
> >  	unsigned skip_ms_page_8:1;	/* do not use MODE SENSE page 0x08
> > */
> >  	unsigned skip_ms_page_3f:1;	/* do not use MODE SENSE page 0x3f
> > */
> >  	unsigned skip_vpd_pages:1;	/* do not read VPD pages */
> > +	unsigned try_vpd_pages:1;	/* attempt to read VPD pages */
> >  	unsigned use_192_bytes_for_3f:1; /* ask for 192 bytes from page
> 0x3f
> > */
> >  	unsigned no_start_on_add:1;	/* do not issue start on add */
> >  	unsigned allow_restart:1; /* issue START_UNIT in error handler */
> > diff --git a/include/scsi/scsi_devinfo.h b/include/scsi/scsi_devinfo.h
> > index 8670c04e199e..1fdd6fc5492b 100644
> > --- a/include/scsi/scsi_devinfo.h
> > +++ b/include/scsi/scsi_devinfo.h
> > @@ -34,4 +34,5 @@
> >  #define BLIST_SKIP_VPD_PAGES	0x4000000 /* Ignore SBC-3 VPD pages
> > */
> >  #define BLIST_SCSI3LUN		0x8000000 /* Scan more than 256
> > LUNs
> >  					     for sequential scan */
> > +#define BLIST_TRY_VPD_PAGES	0x10000000 /* Attempt to read VPD
> > pages */
> >  #endif

  parent reply	other threads:[~2014-07-14  2:38 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 ` [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host K. Y. Srinivasan
2014-07-09  0:46   ` 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 [this message]
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=ba0ec0e3d04748eab3fb26e3c4964b4d@BY2PR03MB299.namprd03.prod.outlook.com \
    --to=kys@microsoft.com \
    --cc=apw@canonical.com \
    --cc=devel@linuxdriverproject.org \
    --cc=hch@infradead.org \
    --cc=jasowang@redhat.com \
    --cc=jbottomley@parallels.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --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: 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.