All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <jbottomley@parallels.com>
To: "hch@infradead.org" <hch@infradead.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"apw@canonical.com" <apw@canonical.com>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
	"kys@microsoft.com" <kys@microsoft.com>,
	"martin.petersen@oracle.com" <martin.petersen@oracle.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: Wed, 16 Jul 2014 14:53:47 +0000	[thread overview]
Message-ID: <1405522426.2225.10.camel@jarvis.lan> (raw)
In-Reply-To: <20140716110111.GA7382@infradead.org>

On Wed, 2014-07-16 at 04:01 -0700, hch@infradead.org wrote:
> On Sun, Jul 13, 2014 at 08:58:34AM -0400, Martin K. Petersen wrote:
> > >>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:
> > 
> > KY> Windows hosts do support UNMAP and set the field in the
> > KY> EVPD. However, since the host advertises SPC-2 compliance, Linux
> > KY> does 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.
> 
> KY mentioned that they have a prototype for that now.
> 
> Btw, I looked over sd.c a bit more, and I think I understand why they
> get the WRITE SAME commands now:
> 
> read_capacity_16 calls sd_config_discard(sdkp, SD_LBP_WS16) if the LPBME
> bit is set.  At least older SBC drafts left it wide open if a target
> supports WRITE SAME with UNMAP or UNMAP in this case.  So I think we'd
> still want a patch to use UNMAP instead of WRITE SAME for this case,
> which should also fix hyperv.  Below is the quick hack version of that
> that just checks the host no_write_same flag, as the one on the device
> isn't set yet - I guess we need to refactor some of that logic.
> 
> 
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index 87566b5..4480fdf 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -2035,7 +2035,10 @@ static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp,
>  		if (buffer[14] & 0x40) /* LBPRZ */
>  			sdkp->lbprz = 1;
>  
> -		sd_config_discard(sdkp, SD_LBP_WS16);
> +		if (sdp->host->no_write_same)
> +			sd_config_discard(sdkp, SD_LBP_UNMAP);
> +		else
> +			sd_config_discard(sdkp, SD_LBP_WS16);

Right, I already said this was the problem: that was the reason for my
patch.  However, there are a couple of other cases (including the /sys
entry) which is why I patched sd_config_discard instead.

James


WARNING: multiple messages have this Message-ID (diff)
From: James Bottomley <jbottomley@parallels.com>
To: "hch@infradead.org" <hch@infradead.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"apw@canonical.com" <apw@canonical.com>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
	"kys@microsoft.com" <kys@microsoft.com>,
	"martin.petersen@oracle.com" <martin.petersen@oracle.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: Wed, 16 Jul 2014 14:53:47 +0000	[thread overview]
Message-ID: <1405522426.2225.10.camel@jarvis.lan> (raw)
In-Reply-To: <20140716110111.GA7382@infradead.org>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2221 bytes --]

On Wed, 2014-07-16 at 04:01 -0700, hch@infradead.org wrote:
> On Sun, Jul 13, 2014 at 08:58:34AM -0400, Martin K. Petersen wrote:
> > >>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:
> > 
> > KY> Windows hosts do support UNMAP and set the field in the
> > KY> EVPD. However, since the host advertises SPC-2 compliance, Linux
> > KY> does 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.
> 
> KY mentioned that they have a prototype for that now.
> 
> Btw, I looked over sd.c a bit more, and I think I understand why they
> get the WRITE SAME commands now:
> 
> read_capacity_16 calls sd_config_discard(sdkp, SD_LBP_WS16) if the LPBME
> bit is set.  At least older SBC drafts left it wide open if a target
> supports WRITE SAME with UNMAP or UNMAP in this case.  So I think we'd
> still want a patch to use UNMAP instead of WRITE SAME for this case,
> which should also fix hyperv.  Below is the quick hack version of that
> that just checks the host no_write_same flag, as the one on the device
> isn't set yet - I guess we need to refactor some of that logic.
> 
> 
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index 87566b5..4480fdf 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -2035,7 +2035,10 @@ static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp,
>  		if (buffer[14] & 0x40) /* LBPRZ */
>  			sdkp->lbprz = 1;
>  
> -		sd_config_discard(sdkp, SD_LBP_WS16);
> +		if (sdp->host->no_write_same)
> +			sd_config_discard(sdkp, SD_LBP_UNMAP);
> +		else
> +			sd_config_discard(sdkp, SD_LBP_WS16);

Right, I already said this was the problem: that was the reason for my
patch.  However, there are a couple of other cases (including the /sys
entry) which is why I patched sd_config_discard instead.

James

ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

  reply	other threads:[~2014-07-16 14:53 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
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 [this message]
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=1405522426.2225.10.camel@jarvis.lan \
    --to=jbottomley@parallels.com \
    --cc=apw@canonical.com \
    --cc=devel@linuxdriverproject.org \
    --cc=hch@infradead.org \
    --cc=jasowang@redhat.com \
    --cc=kys@microsoft.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.