unpack-trees: add trace2 regions

The unpack_trees() method is quite complicated and its performance can change dramatically depending on how it is used. We already have some performance tracing regions, but they have not been updated to the trace2 API. Do so now. We already have trace2 regions in unpack_trees.c:clear_ce_flags(), which uses a linear scan through the index without recursing into trees. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Derrick Stolee committed Jan 4, 2021 at 03:09 UTC c338898a47829cf27ebccf5415c308dd59f9d3a6
1 file changed +5
unpack-trees.c
+5
@@ -1580,6 +1580,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1580 die("unpack_trees takes at most %d trees", MAX_UNPACK_TREES);
1581
1582 trace_performance_enter();
1583 + trace2_region_enter("unpack_trees", "unpack_trees", the_repository);
1584 +
1585 if (!core_apply_sparse_checkout || !o->update)
1586 o->skip_sparse_checkout = 1;
1587 if (!o->skip_sparse_checkout && !o->pl) {
@@ -1653,7 +1655,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1655 }
1656
1657 trace_performance_enter();
1658 + trace2_region_enter("unpack_trees", "traverse_trees", the_repository);
1659 ret = traverse_trees(o->src_index, len, t, &info);
1660 + trace2_region_leave("unpack_trees", "traverse_trees", the_repository);
1661 trace_performance_leave("traverse_trees");
1662 if (ret < 0)
1663 goto return_failed;
@@ -1741,6 +1745,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1745 done:
1746 if (free_pattern_list)
1747 clear_pattern_list(&pl);
1748 + trace2_region_leave("unpack_trees", "unpack_trees", the_repository);
1749 trace_performance_leave("unpack_trees");
1750 return ret;
1751