linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Xiao Ni <xni@redhat.com>
To: songliubraving@fb.com
Cc: linux-raid@vger.kernel.org, matthew.ruffell@canonical.com,
	colyli@suse.de, guoqing.jiang@cloud.ionos.com,
	ncroxon@redhat.com, hch@infradead.org
Subject: Re: [PATCH V2 0/5] md/raid10: Improve handling raid10 discard request
Date: Thu, 4 Feb 2021 15:38:02 +0800	[thread overview]
Message-ID: <6359e6e0-4e50-912c-1f97-ae07db3eba70@redhat.com> (raw)
In-Reply-To: <1612418238-9976-1-git-send-email-xni@redhat.com>

Hi Song

Please ignore the v2 version. There is a place that needs to be fix. 
I'll re-send
v2 version again.

Regards
Xiao

On 02/04/2021 01:57 PM, Xiao Ni wrote:
> Hi all
>
> Now mkfs on raid10 which is combined with ssd/nvme disks takes a long time.
> This patch set tries to resolve this problem.
>
> This patch set had been reverted because of a data corruption problem. This
> version fix this problem. The root cause which causes the data corruption is
> the wrong calculation of start address of near copies disks.
>
> Now we use a similar way with raid0 to handle discard request for raid10.
> Because the discard region is very big, we can calculate the start/end
> address for each disk. Then we can submit the discard request to each disk.
> But for raid10, it has copies. For near layout, if the discard request
> doesn't align with chunk size, we calculate a start_disk_offset. Now we only
> use start_disk_offset for the first disk, but it should be used for the
> near copies disks too.
>
> [  789.709501] discard bio start : 70968, size : 191176
> [  789.709507] first stripe index 69, start disk index 0, start disk offset 70968
> [  789.709509] last stripe index 256, end disk index 0, end disk offset 262144
> [  789.709511] disk 0, dev start : 70968, dev end : 262144
> [  789.709515] disk 1, dev start : 70656, dev end : 262144
>
> For example, in this test case, it has 2 near copies. The start_disk_offset
> for the first disk is 70968. It should use the same offset address for second disk.
> But it uses the start address of this chunk. It discard more region. This version
> simply spilt the un-aligned part with strip size.
>
> And it fixes another problem. The calculation of stripe_size is wrong in reverted version.
>
> V2: Fix problems pointed by Christoph Hellwig.
>
> Xiao Ni (5):
>    md: add md_submit_discard_bio() for submitting discard bio
>    md/raid10: extend r10bio devs to raid disks
>    md/raid10: pull the code that wait for blocked dev into one function
>    md/raid10: improve raid10 discard request
>    md/raid10: improve discard request for far layout
>
>   drivers/md/md.c     |  20 +++
>   drivers/md/md.h     |   2 +
>   drivers/md/raid0.c  |  14 +-
>   drivers/md/raid10.c | 434 +++++++++++++++++++++++++++++++++++++++++++++-------
>   drivers/md/raid10.h |   1 +
>   5 files changed, 402 insertions(+), 69 deletions(-)
>


  parent reply	other threads:[~2021-02-04  7:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-04  5:57 [PATCH V2 0/5] md/raid10: Improve handling raid10 discard request Xiao Ni
2021-02-04  5:57 ` [PATCH V2 1/5] md: add md_submit_discard_bio() for submitting discard bio Xiao Ni
2021-02-04  5:57 ` [PATCH V2 2/5] md/raid10: extend r10bio devs to raid disks Xiao Ni
2021-02-04  5:57 ` [PATCH V2 3/5] md/raid10: pull the code that wait for blocked dev into one function Xiao Ni
2021-02-04  5:57 ` [PATCH V2 4/5] md/raid10: improve raid10 discard request Xiao Ni
2021-02-04  5:57 ` [PATCH V2 5/5] md/raid10: improve discard request for far layout Xiao Ni
2021-02-04  7:38 ` Xiao Ni [this message]
2021-02-04  8:12   ` [PATCH V2 0/5] md/raid10: Improve handling raid10 discard request Song Liu
2021-02-04  8:39     ` Xiao Ni
2021-02-04 17:29       ` Song Liu
2021-02-04  7:50 Xiao Ni
2021-02-15  4:05 ` Matthew Ruffell
2021-02-20  8:12   ` Xiao Ni
2021-02-24  8:41     ` Song Liu
2021-03-11  3:55 Adrian Huang12

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=6359e6e0-4e50-912c-1f97-ae07db3eba70@redhat.com \
    --to=xni@redhat.com \
    --cc=colyli@suse.de \
    --cc=guoqing.jiang@cloud.ionos.com \
    --cc=hch@infradead.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=matthew.ruffell@canonical.com \
    --cc=ncroxon@redhat.com \
    --cc=songliubraving@fb.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).