From: Damien Le Moal <dlemoal@kernel.org>
To: illofspeed <illofspeed@gmail.com>, dm-devel@lists.linux.dev
Cc: agk@redhat.com, snitzer@kernel.org, mpatocka@redhat.com,
bmarzins@redhat.com, hare@suse.de, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 3/3] dm zoned: keep polling for idle reclaim after a reclaim pass
Date: Sun, 11 Oct 2026 16:31:50 +0200 [thread overview]
Message-ID: <bfbbb428-5a4e-4b61-8fe0-fd0c6c506c64@kernel.org> (raw)
In-Reply-To: <20261010161613.396-4-illofspeed@gmail.com>
On 2026/10/10 18:16, illofspeed wrote:
> dmz_reclaim_work() re-arms its DMZ_IDLE_PERIOD poll only when
> dmz_should_reclaim() returns false at the start of a pass. After a pass
> it calls dmz_schedule_reclaim(), which queues the work only if reclaim
> is needed right now. When a pass ends while the target is still busy and
> has enough free zones, nothing is queued at all. Once the target goes
> idle, nothing re-evaluates dmz_should_reclaim() until new I/O arrives or
> user space sends a "reclaim" message, so the random or cache zones that
> filled up under load stay full.
>
> Seen on md RAID5 members on 27 TB host-managed drives: after heavy
> writes the random zones stayed full for hours on idle targets; the
> workaround was a timer sending "dmsetup message <dev> 0 reclaim". With
> this patch the emptied and filled zones were reclaimed within minutes of
> the targets going idle, without the timer.
>
> After a pass, requeue the work immediately if reclaim is still needed,
> otherwise re-arm the idle poll.
>
> Fixes: 3b1a94c88b79 ("dm zoned: drive-managed zoned block device target")
> Assisted-by: LLM
> Signed-off-by: illofspeed <illofspeed@gmail.com>
Patch looks OK to me, but same comment as patch 1 about your SoB name. Please
confirm.
> ---
> drivers/md/dm-zoned-reclaim.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/md/dm-zoned-reclaim.c b/drivers/md/dm-zoned-reclaim.c
> index 2bcc163d209..7feb2628bd0 100644
> --- a/drivers/md/dm-zoned-reclaim.c
> +++ b/drivers/md/dm-zoned-reclaim.c
> @@ -557,7 +557,16 @@ static void dmz_reclaim_work(struct work_struct *work)
> }
> }
>
> - dmz_schedule_reclaim(zrc);
> + /*
> + * Keep the worker alive: when a pass ends while the target is busy
> + * with enough free zones, dmz_schedule_reclaim() queues nothing and
> + * the idle poll is never re-armed, so zones filled under load are not
> + * reclaimed once the target goes idle.
> + */
> + if (dmz_should_reclaim(zrc, dmz_reclaim_percentage(zrc)))
> + mod_delayed_work(zrc->wq, &zrc->work, 0);
> + else
> + mod_delayed_work(zrc->wq, &zrc->work, DMZ_IDLE_PERIOD);
> }
>
> /*
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2026-10-11 14:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-10 16:16 [PATCH v2 0/3] dm zoned: fix two idle reclaim problems illofspeed
2026-10-10 16:16 ` [PATCH v2 1/3] dm zoned: back off when reclaim finds no destination zone illofspeed
2026-10-11 14:24 ` Damien Le Moal
2026-10-11 16:17 ` illofspeed
2026-10-11 16:32 ` Damien Le Moal
2026-10-11 16:47 ` Damien Le Moal
2026-10-10 16:16 ` [PATCH v2 2/3] dm zoned: do not reclaim a random zone into another random zone illofspeed
2026-10-11 14:30 ` Damien Le Moal
2026-10-11 16:17 ` illofspeed
2026-10-10 16:16 ` [PATCH v2 3/3] dm zoned: keep polling for idle reclaim after a reclaim pass illofspeed
2026-10-11 14:31 ` Damien Le Moal [this message]
2026-10-11 16:17 ` illofspeed
2026-10-11 14:23 ` [PATCH v2 0/3] dm zoned: fix two idle reclaim problems Damien Le Moal
2026-10-11 14:33 ` Damien Le Moal
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=bfbbb428-5a4e-4b61-8fe0-fd0c6c506c64@kernel.org \
--to=dlemoal@kernel.org \
--cc=agk@redhat.com \
--cc=bmarzins@redhat.com \
--cc=dm-devel@lists.linux.dev \
--cc=hare@suse.de \
--cc=illofspeed@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=snitzer@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 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.