git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] pack-bitmap: remove trace2 region from hot path

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 23, 2022, 17:36 UTC
Message-ID
<xmqq7d1uuh5f.fsf@gitster.g>
In-Reply-To
<pull.1365.git.1663938034607.gitgitgadget@gmail.com>
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 8 quoted lines
>     I noticed this while trying to backport the Abhradeep's lookup table
>     work into GitHub's fork. Something went wrong in that process, causing
>     this region to significantly slow down. It turns out that slow down does
>     not reproduce on current 'master', which is good. I must have missed
>     something while I was backporting.
>     
>     Regardless, the use of trace2_region_enter() here should be removed or
>     replaced. For the sake of 2.38.0, this simple removal is safe enough.

Well, not doing this removal is even safer, if we know that it is not hurting in the -rc code. It would be better than breaking our tests without knowing ;-) I am not upset that the patch broke the test, by the way. Compared to things silently breaking without surfacing, a loud breakage in tests is a much easier thing to handle.

My test run with the attached just finished, so that's what I am going to queue tentatively on top.

Thanks.
 pack-bitmap.c           | 1 +
 t/t5310-pack-bitmaps.sh | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git c/pack-bitmap.c w/pack-bitmap.c
index 13457dd77e..a2bbbbd811 100644
--- c/pack-bitmap.c
+++ w/pack-bitmap.c
@@ -830,6 +830,7 @@ struct ewah_bitmap *bitmap_for_commit(struct bitmap_index *bitmap_git,
 		if (!bitmap_git->table_lookup)
 			return NULL;
 
+		/* this is a fairly hot codepath - no trace2_region please */
 		/* NEEDSWORK: cache misses aren't recorded */
 		bitmap = lazy_bitmap_for_commit(bitmap_git, commit);
 		if (!bitmap)
diff --git c/t/t5310-pack-bitmaps.sh w/t/t5310-pack-bitmaps.sh
index 7e50f8e765..2b1efc923b 100755
--- c/t/t5310-pack-bitmaps.sh
+++ w/t/t5310-pack-bitmaps.sh
@@ -455,7 +455,7 @@ test_expect_success 'verify writing bitmap lookup table when enabled' '
 	grep "\"label\":\"writing_lookup_table\"" trace2
 '
 
-test_expect_success 'lookup table is actually used to traverse objects' '
+: test_expect_success 'lookup table is actually used to traverse objects' '
 	git repack -adb &&
 	GIT_TRACE2_EVENT="$(pwd)/trace3" \
 		git rev-list --use-bitmap-index --count --all &&
Previous: Junio C HamanoNext: Derrick Stolee
Message 4 of 10 in “pack-bitmap: remove trace2 region from hot path”
  1. pack-bitmap: remove trace2 region from hot pathDerrick Stolee via GitGitGadget, Sep 23, 2022
  2. Junio C HamanoSep 23, 2022
  3. Junio C HamanoSep 23, 2022
  4. Junio C HamanoSep 23, 2022
  5. Derrick StoleeSep 23, 2022
  6. Taylor BlauSep 23, 2022
  7. pack-bitmap: remove trace2 region from hot pathDerrick Stolee via GitGitGadget, Sep 26, 2022
  8. Ævar Arnfjörð BjarmasonSep 26, 2022
  9. Derrick StoleeSep 26, 2022
  10. Jeff HostetlerSep 27, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.