public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Stan Hoeppner <stan@hardwarefreak.com>
To: Brian Foster <bfoster@redhat.com>
Cc: Eric Sandeen <sandeen@redhat.com>,
	Eric Sandeen <sandeen@sandeen.net>, xfs-oss <xfs@oss.sgi.com>
Subject: Re: [PATCH 1/2] xfsprogs: ignore stripe geom if sunit or swidth == physical sector size
Date: Thu, 30 Oct 2014 15:15:41 -0500	[thread overview]
Message-ID: <54529C6D.5090705@hardwarefreak.com> (raw)
In-Reply-To: <20141030195046.GA48724@bfoster.bfoster>

On 10/30/2014 02:50 PM, Brian Foster wrote:
> On Thu, Oct 30, 2014 at 02:15:16PM -0500, Stan Hoeppner wrote:
>> On 10/30/2014 06:46 AM, Brian Foster wrote:
>>> On Wed, Oct 29, 2014 at 04:38:22PM -0500, Stan Hoeppner wrote:
>>>> On 10/29/2014 01:47 PM, Eric Sandeen wrote:
>>>>> On 10/29/14 1:37 PM, Brian Foster wrote:
>>>>>> On Tue, Oct 28, 2014 at 12:35:29PM -0500, Eric Sandeen wrote:
>>>>>>> Today, this geometry:
>>>>>>>
>>>>>>> # modprobe scsi_debug  opt_blks=2048 dev_size_mb=2048
>>>>>>> # blockdev --getpbsz --getss --getiomin --getioopt  /dev/sdd
>>>>>>> 512
>>>>>>> 512
>>>>>>> 512
>>>>>>> 1048576
>>>>>>>
>>>>>>> will result in a warning at mkfs time, like this:
>>>>>>>
>>>>>>> # mkfs.xfs -f -d su=64k,sw=12 -l su=64k /dev/sdd
>>>>>>> mkfs.xfs: Specified data stripe width 1536 is not the same as the volume stripe width 2048
>>>>>>>
>>>>>>> because our geometry discovery thinks it looks like a
>>>>>>> valid striping setup which the commandline is overriding. 
>>>>>>> However, a stripe unit of 512 really isn't indicative of
>>>>>>> a proper stripe geometry.
>>>>>>>
>>>>>>
>>>>>> So the assumption is that the storage reports a non-physical block size
>>>>>> for minimum and optimal I/O sizes for geometry detection. There was a
>>>>>> real world scenario of this, right? Any idea of the configuration
>>>>>> details (e.g., raid layout) that resulted in an increased optimal I/O
>>>>>> size but not minimum I/O size?
>>>>>
>>>>> Stan?  :)
>>>>
>>>> Yeah, it was pretty much what you pasted sans the log su, and it was a
>>>> device-mapper device:
>>>>
>>>> # mkfs.xfs -d su=64k,sw=12 /dev/dm-0
>>>>
>>>
>>> What kind of device is dm-0? I use linear devices regularly and I don't
>>> see any special optimal I/O size reported:
>>
>> It's a dm-multipath device.  I pasted details up thread.  Here, again:
>>
> 
> Oh, I see. So this is just getting passed up from the lower level scsi
> devices. On a quick look, this data appears to come from the device via
> the "block limits VPD." Apparently that should be accessible via
> something like this (0xb0 from sd_read_block_limits()):
> 
> # sg_inq --page=0xb0 /dev/sdx
> 
> ... but I don't have a device around that likes that command. It would
> be interesting to know what makes the underlying device set optimal I/O
> size as such, but that's just curiosity at this point. :)

The device isn't setting it.  It's global.  Any LUN of any RAID level
reports the same parms.  So apparently it's hard coded in the firmware.
 I informed our field engineer at the vendor of this issue, and the fact
it prompted a patch to XFS, but haven't received a response.

An educated guess is that they want to see 1 MiB IOs entering the
controller regardless of the stripe geometry of the back end LUN.  Could
be lots of reasons for this, valid or not.  However, given it advertises
a minimum optimal IO size of 512 bytes this seems counterintuitive.

Thanks,
Stan




> Brian
> 
>> # multipath -ll
>> 3600c0ff0003630917954075401000000 dm-0 Tek,DH6554
>> size=44T features='0' hwhandler='0' wp=rw
>> |-+- policy='round-robin 0' prio=50 status=active
>> | `- 9:0:0:3 sdj 8:144 active ready running
>> `-+- policy='round-robin 0' prio=10 status=enabled
>>   `- 1:0:0:3 sdf 8:80  active ready running
>>
>>
>> # blockdev --getpbsz --getss --getiomin --getioopt  /dev/dm-0
>> 512
>> 512
>> 512
>> 1048576
>>
>> # blockdev --getpbsz --getss --getiomin --getioopt  /dev/sdj
>> 512
>> 512
>> 512
>> 1048576
>>
>> # blockdev --getpbsz --getss --getiomin --getioopt  /dev/sdf
>> 512
>> 512
>> 512
>> 1048576
>>
>>
>>
>> Cheers,
>> Stan
>>
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
> 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

      reply	other threads:[~2014-10-30 20:15 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-28 17:35 [PATCH 1/2] xfsprogs: ignore stripe geom if sunit or swidth == physical sector size Eric Sandeen
2014-10-28 17:38 ` [PATCH 2/2] xfsprogs: don't warn about log sunit size if it was auto-discovered Eric Sandeen
2014-10-29 18:38   ` Brian Foster
2014-10-29 18:45     ` Eric Sandeen
2014-10-29 19:57       ` Brian Foster
2014-10-29 18:37 ` [PATCH 1/2] xfsprogs: ignore stripe geom if sunit or swidth == physical sector size Brian Foster
2014-10-29 18:47   ` Eric Sandeen
2014-10-29 21:38     ` Stan Hoeppner
2014-10-30 11:46       ` Brian Foster
2014-10-30 19:15         ` Stan Hoeppner
2014-10-30 19:50           ` Brian Foster
2014-10-30 20:15             ` Stan Hoeppner [this message]

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=54529C6D.5090705@hardwarefreak.com \
    --to=stan@hardwarefreak.com \
    --cc=bfoster@redhat.com \
    --cc=sandeen@redhat.com \
    --cc=sandeen@sandeen.net \
    --cc=xfs@oss.sgi.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