trace2:data: add trace2 instrumentation to index read/write
Add trace2 events to measure reading and writing the index. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
6206286e49
commit
42fee7a388
51
read-cache.c
51
read-cache.c
@ -2220,6 +2220,16 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
|
||||
load_index_extensions(&p);
|
||||
}
|
||||
munmap((void *)mmap, mmap_size);
|
||||
|
||||
/*
|
||||
* TODO trace2: replace "the_repository" with the actual repo instance
|
||||
* that is associated with the given "istate".
|
||||
*/
|
||||
trace2_data_intmax("index", the_repository, "read/version",
|
||||
istate->version);
|
||||
trace2_data_intmax("index", the_repository, "read/cache_nr",
|
||||
istate->cache_nr);
|
||||
|
||||
return istate->cache_nr;
|
||||
|
||||
unmap:
|
||||
@ -2251,9 +2261,17 @@ int read_index_from(struct index_state *istate, const char *path,
|
||||
if (istate->initialized)
|
||||
return istate->cache_nr;
|
||||
|
||||
/*
|
||||
* TODO trace2: replace "the_repository" with the actual repo instance
|
||||
* that is associated with the given "istate".
|
||||
*/
|
||||
trace2_region_enter_printf("index", "do_read_index", the_repository,
|
||||
"%s", path);
|
||||
trace_performance_enter();
|
||||
ret = do_read_index(istate, path, 0);
|
||||
trace_performance_leave("read cache %s", path);
|
||||
trace2_region_leave_printf("index", "do_read_index", the_repository,
|
||||
"%s", path);
|
||||
|
||||
split_index = istate->split_index;
|
||||
if (!split_index || is_null_oid(&split_index->base_oid)) {
|
||||
@ -2269,7 +2287,11 @@ int read_index_from(struct index_state *istate, const char *path,
|
||||
|
||||
base_oid_hex = oid_to_hex(&split_index->base_oid);
|
||||
base_path = xstrfmt("%s/sharedindex.%s", gitdir, base_oid_hex);
|
||||
trace2_region_enter_printf("index", "shared/do_read_index",
|
||||
the_repository, "%s", base_path);
|
||||
ret = do_read_index(split_index->base, base_path, 1);
|
||||
trace2_region_leave_printf("index", "shared/do_read_index",
|
||||
the_repository, "%s", base_path);
|
||||
if (!oideq(&split_index->base_oid, &split_index->base->oid))
|
||||
die(_("broken index, expect %s in %s, got %s"),
|
||||
base_oid_hex, base_path,
|
||||
@ -2976,6 +2998,16 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
|
||||
istate->timestamp.sec = (unsigned int)st.st_mtime;
|
||||
istate->timestamp.nsec = ST_MTIME_NSEC(st);
|
||||
trace_performance_since(start, "write index, changed mask = %x", istate->cache_changed);
|
||||
|
||||
/*
|
||||
* TODO trace2: replace "the_repository" with the actual repo instance
|
||||
* that is associated with the given "istate".
|
||||
*/
|
||||
trace2_data_intmax("index", the_repository, "write/version",
|
||||
istate->version);
|
||||
trace2_data_intmax("index", the_repository, "write/cache_nr",
|
||||
istate->cache_nr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2995,7 +3027,18 @@ static int commit_locked_index(struct lock_file *lk)
|
||||
static int do_write_locked_index(struct index_state *istate, struct lock_file *lock,
|
||||
unsigned flags)
|
||||
{
|
||||
int ret = do_write_index(istate, lock->tempfile, 0);
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* TODO trace2: replace "the_repository" with the actual repo instance
|
||||
* that is associated with the given "istate".
|
||||
*/
|
||||
trace2_region_enter_printf("index", "do_write_index", the_repository,
|
||||
"%s", lock->tempfile->filename.buf);
|
||||
ret = do_write_index(istate, lock->tempfile, 0);
|
||||
trace2_region_leave_printf("index", "do_write_index", the_repository,
|
||||
"%s", lock->tempfile->filename.buf);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
if (flags & COMMIT_LOCK)
|
||||
@ -3080,7 +3123,13 @@ static int write_shared_index(struct index_state *istate,
|
||||
int ret;
|
||||
|
||||
move_cache_to_base_index(istate);
|
||||
|
||||
trace2_region_enter_printf("index", "shared/do_write_index",
|
||||
the_repository, "%s", (*temp)->filename.buf);
|
||||
ret = do_write_index(si->base, *temp, 1);
|
||||
trace2_region_enter_printf("index", "shared/do_write_index",
|
||||
the_repository, "%s", (*temp)->filename.buf);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = adjust_shared_perm(get_tempfile_path(*temp));
|
||||
|
Loading…
Reference in New Issue
Block a user