linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bernd Schubert <bernd.schubert@itwm.fraunhofer.de>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Joe Lawrence <joe.lawrence@stratus.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Dan Williams <dan.j.williams@gmail.com>,
	linux-raid <linux-raid@vger.kernel.org>,
	linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH] scsi: Check if the device support WRITE_SAME_10
Date: Wed, 05 Jun 2013 22:09:22 +0200	[thread overview]
Message-ID: <51AF9AF2.5000907@itwm.fraunhofer.de> (raw)
In-Reply-To: <yq1r4ggpdy7.fsf@sermon.lab.mkp.net>

On 06/05/2013 09:14 PM, Martin K. Petersen wrote:>>>>>> "Bernd" == Bernd Schubert <bernd.schubert@itwm.fraunhofer.de> writes:
> 
> Bernd> The md layer currently cannot handle failed WRITE_SAME commands
> Bernd> and the initial easiest fix is to check if the device supports
> Bernd> WRITE_SAME at all. It already tested for WRITE_SAME_16 and this
> Bernd> commit adds a test for WRITE_SAME_10.
> 
> No go. That'll disable WRITE SAME for drives which don't support
> RSOC. Which means almost all of them.

Ah, sorry, I didn't check the specs.

> 
> I propose the following...
> 

> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -442,8 +442,15 @@ sd_store_write_same_blocks(struct device *dev, struct device_attribute *attr,
>  
>  	if (max == 0)
>  		sdp->no_write_same = 1;
> -	else if (max <= SD_MAX_WS16_BLOCKS)
> -		sdkp->max_ws_blocks = max;
> +	else
> +		sdp->no_write_same = 0;
> +
> +	if (sdkp->ws16)
> +		sdkp->max_ws_blocks =
> +			max_t(unsigned long, max, SD_MAX_WS16_BLOCKS);
> +	else
> +		sdkp->max_ws_blocks =
> +			max_t(unsigned long, max, SD_MAX_WS10_BLOCKS);
>  
>  	sd_config_write_same(sdkp);

Max? Not min_t()?


> @@ -762,16 +769,16 @@ static void sd_config_write_same(struct scsi_disk *sdkp)
>  	 * blocks per I/O unless the device explicitly advertises a
>  	 * bigger limit.
>  	 */
> -	if (sdkp->max_ws_blocks == 0)
> -		sdkp->max_ws_blocks = SD_MAX_WS10_BLOCKS;
> -
> -	if (sdkp->ws16 || sdkp->max_ws_blocks > SD_MAX_WS10_BLOCKS)
> +	if (sdkp->max_ws_blocks > SD_MAX_WS10_BLOCKS)
>  		blocks = min_not_zero(sdkp->max_ws_blocks,
>  				      (u32)SD_MAX_WS16_BLOCKS);
>  	else
>  		blocks = min_not_zero(sdkp->max_ws_blocks,
>  				      (u32)SD_MAX_WS10_BLOCKS);
>  
> +	if (sdkp->ws16 || sdkp->ws10 || sdkp->device->no_report_opcodes)
> +		sdkp->max_ws_blocks = blocks;
> +
>  out:
>  	blk_queue_max_write_same_sectors(q, blocks * (logical_block_size >> 9));
>  }

blk_queue_max_write_same_sectors(q, sdkp->max_ws_blocks * (logical_block_size >> 9)) ?
Otherwise sdkp->max_ws_blocks and the queue might have different values, wouldn't they?


I cant't provide a comment about scsi_get_vpd_page, I simply don't know. You certainly
know the scsi specs ways better than I do!


Thanks,
Bernd




  reply	other threads:[~2013-06-05 20:09 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-03  3:57 RAID-10 keeps aborting H. Peter Anvin
2013-06-03  4:05 ` H. Peter Anvin
2013-06-03  5:47 ` Dan Williams
2013-06-03  6:06   ` H. Peter Anvin
2013-06-03  6:14     ` Dan Williams
2013-06-03  6:30       ` H. Peter Anvin
2013-06-03 14:39       ` H. Peter Anvin
2013-06-11 16:47         ` Joe Lawrence
2013-06-11 17:12           ` H. Peter Anvin
2013-06-03 15:47       ` H. Peter Anvin
2013-06-03 16:09         ` Joe Lawrence
2013-06-03 17:22         ` Dan Williams
2013-06-03 17:40           ` H. Peter Anvin
2013-06-03 18:35             ` Martin K. Petersen
2013-06-03 18:38               ` H. Peter Anvin
2013-06-03 18:40               ` H. Peter Anvin
2013-06-03 22:20                 ` H. Peter Anvin
2013-06-03 22:34                   ` H. Peter Anvin
2013-06-04 15:56                     ` Martin K. Petersen
2013-06-03 23:19               ` H. Peter Anvin
2013-06-04 15:39                 ` Joe Lawrence
2013-06-04 15:46                   ` H. Peter Anvin
2013-06-04 15:54                     ` Martin K. Petersen
2013-06-05 10:02                   ` Bernd Schubert
2013-06-05 11:38                     ` Bernd Schubert
2013-06-05 12:53                       ` [PATCH] scsi: Check if the device support WRITE_SAME_10 Bernd Schubert
2013-06-05 19:14                         ` Martin K. Petersen
2013-06-05 20:09                           ` Bernd Schubert [this message]
2013-06-07  2:15                             ` Martin K. Petersen
2013-06-12 19:34                               ` Bernd Schubert
2013-06-05 19:11                       ` RAID-10 keeps aborting Martin K. Petersen
2013-06-04 17:36               ` Dan Williams
2013-06-04 17:54                 ` Martin K. Petersen
2013-06-04 17:57                   ` H. Peter Anvin
2013-06-04 18:04                     ` Martin K. Petersen
2013-06-04 18:32                       ` Dan Williams
2013-06-04 18:38                         ` H. Peter Anvin
2013-06-04 18:56                           ` Dan Williams
2013-06-05  2:39                             ` H. Peter Anvin
     [not found]                               ` <(H.>
     [not found]                                 ` <Peter>
     [not found]                                   ` <Anvin's>
     [not found]                                     ` <message>
     [not found]                                       ` <of>
     [not found]                                         ` <"Thu>
     [not found]                                         ` <"Wed>
     [not found]                                         ` <"Tue>
     [not found]                                           ` <04>
     [not found]                                             ` <Jun>
     [not found]                                               ` <2013>
     [not found]                                                 ` <14:27:47>
     [not found]                                                   ` <-0400")>
2013-06-07  2:19                                                     ` Martin K. Petersen
2013-06-10 14:15                                                       ` Joe Lawrence
2013-06-12  3:15                                                         ` NeilBrown
2013-06-12  4:07                                                           ` H. Peter Anvin
2013-06-12  6:29                                                             ` Bernd Schubert
2013-06-12 10:22                                                               ` Joe Lawrence
2013-06-12 14:28                                                               ` Martin K. Petersen
2013-06-12 14:25                                                             ` Martin K. Petersen
2013-06-12 14:29                                                               ` H. Peter Anvin
2013-06-12 14:34                                                                 ` Martin K. Petersen
2013-06-12 14:37                                                                   ` H. Peter Anvin
2013-06-12 14:45                                                                   ` H. Peter Anvin
     [not found]                                                                     ` <5AA430FFE4486C448003201AC83BC85E0360CE3F@EXHQ.corp.stratus! .com>
     [not found]                                                                       ` <5AA430FFE4486C448003201AC83BC85E0360CE3F@EXHQ.corp.stratus.com>
2013-06-12 15:58                                                                         ` H. Peter Anvin
2013-06-13  3:10                                                                     ` NeilBrown
2013-06-13  3:13                                                                       ` H. Peter Anvin
2013-06-13  3:31                                                                         ` NeilBrown
2013-06-13 21:40                                                                       ` Martin K. Petersen
2013-06-13  2:45                                                           ` Joe Lawrence
2013-06-13  3:11                                                             ` NeilBrown
     [not found]                                                 ` <19:39:58>
     [not found]                                                   ` <-0700")>
2013-06-05 19:29                                                     ` Martin K. Petersen
2013-06-06 18:27                                                       ` Joe Lawrence
     [not found]                                                         ` <(Joe>
2013-06-06 18:36                                                         ` H. Peter Anvin
2013-06-12 14:43                                                     ` Martin K. Petersen
2013-06-11 21:50 ` Joe Lawrence
2013-06-11 21:53   ` H. Peter Anvin

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=51AF9AF2.5000907@itwm.fraunhofer.de \
    --to=bernd.schubert@itwm.fraunhofer.de \
    --cc=dan.j.williams@gmail.com \
    --cc=hpa@zytor.com \
    --cc=joe.lawrence@stratus.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /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;
as well as URLs for NNTP newsgroup(s).