From 09fa7ef69dcbf7fc3317a7bc10456a6b2e9bdc7a Mon Sep 17 00:00:00 2001 From: Jeff Hostetler Date: Thu, 25 Jul 2019 14:52:33 -0400 Subject: [PATCH] trace2:gvfs:experiment: add data for check_updates() in unpack_trees() Add data for the number of files created/overwritten and deleted during the checkout. Give proper category name to all events in unpack-trees.c and eliminate "exp". This is modified slightly from the original version due to interactions with 26f924d (unpack-trees: exit check_updates() early if updates are not wanted, 2020-01-07). Signed-off-by: Jeff Hostetler Signed-off-by: Derrick Stolee --- unpack-trees.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/unpack-trees.c b/unpack-trees.c index 2c79286ce2a07a..f13ca4c35da791 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -416,8 +416,12 @@ static int check_updates(struct unpack_trees_options *o, struct progress *progress; struct checkout state = CHECKOUT_INIT; int i, pc_workers, pc_threshold; + intmax_t sum_unlink = 0; + intmax_t sum_prefetch = 0; + intmax_t sum_checkout = 0; trace_performance_enter(); + trace2_region_enter("unpack_trees", "check_updates", NULL); state.force = 1; state.quiet = 1; state.refresh_cache = 1; @@ -426,8 +430,7 @@ static int check_updates(struct unpack_trees_options *o, if (!o->update || o->dry_run) { remove_marked_cache_entries(index, 0); - trace_performance_leave("check_updates"); - return 0; + goto done; } if (o->clone) @@ -449,6 +452,7 @@ static int check_updates(struct unpack_trees_options *o, if (ce->ce_flags & CE_WT_REMOVE) { display_progress(progress, ++cnt); unlink_entry(ce); + sum_unlink++; } } @@ -484,6 +488,7 @@ static int check_updates(struct unpack_trees_options *o, if (last_pc_queue_size == pc_queue_size()) display_progress(progress, ++cnt); + sum_checkout++; } } if (pc_workers > 1) @@ -496,6 +501,15 @@ static int check_updates(struct unpack_trees_options *o, if (o->clone) report_collided_checkout(index); + if (sum_unlink > 0) + trace2_data_intmax("unpack_trees", NULL, "check_updates/nr_unlink", sum_unlink); + if (sum_prefetch > 0) + trace2_data_intmax("unpack_trees", NULL, "check_updates/nr_prefetch", sum_prefetch); + if (sum_checkout > 0) + trace2_data_intmax("unpack_trees", NULL, "check_updates/nr_write", sum_checkout); + +done: + trace2_region_leave("unpack_trees", "check_updates", NULL); trace_performance_leave("check_updates"); return errs != 0; } @@ -1765,10 +1779,9 @@ static int clear_ce_flags(struct index_state *istate, _("Updating index flags"), istate->cache_nr); - xsnprintf(label, sizeof(label), "clear_ce_flags(0x%08lx,0x%08lx)", + xsnprintf(label, sizeof(label), "clear_ce_flags/0x%08lx_0x%08lx", (unsigned long)select_mask, (unsigned long)clear_mask); trace2_region_enter("unpack_trees", label, the_repository); - rval = clear_ce_flags_1(istate, istate->cache, istate->cache_nr, @@ -1888,7 +1901,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options if (o->dir) BUG("o->dir is for internal use only"); - trace2_region_enter("exp", "unpack_trees", NULL); + trace2_region_enter("unpack_trees", "unpack_trees", NULL); nr_unpack_entry_at_start = get_nr_unpack_entry(); trace_performance_enter(); @@ -2091,7 +2104,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options trace_performance_leave("unpack_trees"); trace2_data_intmax("unpack_trees", NULL, "unpack_trees/nr_unpack_entries", (intmax_t)(get_nr_unpack_entry() - nr_unpack_entry_at_start)); - trace2_region_leave("exp", "unpack_trees", NULL); + trace2_region_leave("unpack_trees", "unpack_trees", NULL); return ret; return_failed: