From: "Denis V. Lunev" <den@openvz.org>
To: khorenko@virtuozzo.com, andrey.zhadchenko@virtuozzo.com
Cc: devel@openvz.org
Subject: [Devel] [PATCH hci-8.1 0/2] dm-ploop: fix writes held on ENOSPC never being retried
Date: Mon, 9 Nov 2026 20:06:55 +0100 [thread overview]
Message-ID: <20261109190657.1851487-1-den@openvz.org> (raw)
A write that fails with ENOSPC on the image is held and retried by
enospc_timer, so that I/O resumes once space is freed. The timer only
sets a flag that the dispatcher consumes, and nothing wakes the
dispatcher, so the held writes are retried only when other I/O reaches
the device. On a device whose only I/O is the held writes, the writers
stay in D state for good after the space is freed (patch 2,
VSTOR-154182).
Patch 1 makes the destructor shut the timer down first. Nothing stops
it there today, and with patch 2 the callback dereferences the
dispatcher thread as well as struct ploop.
Found in a vmcore: 16 writers in D state, submit_enospc set, all 16
pios on enospc_pios, the timer expired 12 s before the crash.
Tested on 6.12.0-211.52.1.22.19.vz10, dm-ploop built out of tree:
- 16 O_DIRECT writers held on a full host ext4, then the space freed
with no other I/O on the device. Stock: still stuck after 60 s, one
unrelated read releases them. With the series: done 8 s after the
space is freed, on the next timer tick;
- ploop test suite, make -j48 test on dev-cl04, green for ploop and
qcow2 with this series together with the VSTOR-154096 one.
Denis V. Lunev (2):
dm-ploop: stop enospc_timer in ploop_destroy()
dm-ploop: fix the ENOSPC retry timer not waking the dispatcher
drivers/md/dm-ploop-map.c | 9 +++++----
drivers/md/dm-ploop-target.c | 1 +
2 files changed, 6 insertions(+), 4 deletions(-)
--
2.53.0
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
next reply other threads:[~2026-11-09 19:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-09 19:06 Denis V. Lunev [this message]
2026-11-09 19:06 ` [Devel] [PATCH hci-8.1 1/2] dm-ploop: stop enospc_timer in ploop_destroy() Denis V. Lunev
2026-11-09 19:17 ` no-reply
2026-11-09 19:06 ` [Devel] [PATCH hci-8.1 2/2] dm-ploop: fix the ENOSPC retry timer not waking the dispatcher Denis V. Lunev
2026-11-09 19:18 ` no-reply
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=20261109190657.1851487-1-den@openvz.org \
--to=den@openvz.org \
--cc=andrey.zhadchenko@virtuozzo.com \
--cc=devel@openvz.org \
--cc=khorenko@virtuozzo.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.