From: Jeff Layton <jlayton@kernel.org>
To: ceph-devel@vger.kernel.org
Cc: idryomov@gmail.com, sage@redhat.com, zyan@redhat.com,
pdonnell@redhat.com, xiubli@redhat.com
Subject: [PATCH v5 00/12] ceph: async directory operations support
Date: Wed, 19 Feb 2020 08:25:14 -0500 [thread overview]
Message-ID: <20200219132526.17590-1-jlayton@kernel.org> (raw)
A lot of changes in this set -- some highlights:
v5: reorganize patchset for easier review and better bisectability
rework how dir caps are acquired and tracked in requests
preemptively release cap refs when reconnecting session
restore inode number back to pool when fall back to sync create
rework unlink cap acquisition to be lighter weight
new "nowsync" mount opt, patterned after xfs "wsync" mount opt
Performance is on par with earlier sets.
I previously pulled the async unlink patch from ceph-client/testing, so
this set includes a revised version of that as well, and orders it
some other changes. I also broke that one up into several patches.
This should (hopefully) address Zheng's concerns about releasing the
caps when the session is lost. Those are preemptively released now
when the session is reconnected.
This adds a new mount option too. xfs has a "wsync" mount option which
makes it wait for namespaced directory operations to be journalled
before returning. This patchset adds "wsync" and "nowsync" options, so
it can now be enabled/disabled on a per-sb-basis.
The default for xfs is "nowsync". For ceph though, I'm leaving it as
"wsync" for now, so you need to mount with "nowsync" to enable async
dirops.
We may not actually need patch #6 here. Zheng had that delta in one
of the earlier patches, but I'm not sure it's really needed now. It
may make sense to just take it on its own merits though.
Comments and suggestions welcome.
Jeff Layton (11):
ceph: add flag to designate that a request is asynchronous
ceph: track primary dentry link
ceph: add infrastructure for waiting for async create to complete
ceph: make __take_cap_refs non-static
ceph: cap tracking for async directory operations
ceph: perform asynchronous unlink if we have sufficient caps
ceph: make ceph_fill_inode non-static
ceph: decode interval_sets for delegated inos
ceph: add new MDS req field to hold delegated inode number
ceph: cache layout in parent dir on first sync create
ceph: attempt to do async create when possible
Yan, Zheng (1):
ceph: don't take refs to want mask unless we have all bits
fs/ceph/caps.c | 72 +++++++---
fs/ceph/dir.c | 106 +++++++++++++-
fs/ceph/file.c | 270 +++++++++++++++++++++++++++++++++--
fs/ceph/inode.c | 58 ++++----
fs/ceph/mds_client.c | 196 ++++++++++++++++++++++---
fs/ceph/mds_client.h | 24 +++-
fs/ceph/super.c | 20 +++
fs/ceph/super.h | 21 ++-
include/linux/ceph/ceph_fs.h | 17 ++-
9 files changed, 701 insertions(+), 83 deletions(-)
--
2.24.1
next reply other threads:[~2020-02-19 13:25 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-19 13:25 Jeff Layton [this message]
2020-02-19 13:25 ` [PATCH v5 01/12] ceph: add flag to designate that a request is asynchronous Jeff Layton
2020-02-19 13:25 ` [PATCH v5 02/12] ceph: track primary dentry link Jeff Layton
2020-02-19 13:25 ` [PATCH v5 03/12] ceph: add infrastructure for waiting for async create to complete Jeff Layton
2020-02-20 3:32 ` Yan, Zheng
2020-02-20 13:01 ` Jeff Layton
2020-02-20 13:33 ` Yan, Zheng
2020-02-20 14:53 ` Jeff Layton
2020-02-25 19:45 ` Jeff Layton
2020-02-26 14:10 ` Yan, Zheng
2020-02-27 20:06 ` Jeff Layton
2020-02-19 13:25 ` [PATCH v5 04/12] ceph: make __take_cap_refs non-static Jeff Layton
2020-02-19 13:25 ` [PATCH v5 05/12] ceph: cap tracking for async directory operations Jeff Layton
2020-02-20 6:42 ` Yan, Zheng
2020-02-20 11:30 ` Jeff Layton
2020-02-19 13:25 ` [PATCH v5 06/12] ceph: don't take refs to want mask unless we have all bits Jeff Layton
2020-02-19 13:25 ` [PATCH v5 07/12] ceph: perform asynchronous unlink if we have sufficient caps Jeff Layton
2020-02-20 6:44 ` Yan, Zheng
2020-02-20 11:32 ` Jeff Layton
2020-02-19 13:25 ` [PATCH v5 08/12] ceph: make ceph_fill_inode non-static Jeff Layton
2020-02-19 13:25 ` [PATCH v5 09/12] ceph: decode interval_sets for delegated inos Jeff Layton
2020-02-19 13:25 ` [PATCH v5 10/12] ceph: add new MDS req field to hold delegated inode number Jeff Layton
2020-02-19 13:25 ` [PATCH v5 11/12] ceph: cache layout in parent dir on first sync create Jeff Layton
2020-02-19 13:25 ` [PATCH v5 12/12] ceph: attempt to do async create when possible Jeff Layton
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=20200219132526.17590-1-jlayton@kernel.org \
--to=jlayton@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=idryomov@gmail.com \
--cc=pdonnell@redhat.com \
--cc=sage@redhat.com \
--cc=xiubli@redhat.com \
--cc=zyan@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 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.