From: Patrick Steinhardt <ps@pks.im>
To: Jeff King <peff@peff.net>
Cc: "D. Ben Knoble" <ben.knoble+github@gmail.com>,
git@vger.kernel.org,
"brian m . carlson" <sandals@crustytoothpaste.net>,
Junio C Hamano <gitster@pobox.com>,
Ramsay Jones <ramsay@ramsayjones.plus.com>
Subject: Re: [PATCH] meson: wire up USE_NSEC build knob
Date: Mon, 22 Jun 2026 10:13:21 +0200 [thread overview]
Message-ID: <ajjuoS5Qc3K0nCRl@pks.im> (raw)
In-Reply-To: <20260621174934.GC2206349@coredump.intra.peff.net>
On Sun, Jun 21, 2026 at 01:49:34PM -0400, Jeff King wrote:
> On Sat, Jun 20, 2026 at 12:00:24PM -0400, D. Ben Knoble wrote:
>
> > Autotools-style builds permit enabling USE_NSEC for cases where that's
> > desired; the equivalent knob is missing from meson-based builds.
>
> Seems reasonable. This is not changing the defaults at all, but just
> bringing meson's options to parity with the Makefile.
I was originally wondering whether I should recommend that Meson can
auto-discover the availability of nanoseconds. But your below remarks
make me question that.
> I'm not still not sure if turning on USE_NSEC is a good idea. There's
> some discussion in Documentation/technical/racy-git.adoc:
>
> With `USE_NSEC`
> compile-time option, `st_mtim.tv_nsec` and `st_ctim.tv_nsec`
> members are also compared. On Linux, this is not enabled by default
> because in-core timestamps can have finer granularity than
> on-disk timestamps, resulting in meaningless changes when an
> inode is evicted from the inode cache. See commit 8ce13b0
> of git://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git
> ([PATCH] Sync in core time granularity with filesystems,
> 2005-01-04). This patch is included in kernel 2.6.11 and newer, but
> only fixes the issue for file systems with exactly 1 ns or 1 s
> resolution. Other file systems are still broken in current Linux
> kernels (e.g. CEPH, CIFS, NTFS, UDF), see
> https://lore.kernel.org/lkml/5577240D.7020309@gmail.com/
>
> That's the most succinct description of the problem I've seen, but I
> have no idea how widely it still applies. Kernel 2.6.11 is quite old
> now, but I could believe that other filesystems (especially network
> ones) still exhibit the issue.
>
> So I guess if we wanted to go further it would take some digging as to
> how each platform behaves, and then flipping the config.make.uname knob
> for ones where it can be argued that the behavior is always reasonable.
Yeah, it would be nice indeed to figure out whether these concerns still
apply. If they do, I would argue that it might even make sense to remove
the build option completely. It doesn't really make sense in my opinion
to have a build option that nobody uses and that is subtly broken when
enabled.
> But that's all outside the scope of your patch here.
Kind of, I guess. If we figure that this mechanism is still subtly broken
then I'd argue that it doesn't make sense to expose the option via
Meson.
Patrick
prev parent reply other threads:[~2026-06-22 8:13 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-20 16:00 [PATCH] meson: wire up USE_NSEC build knob D. Ben Knoble
2026-06-21 1:01 ` Junio C Hamano
2026-06-21 16:41 ` D. Ben Knoble
2026-06-22 8:13 ` Patrick Steinhardt
2026-06-21 17:49 ` Jeff King
2026-06-22 8:13 ` Patrick Steinhardt [this message]
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=ajjuoS5Qc3K0nCRl@pks.im \
--to=ps@pks.im \
--cc=ben.knoble+github@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=ramsay@ramsayjones.plus.com \
--cc=sandals@crustytoothpaste.net \
/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