public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "hch@infradead.org" <hch@infradead.org>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: KY Srinivasan <kys@microsoft.com>,
	"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: Wed, 16 Jul 2014 04:01:11 -0700	[thread overview]
Message-ID: <20140716110111.GA7382@infradead.org> (raw)
In-Reply-To: <yq1a98d2z5x.fsf@sermon.lab.mkp.net>

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);
 	}
 
 	sdkp->capacity = lba + 1;

  parent reply	other threads:[~2014-07-16 11:01 UTC|newest]

Thread overview: 68+ 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 ` [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  8:40     ` Christoph Hellwig
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  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  8:43     ` Christoph Hellwig
2014-07-09 19:52       ` KY Srinivasan
2014-07-09 19:56         ` James Bottomley
2014-07-09 21:14           ` KY Srinivasan
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 22:12                 ` James Bottomley
2014-07-11  6:32               ` hch
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 18:49                     ` KY Srinivasan
2014-07-14  2:37                     ` KY Srinivasan
2014-07-14  3:19                       ` KY Srinivasan
2014-07-16 11:01                     ` hch [this message]
2014-07-16 14:53                       ` James Bottomley
2014-07-16 15:44                       ` Martin K. Petersen
2014-07-16 17:38                         ` hch
2014-07-16 17:47                           ` Martin K. Petersen
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-17  7:42                                   ` hch
2014-07-17 12:41                                     ` Martin K. Petersen
2014-07-16 18:45                               ` Martin K. Petersen
2014-07-16 18:50                                 ` James Bottomley
2014-07-16 19:08                                   ` Martin K. Petersen
2014-07-16 19:14                                     ` James Bottomley
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  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  8:44     ` Christoph Hellwig
2014-07-09 18:51       ` KY Srinivasan
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:54               ` Christoph Hellwig
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: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  8:44     ` Christoph Hellwig
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-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  8:46     ` Christoph Hellwig
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 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=20140716110111.GA7382@infradead.org \
    --to=hch@infradead.org \
    --cc=apw@canonical.com \
    --cc=devel@linuxdriverproject.org \
    --cc=jasowang@redhat.com \
    --cc=jbottomley@parallels.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox