From: "hch@infradead.org" <hch@infradead.org>
To: James Bottomley <jbottomley@parallels.com>
Cc: "kys@microsoft.com" <kys@microsoft.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"mkp@mkp.net" <mkp@mkp.net>,
"hch@infradead.org" <hch@infradead.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: Thu, 10 Jul 2014 23:32:16 -0700 [thread overview]
Message-ID: <20140711063216.GA20660@infradead.org> (raw)
In-Reply-To: <1404944843.2184.8.camel@dabdike.int.hansenpartnership.com>
On Wed, Jul 09, 2014 at 10:27:24PM +0000, James Bottomley wrote:
> If we fix it at source, why would there be any need to filter? That's
> the reason the no_write_same flag was introduced. If we can find and
> fix the bug, it can go back into the stable trees as a bug fix, hence
> nothing should ever emit write_same(10 or 16) and additional driver code
> is redundant (and counter productive, since if this ever breaks again
> you're our best canary).
>
> This looks like it might be the problem but Martin should confirm (I
> think the problem comes to us from the RC16 code which unconditionally
> sets WS16).
I think the problem is a differnet one. If we have the logical
provisioning EVPD it configures what method to use, but if we don't have
one we simply check for a max unmap blocks field, and if that's not
present use WRITE SAME.
The patch checks the no_write_same flag before doing that, for which
we also have to do the write_same setup before the discard setup
in sd_revalidate_disk.
Ky: does hyperv support UNMAP? If so any idea why it doesn't set
the maximum unmap block count field in the EVPD?
If we want to enable UNMAP in this case I'd prefer a blacklist entry
than trying UNMAP despite the device not advertising it.
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index ba756b1..fbccfd2 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2614,9 +2614,10 @@ static void sd_read_block_limits(struct scsi_disk *sdkp)
if (sdkp->max_unmap_blocks)
sd_config_discard(sdkp, SD_LBP_UNMAP);
- else
+ else if (!sdkp->device->no_write_same)
sd_config_discard(sdkp, SD_LBP_WS16);
-
+ else
+ sd_config_discard(sdkp, SD_LBP_DISABLE);
} else { /* LBP VPD page tells us what to use */
if (sdkp->lbpu && sdkp->max_unmap_blocks)
@@ -2766,6 +2767,7 @@ static int sd_revalidate_disk(struct gendisk *disk)
*/
if (sdkp->media_present) {
sd_read_capacity(sdkp, buffer);
+ sd_read_write_same(sdkp, buffer);
if (sd_try_extended_inquiry(sdp)) {
sd_read_block_provisioning(sdkp);
@@ -2776,7 +2778,6 @@ static int sd_revalidate_disk(struct gendisk *disk)
sd_read_write_protect_flag(sdkp, buffer);
sd_read_cache_type(sdkp, buffer);
sd_read_app_tag_own(sdkp, buffer);
- sd_read_write_same(sdkp, buffer);
}
sdkp->first_scan = 0;
next prev parent reply other threads:[~2014-07-11 6:32 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1404866789-26910-1-git-send-email-kys@microsoft.com>
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 [this message]
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
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 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=20140711063216.GA20660@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=mkp@mkp.net \
--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