ceph-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: ceph-devel@vger.kernel.org, Ilya Dryomov <idryomov@gmail.com>
Cc: Patrick Donnelly <pdonnell@redhat.com>
Subject: Re: [PATCH] ceph: enable async dirops by default
Date: Wed, 01 Sep 2021 12:54:06 -0400	[thread overview]
Message-ID: <6aeae1ddabffc701e1b039e99464c116c682a3fa.camel@kernel.org> (raw)
In-Reply-To: <20210809164410.27750-1-jlayton@kernel.org>

On Mon, 2021-08-09 at 12:44 -0400, Jeff Layton wrote:
> Async dirops have been supported in mainline kernels for quite some time
> now, and we've recently (as of June) started doing regular testing in
> teuthology with '-o nowsync'. So far, that hasn't uncovered any issues,
> so I think the time is right to flip the default for this option.
> 
> Enable async dirops by default, and change /proc/mounts to show "wsync"
> when they are disabled rather than "nowsync" when they are enabled.
> 
> Cc: Patrick Donnelly <pdonnell@redhat.com>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/ceph/super.c | 4 ++--
>  fs/ceph/super.h | 3 ++-
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
> index 609ffc8c2d78..f517ad9eeb26 100644
> --- a/fs/ceph/super.c
> +++ b/fs/ceph/super.c
> @@ -698,8 +698,8 @@ static int ceph_show_options(struct seq_file *m, struct dentry *root)
>  	if (fsopt->flags & CEPH_MOUNT_OPT_CLEANRECOVER)
>  		seq_show_option(m, "recover_session", "clean");
>  
> -	if (fsopt->flags & CEPH_MOUNT_OPT_ASYNC_DIROPS)
> -		seq_puts(m, ",nowsync");
> +	if (!(fsopt->flags & CEPH_MOUNT_OPT_ASYNC_DIROPS))
> +		seq_puts(m, ",wsync");
>  
>  	if (fsopt->wsize != CEPH_MAX_WRITE_SIZE)
>  		seq_printf(m, ",wsize=%u", fsopt->wsize);
> diff --git a/fs/ceph/super.h b/fs/ceph/super.h
> index 389b45ac291b..0bc36cf4c683 100644
> --- a/fs/ceph/super.h
> +++ b/fs/ceph/super.h
> @@ -48,7 +48,8 @@
>  
>  #define CEPH_MOUNT_OPT_DEFAULT			\
>  	(CEPH_MOUNT_OPT_DCACHE |		\
> -	 CEPH_MOUNT_OPT_NOCOPYFROM)
> +	 CEPH_MOUNT_OPT_NOCOPYFROM |		\
> +	 CEPH_MOUNT_OPT_ASYNC_DIROPS)
>  
>  #define ceph_set_mount_opt(fsc, opt) \
>  	(fsc)->mount_options->flags |= CEPH_MOUNT_OPT_##opt

I think we ought to wait to merge this into mainline just yet, but I'd
like to leave it in the "testing" branch for now. 

I've been working this bug with Patrick for the last month or two:

    https://tracker.ceph.com/issues/51279

In at least one case, the problem seems to be that the MDS failed an
async create with an ENOSPC error. The kclient's error handling around
this is pretty non-existent right now, so it caused an unmount to hang. 

It's a pity we still don't have revoke()...

I've started working on a series to clean this up, but in the meantime I
think we ought to wait until that's in place before we make nowsync the
default.

Sound ok?
-- 
Jeff Layton <jlayton@kernel.org>


  reply	other threads:[~2021-09-01 16:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09 16:44 [PATCH] ceph: enable async dirops by default Jeff Layton
2021-09-01 16:54 ` Jeff Layton [this message]
2021-09-02 15:52   ` Ilya Dryomov
2021-09-07 21:07   ` Patrick Donnelly
  -- strict thread matches above, loose matches on Subject: below --
2021-01-19 14:44 Jeff Layton
2021-01-20 10:46 ` Ilya Dryomov
2021-01-20 12:00   ` Jeff Layton
2021-01-20 12:24     ` Ilya Dryomov
2021-02-17  2:41       ` Patrick Donnelly
2021-01-20 11:07 ` Luis Henriques

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=6aeae1ddabffc701e1b039e99464c116c682a3fa.camel@kernel.org \
    --to=jlayton@kernel.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=idryomov@gmail.com \
    --cc=pdonnell@redhat.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 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 NNTP newsgroup(s).