All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
To: linux-xfs@vger.kernel.org
Cc: Dave Chinner <david@fromorbit.com>,
	"Darrick J . Wong" <djwong@kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	Ojaswin Mujoo <ojaswin@linux.ibm.com>,
	Ritesh Harjani <ritesh.list@gmail.com>
Subject: [PATCHv4 0/1] xfs: soft lockups in unmapping and reflink remapping path
Date: Tue,  7 May 2024 15:06:54 +0530	[thread overview]
Message-ID: <cover.1715073983.git.ritesh.list@gmail.com> (raw)

Hello,

In one of the testcases, parallel async dio writes to a file generates
large no. of extents (upto 2M or more), and then this file is cleaned up for
running other I/O tests. In the process of deleting this file, soft lockup
messages are observed. We believe this is happening due to kernel being busy
in unmapping/freeing those extents as part of the transaction processing.
This is similar observation with the same call stack which was also reported
here [1]. I also tried the qemu-img bench testcase shared in [1], and I was
able to reproduce the soft lockup with that on Power.

Similarly another instance was reported where xfs reflink remapping path also
saw a similar softlockup problem while iterating over a million extent entries.

So as I understood from that discussion [1], that kernel is moving towards a new
preemption model, but IIUC, it is still an ongoing work.
Also IMHO, this is still a problem in upstream and in older stable kernels
which we still do support and such a fix might still be necessary for them.

This patch adds the cond_resched() to both xfs_bunmapi_range() and
xfs_reflink_remap_blocks() functions.

v3 -> v4:
Remove cond_resched() from defer finish and add it to both the unmap range and
reflink remap functions individually.

v2 -> v3:
Move cond_resched within xfs_defer_finish_noroll() loop

Ritesh Harjani (IBM) (1):
  xfs: Add cond_resched to block unmap range and reflink remap path

 fs/xfs/libxfs/xfs_bmap.c | 1 +
 fs/xfs/xfs_reflink.c     | 1 +
 2 files changed, 2 insertions(+)

--
2.44.0


             reply	other threads:[~2024-05-07  9:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-07  9:36 Ritesh Harjani (IBM) [this message]
2024-05-07  9:36 ` [PATCHv4 1/1] xfs: Add cond_resched to block unmap range and reflink remap path Ritesh Harjani (IBM)
2024-05-07 21:11   ` Darrick J. Wong
2024-05-27 13:44   ` Disha Goel

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=cover.1715073983.git.ritesh.list@gmail.com \
    --to=ritesh.list@gmail.com \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=hch@infradead.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=ojaswin@linux.ibm.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 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.