linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Song Liu <song@kernel.org>
To: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Cc: linux-raid <linux-raid@vger.kernel.org>
Subject: Re: [PATCH 1/3] raid5: call clear_batch_ready before set STRIPE_ACTIVE
Date: Thu, 16 Jul 2020 10:32:34 -0700	[thread overview]
Message-ID: <CAPhsuW6M8URxeZuBxk2PAWzJ8r3emsrOxH=PKW6YVWY4NiqR9g@mail.gmail.com> (raw)
In-Reply-To: <c4541de5-9eac-dc19-2681-4672d5a820e7@cloud.ionos.com>

On Thu, Jul 16, 2020 at 12:45 AM Guoqing Jiang
<guoqing.jiang@cloud.ionos.com> wrote:
>
> On 6/26/20 2:16 AM, Song Liu wrote:
> > On Thu, Jun 25, 2020 at 2:22 AM Guoqing Jiang
> > <guoqing.jiang@cloud.ionos.com> wrote:
> >>
> >>
> >> On 6/24/20 1:58 AM, Song Liu wrote:
> >>> On Tue, Jun 16, 2020 at 2:25 AM Guoqing Jiang
> >>> <guoqing.jiang@cloud.ionos.com> wrote:
> >>>> We tried to only put the head sh of batch list to handle_list, then the
> >>>> handle_stripe doesn't handle other members in the batch list. However,
> >>>> we still got the calltrace in break_stripe_batch_list.
> >>>>
> >>>> [593764.644269] stripe state: 2003
> >>>> kernel: [593764.644299] ------------[ cut here ]------------
> >>>> kernel: [593764.644308] WARNING: CPU: 12 PID: 856 at drivers/md/raid5.c:4625 break_stripe_batch_list+0x203/0x240 [raid456]
> >>>> [...]
> >>>> kernel: [593764.644363] Call Trace:
> >>>> kernel: [593764.644370]  handle_stripe+0x907/0x20c0 [raid456]
> >>>> kernel: [593764.644376]  ? __wake_up_common_lock+0x89/0xc0
> >>>> kernel: [593764.644379]  handle_active_stripes.isra.57+0x35f/0x570 [raid456]
> >>>> kernel: [593764.644382]  ? raid5_wakeup_stripe_thread+0x96/0x1f0 [raid456]
> >>>> kernel: [593764.644385]  raid5d+0x480/0x6a0 [raid456]
> >>>> kernel: [593764.644390]  ? md_thread+0x11f/0x160
> >>>> kernel: [593764.644392]  md_thread+0x11f/0x160
> >>>> kernel: [593764.644394]  ? wait_woken+0x80/0x80
> >>>> kernel: [593764.644396]  kthread+0xfc/0x130
> >>>> kernel: [593764.644398]  ? find_pers+0x70/0x70
> >>>> kernel: [593764.644399]  ? kthread_create_on_node+0x70/0x70
> >>>> kernel: [593764.644401]  ret_from_fork+0x1f/0x30
> >>>>
> >>>> As we can see, the stripe was set with STRIPE_ACTIVE and STRIPE_HANDLE,
> >>>> and only handle_stripe could set those flags then return. And since the
> >>>> stipe was already in the batch list, we need to return earlier before
> >>>> set the two flags.
> >>>>
> >>>> And after dig a little about git history especially commit 3664847d95e6
> >>>> ("md/raid5: fix a race condition in stripe batch"), it seems the batched
> >>>> stipe still could be handled by handle_stipe, then handle_stipe needs to
> >>>> return earlier if clear_batch_ready to return true.
> >>>>
> >>>> Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
> >>>> ---
> >>>> Another alternative would be just not warn if STRIPE_ACTIVE is valid for
> >>>> the batched list.
> >>>>
> >>>> What do you think?
> >>>>
> >>> This patch looks good to me (haven't tested yet). Let's try with this one.
> >> Ok, pls let me know if there is issue during test.
> >>
> >> And do you want a new patch to reflect which I clarified for the line
> >> number and kernel version?
> > That's not necessary. If needed, I will make some change when I apply the patch.
>
> May I know your decision about this?
>

I am sorry that I missed this one. Applied to md-next.

Thanks,
Song

> Thanks,
> Guoqing

      reply	other threads:[~2020-07-16 17:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-16  9:25 [PATCH 1/3] raid5: call clear_batch_ready before set STRIPE_ACTIVE Guoqing Jiang
2020-06-16  9:25 ` [PATCH 2/3] raid5: put the comment of clear_batch_ready to the right place Guoqing Jiang
2020-06-16  9:25 ` [PATCH 3/3] raid5: remove the meaningless check in raid5_make_request Guoqing Jiang
2020-06-19 14:16 ` [PATCH 1/3] raid5: call clear_batch_ready before set STRIPE_ACTIVE Guoqing Jiang
2020-06-23 23:58 ` Song Liu
2020-06-25  9:22   ` Guoqing Jiang
2020-06-26  0:16     ` Song Liu
2020-07-16  7:44       ` Guoqing Jiang
2020-07-16 17:32         ` Song Liu [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='CAPhsuW6M8URxeZuBxk2PAWzJ8r3emsrOxH=PKW6YVWY4NiqR9g@mail.gmail.com' \
    --to=song@kernel.org \
    --cc=guoqing.jiang@cloud.ionos.com \
    --cc=linux-raid@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;
as well as URLs for NNTP newsgroup(s).