On Tue, Feb 16, 2021 at 11:07:39AM -0500, Taylor Blau wrote: > On Tue, Feb 16, 2021 at 11:02:23AM -0500, Jeff King wrote: > > Can you double-check your initial timings? > > Aha, I forgot to update the input to the second check-attr tests after > putting .gitattributes files everywhere. > > Rerunning with O_NOFOLLOW, the initial timings look something like > 128.8ms and 183.7ms before/after. I should add that "before" refers to a clean checkout, and "after" refers to the state after running 'find * -type d | ... | xargs touch'. Both of those numbers are with the O_NOFOLLOW branch. If I repeat the test after applying: diff --git a/wrapper.c b/wrapper.c index 563ad590df..90f603e749 100644 --- a/wrapper.c +++ b/wrapper.c @@ -681,7 +681,7 @@ int is_empty_or_missing_file(const char *filename) int open_nofollow(const char *path, int flags) { -#ifdef O_NOFOLLOW +#if 0 return open(path, flags | O_NOFOLLOW); #else struct stat st; Then those numbers go from 155.9ms to 197.2ms. Thanks, Taylor