OpenVZ / Virtuozzo kernel development (devel@openvz.org)
 help / color / mirror / Atom feed
From: Andrey Zhadchenko <andrey.zhadchenko@virtuozzo.com>
To: "Denis V. Lunev" <den@openvz.org>
Cc: devel@openvz.org
Subject: Re: [Devel] [PATCH hci-8.1 0/2] dm-ploop: fix flip_upper_deltas panicking the host in its pre-flip check
Date: Thu, 5 Nov 2026 13:36:13 +0100	[thread overview]
Message-ID: <d376dffe-4a1d-4add-b2b5-ae69410afb45@virtuozzo.com> (raw)
In-Reply-To: <20261104214635.2063009-1-den@openvz.org>

Reviewed-by: Andrey Zhadchenko <andrey.zhadchenko@virtuozzo.com>

On 11/4/26 22:46, Denis V. Lunev wrote:
> ploop_check_delta_before_flip() runs on every flip_upper_deltas, as
> PLOOP_DEBUG is always defined in dm-ploop-cmd.c, and both of its ways
> out of the walk are broken (VSTOR-153445):
> 
> - patch 1: when it finds a cluster both deltas map, it returns -EEXIST
>    with two md_locks held and interrupts disabled. The next pio on that
>    BAT page spins on the lock forever, and the host panics on a hard
>    lockup;
> 
> - patch 2: the walk never stops at the end of the BAT of the lower
>    delta, so once the device has grown past it the flip oopses on a NULL
>    md page.
> 
> Neither is reached through the ploop library. Its reverse merge, the
> only sender of the flip, grows the lower delta to the size of the top
> and clears the clusters both deltas map before it flips, and a device it
> mounted has the lower delta read-only, which the flip refuses with
> EACCES before the check. Both take a flip of a table built with the
> lower delta read-write, so VSTOR-153445 has no RK for 8.0. This is the
> fix the v2 cover letter of "dm-ploop: fix the pio submission stop around
> cmds" said would be sent separately.
> 
> Tested on dev-cl04, stock 6.12.0-211.52.1.22.11.vz10, dm-ploop built
> out of tree with the series on top of the applied dm-ploop v2:
> - a chain whose top delta overwrote clusters of the base and a direct
>    flip_upper_deltas: the stock module returns to dmsetup in atomic
>    context ("BUG: scheduling while atomic"), and a read of the device
>    then panics the host with "Hard LOCKUP". With the series the message
>    fails with EEXIST and the device keeps working;
> - set_noresume, suspend, a grow to 2T and flip_upper_deltas: the stock
>    module oopses at ploop_check_delta_before_flip+0x86, with the series
>    the flip completes and the images keep their data;
> - the ploop pytest suite, ploop format, passes.
> 
> Denis V. Lunev (2):
>    dm-ploop: fix flip_upper_deltas returning with two md_locks held
>    dm-ploop: fix flip_upper_deltas walking past the BAT of the lower
>      delta
> 
>   drivers/md/dm-ploop-cmd.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> 
> base-commit: 1f21db982845109040d1feb279e9ee34f8e6f065

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

  parent reply	other threads:[~2026-11-05 12:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-04 21:46 Denis V. Lunev
2026-11-04 21:46 ` [Devel] [PATCH hci-8.1 1/2] dm-ploop: fix flip_upper_deltas returning with two md_locks held Denis V. Lunev
2026-11-04 21:50   ` no-reply
2026-11-05 12:58   ` Konstantin Khorenko
2026-11-04 21:46 ` [Devel] [PATCH hci-8.1 2/2] dm-ploop: fix flip_upper_deltas walking past the BAT of the lower delta Denis V. Lunev
2026-11-04 21:50   ` no-reply
2026-11-05 12:58   ` Konstantin Khorenko
2026-11-05 12:36 ` Andrey Zhadchenko [this message]
2026-11-05 12:58 ` [Devel] [PATCH hci-8.1 0/2] dm-ploop: fix flip_upper_deltas panicking the host in its pre-flip check Konstantin Khorenko

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=d376dffe-4a1d-4add-b2b5-ae69410afb45@virtuozzo.com \
    --to=andrey.zhadchenko@virtuozzo.com \
    --cc=den@openvz.org \
    --cc=devel@openvz.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