LKML Archive mirror
 help / color / mirror / Atom feed
From: Ian Kent <raven@themaw.net>
To: Lucas Karpinski <lkarpins@redhat.com>, Al Viro <viro@zeniv.linux.org.uk>
Cc: brauner@kernel.org, jack@suse.cz, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, alexl@redhat.com,
	echanude@redhat.com, ikent@redhat.com, ahalaney@redhat.com
Subject: Re: [RFC v2 1/1] fs/namespace: defer RCU sync for MNT_DETACH umount
Date: Wed, 1 May 2024 21:41:53 +0800	[thread overview]
Message-ID: <52eab48d-9098-4609-895b-6bed5953cc6c@themaw.net> (raw)
In-Reply-To: <6rp73lih7g2b7i5rhsztwc66quq6fi3mesel52uavvt7uhfzlf@6rytjc7gb2tj>

On 30/4/24 21:25, Lucas Karpinski wrote:
> On Fri, Apr 26, 2024 at 09:09:41PM +0100, Al Viro wrote:
>>> +		call_rcu(&drelease->rcu, delayed_mount_release);
>> ... which is a bad idea, since call_rcu() callbacks are run
>> from interrupt context.  Which makes blocking in them a problem.
>>
> Thanks for the quick review.
>
> Documentation/RCU/checklist.rst suggests switching to queue_rcu_work()
> function in scenarios where the callback function can block. This seems
> like it would fix the issue you found, while still providing similar
> performance improvements.

You know I've been looking at this and you can see that mntput() will 
just call

mntput_no_expire() which queues work to do the bulk of the work and returns.


So I'm wondering what would happen to the timing if you simply didn't 
call the

rcu wait for the lazy umount case and left everything else as it is.


Ian


  reply	other threads:[~2024-05-01 13:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-26 19:53 [RFC v2 0/1] fs/namespace: defer RCU sync for MNT_DETACH umount Lucas Karpinski
2024-04-26 19:53 ` [RFC v2 1/1] " Lucas Karpinski
2024-04-26 20:09   ` Al Viro
2024-04-30 13:25     ` Lucas Karpinski
2024-05-01 13:41       ` Ian Kent [this message]
2024-04-30 14:14   ` kernel test robot

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=52eab48d-9098-4609-895b-6bed5953cc6c@themaw.net \
    --to=raven@themaw.net \
    --cc=ahalaney@redhat.com \
    --cc=alexl@redhat.com \
    --cc=brauner@kernel.org \
    --cc=echanude@redhat.com \
    --cc=ikent@redhat.com \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkarpins@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).