From: Jeff Layton <jlayton@kernel.org>
To: John Stultz <jstultz@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Stephen Boyd <sboyd@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Jonathan Corbet <corbet@lwn.net>,
Randy Dunlap <rdunlap@infradead.org>,
Chandan Babu R <chandan.babu@oracle.com>,
"Darrick J. Wong" <djwong@kernel.org>,
Theodore Ts'o <tytso@mit.edu>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Chris Mason <clm@fb.com>, Josef Bacik <josef@toxicpanda.com>,
David Sterba <dsterba@suse.com>, Hugh Dickins <hughd@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Chuck Lever <chuck.lever@oracle.com>,
Vadim Fedorenko <vadim.fedorenko@linux.dev>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-trace-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-btrfs@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-mm@kvack.org, Jeff Layton <jlayton@kernel.org>
Subject: [PATCH v9 00/12] fs: multigrain timestamp redux
Date: Wed, 02 Oct 2024 14:49:28 -0400 [thread overview]
Message-ID: <20241002-mgtime-v9-0-77e2baad57ac@kernel.org> (raw)
This is a replacement for the v6 series sitting in Christian's
vfs.mgtime branch. The main changes here are to the changelogs,
documentation and comments. The code itself is largely unchanged.
The pipe1_threads test shows these averages on my test rig with this
series:
v6.11: 89233600 (baseline)
v6.11 + v9 series: 88460897 (<1% slower)
Acked-by's and Reviewed-by's would be welcome (particularly from the
timekeeper folks).
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v9:
- Comment and documentation cleanups.
- Drop the EXPORT_SYMBOL_GPL() from new timekeeper interfaces
- Link to v8: https://lore.kernel.org/r/20241001-mgtime-v8-0-903343d91bc3@kernel.org
Changes in v8:
- split patch that adds percpu counters into fs and timekeeping patches
- convert percpu counters to unsigned longs
- directly access the offs_real value in timekeeper instead of going
through offsets array
- drop WARN_ON's in timekeeping patches
- better changelogs and more comments for the timekeeping bits
- better document how backward realtime clock jumps affect things
- Link to v7: https://lore.kernel.org/r/20240913-mgtime-v7-0-92d4020e3b00@kernel.org
Changes in v7:
- move the floor value handling into timekeeper for better performance
- Link to v6: https://lore.kernel.org/r/20240715-mgtime-v6-0-48e5d34bd2ba@kernel.org
Changes in v6:
- Normalize timespec64 in inode_set_ctime_to_ts
- use DEFINE_PER_CPU counters for better vfs consistency
- skip ctime cmpxchg if the result means nothing will change
- add trace_ctime_xchg_skip to track skipped ctime updates
- use __print_flags in ctime_ns_xchg tracepoint
- Link to v5: https://lore.kernel.org/r/20240711-mgtime-v5-0-37bb5b465feb@kernel.org
Changes in v5:
- refetch coarse time in coarse_ctime if not returning floor
- timestamp_truncate before swapping new ctime value into place
- track floor value as atomic64_t
- cleanups to Documentation file
- Link to v4: https://lore.kernel.org/r/20240708-mgtime-v4-0-a0f3c6fb57f3@kernel.org
Changes in v4:
- reordered tracepoint fields for better packing
- rework percpu counters again to also count fine grained timestamps
- switch to try_cmpxchg for better efficiency
- Link to v3: https://lore.kernel.org/r/20240705-mgtime-v3-0-85b2daa9b335@kernel.org
Changes in v3:
- Drop the conversion of i_ctime fields to ktime_t, and use an unused bit
of the i_ctime_nsec field as QUERIED flag.
- Better tracepoints for tracking floor and ctime updates
- Reworked percpu counters to be more useful
- Track floor as monotonic value, which eliminates clock-jump problem
Changes in v2:
- Added Documentation file
- Link to v1: https://lore.kernel.org/r/20240626-mgtime-v1-0-a189352d0f8f@kernel.org
---
Jeff Layton (12):
timekeeping: add interfaces for handling timestamps with a floor value
fs: add infrastructure for multigrain timestamps
fs: have setattr_copy handle multigrain timestamps appropriately
fs: handle delegated timestamps in setattr_copy_mgtime
fs: tracepoints around multigrain timestamp events
fs: add percpu counters for significant multigrain timestamp events
timekeeping: add percpu counter for tracking floor swap events
Documentation: add a new file documenting multigrain timestamps
xfs: switch to multigrain timestamps
ext4: switch to multigrain timestamps
btrfs: convert to multigrain timestamps
tmpfs: add support for multigrain timestamps
Documentation/filesystems/index.rst | 1 +
Documentation/filesystems/multigrain-ts.rst | 125 ++++++++++++
fs/attr.c | 60 +++++-
fs/btrfs/file.c | 25 +--
fs/btrfs/super.c | 3 +-
fs/ext4/super.c | 2 +-
fs/inode.c | 282 +++++++++++++++++++++++++---
fs/stat.c | 46 ++++-
fs/xfs/libxfs/xfs_trans_inode.c | 6 +-
fs/xfs/xfs_iops.c | 10 +-
fs/xfs/xfs_super.c | 2 +-
include/linux/fs.h | 36 +++-
include/linux/timekeeping.h | 5 +
include/trace/events/timestamp.h | 124 ++++++++++++
kernel/time/timekeeping.c | 106 +++++++++++
kernel/time/timekeeping_debug.c | 13 ++
kernel/time/timekeeping_internal.h | 9 +
mm/shmem.c | 2 +-
18 files changed, 784 insertions(+), 73 deletions(-)
---
base-commit: 7f1416b4fe6bd3363878a91894cd770f8ee1b5d0
change-id: 20240913-mgtime-20c98bcda88e
Best regards,
--
Jeff Layton <jlayton@kernel.org>
next reply other threads:[~2024-10-02 18:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-02 18:49 Jeff Layton [this message]
2024-10-02 18:49 ` [PATCH v9 01/12] timekeeping: add interfaces for handling timestamps with a floor value Jeff Layton
2024-10-02 18:49 ` [PATCH v9 02/12] fs: add infrastructure for multigrain timestamps Jeff Layton
2024-10-02 18:49 ` [PATCH v9 03/12] fs: have setattr_copy handle multigrain timestamps appropriately Jeff Layton
2024-10-02 18:49 ` [PATCH v9 04/12] fs: handle delegated timestamps in setattr_copy_mgtime Jeff Layton
2024-10-02 18:49 ` [PATCH v9 05/12] fs: tracepoints around multigrain timestamp events Jeff Layton
2024-10-02 18:49 ` [PATCH v9 06/12] fs: add percpu counters for significant " Jeff Layton
2024-10-02 18:49 ` [PATCH v9 07/12] timekeeping: add percpu counter for tracking floor swap events Jeff Layton
2024-10-02 19:33 ` Thomas Gleixner
2024-10-02 18:49 ` [PATCH v9 08/12] Documentation: add a new file documenting multigrain timestamps Jeff Layton
2024-10-04 4:49 ` Bagas Sanjaya
2024-10-02 18:49 ` [PATCH v9 09/12] xfs: switch to " Jeff Layton
2024-10-02 18:49 ` [PATCH v9 10/12] ext4: " Jeff Layton
2024-10-02 18:49 ` [PATCH v9 11/12] btrfs: convert " Jeff Layton
2024-10-02 18:49 ` [PATCH v9 12/12] tmpfs: add support for " 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=20241002-mgtime-v9-0-77e2baad57ac@kernel.org \
--to=jlayton@kernel.org \
--cc=adilger.kernel@dilger.ca \
--cc=akpm@linux-foundation.org \
--cc=brauner@kernel.org \
--cc=chandan.babu@oracle.com \
--cc=chuck.lever@oracle.com \
--cc=clm@fb.com \
--cc=corbet@lwn.net \
--cc=djwong@kernel.org \
--cc=dsterba@suse.com \
--cc=hughd@google.com \
--cc=jack@suse.cz \
--cc=josef@toxicpanda.com \
--cc=jstultz@google.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=rdunlap@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sboyd@kernel.org \
--cc=tglx@linutronix.de \
--cc=tytso@mit.edu \
--cc=vadim.fedorenko@linux.dev \
--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 NNTP newsgroup(s).