All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dennis Zhou <dennis@kernel.org>
To: Nikolay Borisov <nborisov@suse.com>
Cc: Dennis Zhou <dennis@kernel.org>, David Sterba <dsterba@suse.com>,
	Josef Bacik <josef@toxicpanda.com>, Chris Mason <clm@fb.com>,
	Omar Sandoval <osandov@osandov.com>,
	Nick Terrell <terrelln@fb.com>,
	kernel-team@fb.com, linux-btrfs@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] btrfs: zstd ensure reclaim timer is properly cleaned up
Date: Fri, 22 Feb 2019 11:53:57 -0500	[thread overview]
Message-ID: <20190222165357.GA85619@dennisz-mbp> (raw)
In-Reply-To: <eb7df5c4-25fb-2d10-58a1-b3be7b37c2db@suse.com>

On Fri, Feb 22, 2019 at 02:17:41PM +0200, Nikolay Borisov wrote:
> 
> 
> On 21.02.19 г. 22:25 ч., Dennis Zhou wrote:
> > The timer function, zstd_reclaim_timer_fn(), reschedules itself under
> > certain conditions. Switch to del_timer_sync() to ensure that the timer
> > function hasn't rescheduled itself.
> 
> According to del_timer_sync it just waits for any concurrent invocation
> to finish. But it's responsibility of the caller to ensure the timer
> cannot really be restarted. It's not obvious how
> zstd_cleanup_workspace_manager ensures that the timer won't be restared.
> Looking at the timer function for it to not restart wsm.lru_list has to
> be empty. And seeing that workspace->lru_list is deleted afterwards I'm
> not sure this invariant holds.
> 

Hmmm, I see. I misunderstood the invariant. I'll spin v2 and handle it
another way.

Thanks,
Dennis

> > 
> > Signed-off-by: Dennis Zhou <dennis@kernel.org>
> > ---
> >  fs/btrfs/zstd.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c
> > index 3e418a3aeb11..62de9a211321 100644
> > --- a/fs/btrfs/zstd.c
> > +++ b/fs/btrfs/zstd.c
> > @@ -195,7 +195,7 @@ static void zstd_cleanup_workspace_manager(void)
> >  	struct workspace *workspace;
> >  	int i;
> >  
> > -	del_timer(&wsm.timer);
> > +	del_timer_sync(&wsm.timer);
> >  
> >  	for (i = 0; i < ZSTD_BTRFS_MAX_LEVEL; i++) {
> >  		while (!list_empty(&wsm.idle_ws[i])) {
> > 

      reply	other threads:[~2019-02-22 16:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-21 20:25 [PATCH] btrfs: zstd ensure reclaim timer is properly cleaned up Dennis Zhou
2019-02-22 12:17 ` Nikolay Borisov
2019-02-22 16:53   ` Dennis Zhou [this message]

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=20190222165357.GA85619@dennisz-mbp \
    --to=dennis@kernel.org \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nborisov@suse.com \
    --cc=osandov@osandov.com \
    --cc=terrelln@fb.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.