All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@redhat.com>
To: Jan Kara <jack@suse.cz>
Cc: Al Viro <viro@zeniv.linux.org.uk>,
	Dave Chinner <david@fromorbit.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 7/8] shift percpu_counter_destroy() into destroy_super_work()
Date: Thu, 13 Aug 2015 17:20:35 +0200	[thread overview]
Message-ID: <20150813152035.GB20045@redhat.com> (raw)
In-Reply-To: <20150813140929.GA4392@quack.suse.cz>

On 08/13, Jan Kara wrote:
>
> On Thu 13-08-15 15:36:16, Oleg Nesterov wrote:
> > On 08/13, Jan Kara wrote:
> > >
> > > Looking into this again, it would seem somewhat cleaner to me to move the
> > > destruction to deactivate_locked_super() instead.
> >
> > Heh ;) You know, I was looking at deactivate_locked_super(). However, I
> > simply do not understand this code enough, I failed to verify it would
> > be safe to destroy s_writers there.
>
> Yes, it will be safe. After ->kill_sb() callback the filesystem is dead.
> There can be someone still holding reference to superblock but these are
> just users inspecting the structure definitely not caring about freeze
> protection.

OK, thanks.

> > And. Please note destroy_super() in alloc_super() error path, so this
> > needs a bit more changes in any case.
>
> Yes. But you can sleep in alloc_super() so that would be easy enough.

Yes, yes, I didn't mean this is a problem.

> > Can't we live with this hack for now? To remind, it will be reverted
> > (at least partially) in any case. Yes, yes, it is very ugly and the
> > changelog documents this fact. But it looks simple and safe. To me
> > it would be better to make the conversion first, then cleanup this
> > horror after another discussion.
>
> All I care about is that long-term, all handling from destroy_super() that
> needs to sleep ends up in one place. So if you promise you'll make this
> happen I can live with the workqueue solution for now

I certainly promise I will try to do something in any case ;)

But let me repeat another reason why I think we should do this later.
The necessary changes depend on other work-in-progress rcu_sync changes
in percpu_rw_semaphore.

Now that you confirm that we should not worry about sb_writers after
deactivate_locked_super(), the cleanup looks even simpler than I
thought initially:

	1. We do not even need to destroy the counters in
	   deactivate_locked_super(). It should only stop the
	   (potentially) pending rcu-callback(s).

	2. Just revert this patch altogether.

> (but you have to
> convince also Al as a maintainer ;).

Perhaps he won't notice how ugly this change is? If you won't tell him.

Oleg.

  reply	other threads:[~2015-08-13 15:20 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-11 17:03 [PATCH v2 0/8] change sb_writers to use percpu_rw_semaphore Oleg Nesterov
2015-08-11 17:03 ` [PATCH v2 1/8] introduce __sb_{acquire,release}_write() helpers Oleg Nesterov
2015-08-13  9:45   ` Jan Kara
2015-08-13  9:56     ` Jan Kara
2015-08-13 13:17       ` Oleg Nesterov
2015-08-13 13:32         ` Jan Kara
2015-08-13 13:37           ` Oleg Nesterov
2015-08-11 17:04 ` [PATCH v2 2/8] fix the broken lockdep logic in __sb_start_write() Oleg Nesterov
2015-08-13 10:02   ` Jan Kara
2015-08-13 13:22     ` Oleg Nesterov
2015-08-13 13:29       ` Jan Kara
2015-08-11 17:04 ` [PATCH v2 3/8] document rwsem_release() in sb_wait_write() Oleg Nesterov
2015-08-13 10:22   ` Jan Kara
2015-08-11 17:04 ` [PATCH v2 4/8] percpu-rwsem: introduce percpu_down_read_trylock() Oleg Nesterov
2015-08-11 17:04 ` [PATCH v2 5/8] percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire() Oleg Nesterov
2015-08-11 17:04 ` [PATCH v2 6/8] percpu-rwsem: kill CONFIG_PERCPU_RWSEM Oleg Nesterov
2015-08-11 17:04 ` [PATCH v2 7/8] shift percpu_counter_destroy() into destroy_super_work() Oleg Nesterov
2015-08-13 10:35   ` Jan Kara
2015-08-13 13:36     ` Oleg Nesterov
2015-08-13 14:09       ` Jan Kara
2015-08-13 15:20         ` Oleg Nesterov [this message]
2015-08-11 17:04 ` [PATCH v2 8/8] change sb_writers to use percpu_rw_semaphore Oleg Nesterov
2015-08-13 10:48   ` Jan Kara
2015-08-12 13:11 ` [PATCH v2 9/8] don't fool lockdep in freeze_super() and thaw_super() paths Oleg Nesterov
2015-08-13 11:01   ` Jan Kara
2015-08-13 13:58     ` Oleg Nesterov

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=20150813152035.GB20045@redhat.com \
    --to=oleg@redhat.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@fromorbit.com \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=viro@zeniv.linux.org.uk \
    /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.