All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-xfs@vger.kernel.org
Subject: [Bug 202127] cannot mount or create xfs on a  597T device
Date: Fri, 04 Jan 2019 23:03:50 +0000	[thread overview]
Message-ID: <bug-202127-201763-QPTloip3DE@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-202127-201763@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=202127

--- Comment #17 from Dave Chinner (david@fromorbit.com) ---
On Fri, Jan 04, 2019 at 10:02:58PM +0000, bugzilla-daemon@bugzilla.kernel.org
wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=202127
> 
> --- Comment #16 from Eric Sandeen (sandeen@sandeen.net) ---
> Broadcom is simply wrong - ext4 doesn't care about or use the stripe geometry
> like xfs does.  But that is beside the point, because:
> 
> It is not valid to have a preferred I/O size smaller than the minimum I/O
> size
> - this should be obvious to the vendor.  We can detect this at mkfs time and
> error out or ignore the bad values, but there can be no debate about whether
> the hardware is returning nonsense.  It /is/ returning nonsense.  That's a
> firmware bug.
> 
> Pose the question to broadcom:
> 
> "How can the preferred IO size be less than the minimum allowable IO size?

Just to clarify, the "minio" being reported here is not the
"minimum allowable IO size". The minimum allowed IO size is the
logical sector/block size of the device.

"minimum_io_size" is badly named - it's actually the smallest IO
size alignment that allows for /efficient/ IO operations to be
performed by the device, and that's typically very different to
logical_block_size of the device. e.g:

$ cat /sys/block/sdf/queue/hw_sector_size
512
$ cat /sys/block/sdf/queue/logical_block_size
512
$ cat /sys/block/sdf/queue/physical_block_size
4096
$ cat /sys/block/sdf/queue/minimum_io_size
4096
$

So, we can do 512 byte sector IOs to this device, but it's not
efficient due to it having a physical 4k block size. i.e. ti
requires a RMW cycle to do a 512 byte write.

IOWs, a 4k IO (minimum_io_size) will avoid physical block RMW cycles
as the physical block size of the storage is 4k. That's what
"minimum efficient IO size" means.

For a RAID5/6 lun, this is typically the chunk size, as
many RAID implementations can do single chunk aligned writes
efficiently via partial stripe recalculation without needing RMW
cycles. If the write partially overlaps chunks, then RMW cycles are
required for RAID recalc, hence setting the RAID chunk size as the
"minimum_io_size" makes sense.

However, a device may not be efficient and reach saturation when
fed lots of minimum_io_size requests. That's where optimal_io_size
comes in - a lot of SSDs out there have an optimal IO size in the
range of 128-256KB because they can't reach max throughput when
smaller IO sizes are used (iops bound). i.e. the optimal IO size is
the size of the Io that will allow the entire bandwidth of the
device to be effectively utilised.

For a RAID5/6 lun, the optimal IO size is the one that keeps all
disk heads moving sequentially and in synchronisation and doesn't
require partial stripe writes (and hence RMW cycles) to occur. IOWs,
its the IO alignment and size that will allow full stripe writes to
be sent to the underlying device.

By definition, the optimal_io_size is /always/ >= minimum_io_size.
If the optimal_io_size is < minimum_io_size, then one of them is
incorrectly specified. The only time this does not hold true is when
the device does not set a optimal_io_size, in which case it should
be zero and then gets ignored by userspace.

Regardless, what still stands here is that the firmware needs fixing
and that is only something broadcom can fix.

Cheers,

Dave.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

  parent reply	other threads:[~2019-01-04 23:03 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-03 19:54 [Bug 202127] New: cannot mount or create xfs on a 597T device bugzilla-daemon
2019-01-03 19:56 ` [Bug 202127] " bugzilla-daemon
2019-01-03 21:13 ` bugzilla-daemon
2019-01-03 22:18 ` bugzilla-daemon
2019-01-03 22:51   ` Dave Chinner
2019-01-03 22:51 ` bugzilla-daemon
2019-01-03 22:58 ` bugzilla-daemon
2019-01-03 23:22   ` Dave Chinner
2019-01-03 23:08 ` bugzilla-daemon
2019-01-03 23:12 ` bugzilla-daemon
2019-01-03 23:14 ` bugzilla-daemon
2019-01-03 23:17 ` bugzilla-daemon
2019-01-03 23:20 ` bugzilla-daemon
2019-01-03 23:22 ` bugzilla-daemon
2019-01-03 23:24 ` bugzilla-daemon
2019-01-03 23:32 ` bugzilla-daemon
2019-01-04  4:42 ` bugzilla-daemon
2019-01-04 21:59 ` bugzilla-daemon
2019-01-08 16:59   ` Emmanuel Florac
2019-01-04 22:02 ` bugzilla-daemon
2019-01-04 23:03   ` Dave Chinner
2019-01-04 23:03 ` bugzilla-daemon [this message]
2019-01-04 23:08 ` bugzilla-daemon
2019-01-05  1:36 ` bugzilla-daemon
2019-01-08 17:06 ` bugzilla-daemon
2019-01-08 17:59 ` bugzilla-daemon
2019-01-22 12:49 ` bugzilla-daemon
2019-01-22 21:52   ` Dave Chinner
2019-01-22 14:18 ` bugzilla-daemon
2019-01-22 14:35 ` bugzilla-daemon
2019-01-22 15:01 ` bugzilla-daemon
2019-01-22 15:36 ` bugzilla-daemon
2019-01-22 15:55 ` bugzilla-daemon
2019-01-22 17:38 ` bugzilla-daemon
2019-01-22 17:48 ` bugzilla-daemon
2019-01-22 17:48 ` bugzilla-daemon
2019-01-22 18:28 ` bugzilla-daemon
2019-01-22 21:52 ` bugzilla-daemon
2019-01-22 21:56 ` bugzilla-daemon
2019-01-22 22:59 ` bugzilla-daemon
2019-01-24 13:02 ` bugzilla-daemon
2019-03-25  8:46 ` bugzilla-daemon
2020-09-24 18:19 ` bugzilla-daemon
2020-09-24 18:52 ` bugzilla-daemon
2020-09-24 18:57 ` bugzilla-daemon

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=bug-202127-201763-QPTloip3DE@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-xfs@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.