Subject: Re: [PATCH 0/8] Improvements for reading object info

From: Patrick Steinhardt <[email-masked]>
Date: Thu, 18 Dec 2025 09:30:08 +0100

On Thu, Dec 18, 2025 at 05:09:21PM +0900, Junio C Hamano wrote:
> Patrick Steinhardt <[email-masked]> writes:
> > diff --cc packfile.c
> > index 8daa5a5ee7,ce6716fbea..0000000000
> > --- a/packfile.c
> > +++ b/packfile.c
> > @@@ -2549,9 -2555,8 +2571,9 @@@ int packfile_store_read_object_stream(s
> >   	oi.sizep = &size;
> >   
> >   	if (packfile_store_read_object_info(store, oid, &oi, 0) ||
> >  -	    oi.u.packed.is_delta ||
> >  +	    oi.u.packed.type == PACKED_OBJECT_TYPE_REF_DELTA ||
> >  +	    oi.u.packed.type == PACKED_OBJECT_TYPE_OFS_DELTA ||
> > - 	    repo_settings_get_big_file_threshold(store->odb->repo) >= size)
> > + 	    repo_settings_get_big_file_threshold(store->source->odb->repo) >= size)
> >   		return -1;
> >   
> >   	in_pack_type = unpack_object_header(oi.u.packed.pack,
> >
> > I'd thus propose to merge this series via an evil merge, but if this
> > proves to be burdensome I'm happy to defer it to a later point. Just let
> > me know and I'll adapt accordingly, thanks!
> 
> Indeed the conflicts above are miniscule that it does not even need
> any evil merge.  The surviving lines are all from either ours or
> theirs, that changes are close enough to be shown in --cc.
> 
> But let me first concentrate more on fixing performance regression
> that already made down to 'master'.  It is a shame that nobody
> caught it while it was cooking in 'next'.

Fair enough, so that means that you'd want to merge your patch down
first, right? If so I'll rebase my series on top of your patch and then
resend it soonish.

In any case, I noticed a slight regression in one of the benchmarks that
prints all objects, but I attributed it to CI flakiness [1]. The uptick
didn't seem strong enough to really be a regression, and I'm still not
sure whether it's related to this patch series or not. Chances are it
is. I'll investigate and make sure to extend the benchmarking suite
accordingly so that we have a clearer signal there.

Thanks!

Patrick

[1]: https://bencher.dev/perf/git?branches=595859eb-071c-48e9-97cf-195e0a3d6ed1&testbeds=02dcb8ad-6873-494c-aabc-9a6237601308&benchmarks=0da3d87a-ce30-4125-86e9-12d84ec4bc49&measures=63dafffb-98c4-4c27-ba43-7112cae627fc