зеркало из https://github.com/microsoft/git.git
trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache
Add trace2_thread_start() and trace2_thread_exit() events to the worker threads used to read the index. This gives per-thread perf data. These workers were introduced in:abb4bb8384
read-cache: load cache extensions on a worker thread77ff1127a4
read-cache: load cache entries on worker threads Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
This commit is contained in:
Родитель
87a608805c
Коммит
4ed87f0ba5
18
read-cache.c
18
read-cache.c
|
@ -2121,6 +2121,17 @@ static void *load_index_extensions(void *_data)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *load_index_extensions_threadproc(void *_data)
|
||||
{
|
||||
void *result;
|
||||
|
||||
trace2_thread_start("load_index_extensions");
|
||||
result = load_index_extensions(_data);
|
||||
trace2_thread_exit();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* A helper function that will load the specified range of cache entries
|
||||
* from the memory mapped file and add them to the given index.
|
||||
|
@ -2197,12 +2208,17 @@ static void *load_cache_entries_thread(void *_data)
|
|||
struct load_cache_entries_thread_data *p = _data;
|
||||
int i;
|
||||
|
||||
trace2_thread_start("load_cache_entries");
|
||||
|
||||
/* iterate across all ieot blocks assigned to this thread */
|
||||
for (i = p->ieot_start; i < p->ieot_start + p->ieot_blocks; i++) {
|
||||
p->consumed += load_cache_entry_block(p->istate, p->ce_mem_pool,
|
||||
p->offset, p->ieot->entries[i].nr, p->mmap, p->ieot->entries[i].offset, NULL);
|
||||
p->offset += p->ieot->entries[i].nr;
|
||||
}
|
||||
|
||||
trace2_thread_exit();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -2373,7 +2389,7 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
|
|||
int err;
|
||||
|
||||
p.src_offset = extension_offset;
|
||||
err = pthread_create(&p.pthread, NULL, load_index_extensions, &p);
|
||||
err = pthread_create(&p.pthread, NULL, load_index_extensions_threadproc, &p);
|
||||
if (err)
|
||||
die(_("unable to create load_index_extensions thread: %s"), strerror(err));
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче