Skip to content
Snippets Groups Projects
Commit 0bac5a1b authored by Pedro Gonnet's avatar Pedro Gonnet
Browse files

log the total cost of the call to threadpool_map as thread id -1.

parent 0de74269
No related branches found
No related tags found
1 merge request!375Threadpool task plots
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
*/ */
void threadpool_log(struct threadpool *tp, int tid, size_t chunk_size, void threadpool_log(struct threadpool *tp, int tid, size_t chunk_size,
ticks tic, ticks toc) { ticks tic, ticks toc) {
struct mapper_log *log = &tp->logs[tid]; struct mapper_log *log = &tp->logs[tid > 0 ? tid : 0];
/* Check if we need to re-allocate the log buffer. */ /* Check if we need to re-allocate the log buffer. */
if (log->count == log->size) { if (log->count == log->size) {
...@@ -266,14 +266,15 @@ void threadpool_map(struct threadpool *tp, threadpool_map_function map_function, ...@@ -266,14 +266,15 @@ void threadpool_map(struct threadpool *tp, threadpool_map_function map_function,
void *map_data, size_t N, int stride, int chunk, void *map_data, size_t N, int stride, int chunk,
void *extra_data) { void *extra_data) {
/* If we just have a single thread, call the map function directly. */
if (tp->num_threads == 1) {
#ifdef SWIFT_DEBUG_THREADPOOL #ifdef SWIFT_DEBUG_THREADPOOL
ticks tic = getticks(); ticks tic = getticks();
#endif #endif
/* If we just have a single thread, call the map function directly. */
if (tp->num_threads == 1) {
map_function(map_data, N, extra_data); map_function(map_data, N, extra_data);
#ifdef SWIFT_DEBUG_THREADPOOL #ifdef SWIFT_DEBUG_THREADPOOL
threadpool_log(tp, 0, N, tic, getticks()); threadpool_log(tp, 0, N, tic, getticks());
#endif #endif
return; return;
} }
...@@ -303,6 +304,11 @@ void threadpool_map(struct threadpool *tp, threadpool_map_function map_function, ...@@ -303,6 +304,11 @@ void threadpool_map(struct threadpool *tp, threadpool_map_function map_function,
pthread_cond_wait(&tp->control_cond, &tp->thread_mutex); pthread_cond_wait(&tp->control_cond, &tp->thread_mutex);
} }
pthread_mutex_unlock(&tp->thread_mutex); pthread_mutex_unlock(&tp->thread_mutex);
#ifdef SWIFT_DEBUG_THREADPOOL
/* Log the total call time to thread id -1. */
threadpool_log(tp, -1, N, tic, getticks());
#endif
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment