From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shaohua Li Subject: Re: [PATCH] md/raid5: add thread_group worker async_tx_issue_pending_all Date: Mon, 24 Jul 2017 07:48:21 -0700 Message-ID: <20170724144821.aec6ahdx33vlg45y@kernel.org> References: <1500877060-12256-1-git-send-email-oferh@marvell.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1500877060-12256-1-git-send-email-oferh@marvell.com> Sender: linux-raid-owner@vger.kernel.org To: oferh@marvell.com Cc: nadavh@marvell.com, linux-raid@vger.kernel.org, stable@vger.kernel.org List-Id: linux-raid.ids On Mon, Jul 24, 2017 at 09:17:40AM +0300, oferh@marvell.com wrote: > From: Ofer Heifetz > > Since thread_group worker and raid5d kthread are not in sync, if > worker writes stripe before raid5d then requests will be waiting > for issue_pendig. > > Issue observed when building raid5 with ext4, in some build runs > jbd2 would get hung and requests were waiting in the HW engine > waiting to be issued. > > Fix this by adding a call to async_tx_issue_pending_all in the > raid5_do_work. applied, thanks! > Signed-off-by: Ofer Heifetz > Cc: stable@vger.kernel.org > --- > drivers/md/raid5.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index aeeb8d6..3c0b924 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -6237,6 +6237,8 @@ static void raid5_do_work(struct work_struct *work) > pr_debug("%d stripes handled\n", handled); > > spin_unlock_irq(&conf->device_lock); > + > + async_tx_issue_pending_all(); > blk_finish_plug(&plug); > > pr_debug("--- raid5worker inactive\n"); > -- > 1.9.1 >