Lines Matching refs:task_team

33 static void __kmp_enable_tasking(kmp_task_team_t *task_team,
38 kmp_task_team_t *task_team);
358 __kmp_get_priority_deque_data(kmp_task_team_t *task_team, kmp_int32 pri) { argument
360 kmp_task_pri_t *lst = task_team->tt.tt_task_pri_list;
371 task_team->tt.tt_task_pri_list = list;
404 kmp_task_team_t *task_team, argument
412 kmp_task_pri_t *lst = task_team->tt.tt_task_pri_list;
414 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
415 if (task_team->tt.tt_task_pri_list == NULL) {
421 task_team->tt.tt_task_pri_list = list;
424 thread_data = __kmp_get_priority_deque_data(task_team, pri);
426 __kmp_release_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
432 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
433 thread_data = __kmp_get_priority_deque_data(task_team, pri);
434 __kmp_release_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
472 task_team->tt.tt_num_task_pri++; // atomic inc
493 kmp_task_team_t *task_team = thread->th.th_task_team; local
522 if (UNLIKELY(!KMP_TASKING_ENABLED(task_team))) {
523 __kmp_enable_tasking(task_team, thread);
525 KMP_DEBUG_ASSERT(TCR_4(task_team->tt.tt_found_tasks) == TRUE);
526 KMP_DEBUG_ASSERT(TCR_PTR(task_team->tt.tt_threads_data) != NULL);
531 return __kmp_push_priority_task(gtid, thread, taskdata, task_team, pri);
535 thread_data = &task_team->tt.tt_threads_data[tid];
1042 kmp_task_team_t *task_team = local
1192 } else if (task_team && (task_team->tt.tt_found_proxy_tasks ||
1193 task_team->tt.tt_hidden_helper_task_encountered)) {
1518 kmp_task_team_t *task_team = thread->th.th_task_team; local
1521 if (!KMP_TASKING_ENABLED(task_team)) {
1525 __kmp_enable_tasking(task_team, thread);
1527 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[tid];
1535 task_team->tt.tt_found_proxy_tasks == FALSE)
1536 TCW_4(task_team->tt.tt_found_proxy_tasks, TRUE);
1538 task_team->tt.tt_hidden_helper_task_encountered == FALSE)
1539 TCW_4(task_team->tt.tt_hidden_helper_task_encountered, TRUE);
2383 kmp_task_team_t *task_team = thread->th.th_task_team; local
2384 if (task_team != NULL) {
2385 if (KMP_TASKING_ENABLED(task_team)) {
3050 kmp_task_team_t *task_team, argument
3056 int ntasks = task_team->tt.tt_num_task_pri;
3064 if (__kmp_atomic_compare_store(&task_team->tt.tt_num_task_pri, ntasks,
3067 ntasks = task_team->tt.tt_num_task_pri;
3076 kmp_task_pri_t *list = task_team->tt.tt_task_pri_list;
3098 if (!task_team->tt.tt_untied_task_encountered) {
3103 gtid, thread_data, task_team, deque_ntasks, target,
3105 task_team->tt.tt_num_task_pri++; // atomic inc, restore value
3126 gtid, thread_data, task_team, deque_ntasks,
3128 task_team->tt.tt_num_task_pri++; // atomic inc, restore value
3151 kmp_task_team_t *task_team, argument
3159 KMP_DEBUG_ASSERT(task_team->tt.tt_threads_data !=
3162 thread_data = &task_team->tt.tt_threads_data[__kmp_tid_from_gtid(gtid)];
3223 kmp_task_team_t *task_team, argument
3236 threads_data = task_team->tt.tt_threads_data;
3244 gtid, __kmp_gtid_from_thread(victim_thr), task_team,
3251 gtid, __kmp_gtid_from_thread(victim_thr), task_team,
3265 gtid, __kmp_gtid_from_thread(victim_thr), task_team, ntasks,
3278 if (!task_team->tt.tt_untied_task_encountered) {
3283 gtid, __kmp_gtid_from_thread(victim_thr), task_team, ntasks,
3305 gtid, __kmp_gtid_from_thread(victim_thr), task_team, ntasks,
3332 gtid, count + 1, task_team));
3343 gtid, taskdata, __kmp_gtid_from_thread(victim_thr), task_team,
3364 kmp_task_team_t *task_team = thread->th.th_task_team; local
3376 if (task_team == NULL || current_task == NULL)
3384 threads_data = (kmp_thread_data_t *)TCR_PTR(task_team->tt.tt_threads_data);
3388 nthreads = task_team->tt.tt_nproc;
3389 unfinished_threads = &(task_team->tt.tt_unfinished_threads);
3390 KMP_DEBUG_ASSERT(nthreads > 1 || task_team->tt.tt_found_proxy_tasks ||
3391 task_team->tt.tt_hidden_helper_task_encountered);
3398 if (task_team->tt.tt_num_task_pri) { // get priority task first
3399 task = __kmp_get_priority_task(gtid, task_team, is_constrained);
3402 task = __kmp_remove_my_task(thread, gtid, task_team, is_constrained);
3455 task = __kmp_steal_task(other_thread, gtid, task_team,
3533 gtid, count, task_team));
3651 static void __kmp_enable_tasking(kmp_task_team_t *task_team, argument
3659 KMP_DEBUG_ASSERT(task_team != NULL);
3662 nthreads = task_team->tt.tt_nproc;
3667 is_init_thread = __kmp_realloc_task_threads_data(this_thr, task_team);
3677 threads_data = (kmp_thread_data_t *)TCR_PTR(task_team->tt.tt_threads_data);
3809 kmp_task_team_t *task_team) { argument
3814 if (TCR_4(task_team->tt.tt_found_tasks)) {
3819 threads_data_p = &task_team->tt.tt_threads_data;
3820 nthreads = task_team->tt.tt_nproc;
3821 maxthreads = task_team->tt.tt_max_threads;
3826 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_threads_lock);
3828 if (!TCR_4(task_team->tt.tt_found_tasks)) {
3844 __kmp_gtid_from_thread(thread), task_team, nthreads, maxthreads));
3868 __kmp_gtid_from_thread(thread), task_team, nthreads));
3882 task_team->tt.tt_max_threads = nthreads;
3902 TCW_SYNC_4(task_team->tt.tt_found_tasks, TRUE);
3905 __kmp_release_bootstrap_lock(&task_team->tt.tt_threads_lock);
3912 static void __kmp_free_task_threads_data(kmp_task_team_t *task_team) { argument
3913 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_threads_lock);
3914 if (task_team->tt.tt_threads_data != NULL) {
3916 for (i = 0; i < task_team->tt.tt_max_threads; i++) {
3917 __kmp_free_task_deque(&task_team->tt.tt_threads_data[i]);
3919 __kmp_free(task_team->tt.tt_threads_data);
3920 task_team->tt.tt_threads_data = NULL;
3922 __kmp_release_bootstrap_lock(&task_team->tt.tt_threads_lock);
3928 static void __kmp_free_task_pri_list(kmp_task_team_t *task_team) { argument
3929 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
3930 if (task_team->tt.tt_task_pri_list != NULL) {
3931 kmp_task_pri_t *list = task_team->tt.tt_task_pri_list;
3938 task_team->tt.tt_task_pri_list = NULL;
3940 __kmp_release_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
3949 kmp_task_team_t *task_team = NULL; local
3959 task_team = __kmp_free_task_teams;
3960 TCW_PTR(__kmp_free_task_teams, task_team->tt.tt_next);
3961 task_team->tt.tt_next = NULL;
3966 if (task_team == NULL) {
3972 task_team = (kmp_task_team_t *)__kmp_allocate(sizeof(kmp_task_team_t));
3973 __kmp_init_bootstrap_lock(&task_team->tt.tt_threads_lock);
3974 __kmp_init_bootstrap_lock(&task_team->tt.tt_task_pri_lock);
3980 &task_team->tt.tt_found_tasks, sizeof(task_team->tt.tt_found_tasks));
3983 CCAST(kmp_uint32 *, &task_team->tt.tt_active),
3984 sizeof(task_team->tt.tt_active));
3992 TCW_4(task_team->tt.tt_found_tasks, FALSE);
3993 TCW_4(task_team->tt.tt_found_proxy_tasks, FALSE);
3994 TCW_4(task_team->tt.tt_hidden_helper_task_encountered, FALSE);
3995 task_team->tt.tt_nproc = nthreads = team->t.t_nproc;
3997 KMP_ATOMIC_ST_REL(&task_team->tt.tt_unfinished_threads, nthreads);
3998 TCW_4(task_team->tt.tt_hidden_helper_task_encountered, FALSE);
3999 TCW_4(task_team->tt.tt_active, TRUE);
4003 (thread ? __kmp_gtid_from_thread(thread) : -1), task_team,
4004 KMP_ATOMIC_LD_RLX(&task_team->tt.tt_unfinished_threads)));
4005 return task_team;
4011 void __kmp_free_task_team(kmp_info_t *thread, kmp_task_team_t *task_team) { argument
4013 thread ? __kmp_gtid_from_thread(thread) : -1, task_team));
4018 KMP_DEBUG_ASSERT(task_team->tt.tt_next == NULL);
4019 task_team->tt.tt_next = __kmp_free_task_teams;
4020 TCW_PTR(__kmp_free_task_teams, task_team);
4031 kmp_task_team_t *task_team; local
4036 while ((task_team = __kmp_free_task_teams) != NULL) {
4037 __kmp_free_task_teams = task_team->tt.tt_next;
4038 task_team->tt.tt_next = NULL;
4041 if (task_team->tt.tt_threads_data != NULL) {
4042 __kmp_free_task_threads_data(task_team);
4044 if (task_team->tt.tt_task_pri_list != NULL) {
4045 __kmp_free_task_pri_list(task_team);
4047 __kmp_free(task_team);
4202 kmp_task_team_t *task_team = team->t.t_task_team[other_team]; local
4203 if (!task_team->tt.tt_active ||
4204 team->t.t_nproc != task_team->tt.tt_nproc) {
4205 TCW_4(task_team->tt.tt_nproc, team->t.t_nproc);
4206 TCW_4(task_team->tt.tt_found_tasks, FALSE);
4207 TCW_4(task_team->tt.tt_found_proxy_tasks, FALSE);
4208 TCW_4(task_team->tt.tt_hidden_helper_task_encountered, FALSE);
4209 KMP_ATOMIC_ST_REL(&task_team->tt.tt_unfinished_threads,
4211 TCW_4(task_team->tt.tt_active, TRUE);
4228 kmp_task_team_t *task_team = team->t.t_task_team[i]; local
4229 if (KMP_TASKING_ENABLED(task_team)) {
4232 __kmp_enable_tasking(task_team, this_thr);
4233 for (int j = 0; j < task_team->tt.tt_nproc; ++j) {
4234 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[j];
4274 kmp_task_team_t *task_team = team->t.t_task_team[this_thr->th.th_task_state]; local
4277 KMP_DEBUG_ASSERT(task_team == this_thr->th.th_task_team);
4279 if ((task_team != NULL) && KMP_TASKING_ENABLED(task_team)) {
4283 __kmp_gtid_from_thread(this_thr), task_team));
4289 &task_team->tt.tt_unfinished_threads),
4299 __kmp_gtid_from_thread(this_thr), task_team));
4300 KMP_DEBUG_ASSERT(task_team->tt.tt_nproc > 1 ||
4301 task_team->tt.tt_found_proxy_tasks == TRUE ||
4302 task_team->tt.tt_hidden_helper_task_encountered == TRUE);
4303 TCW_SYNC_4(task_team->tt.tt_found_proxy_tasks, FALSE);
4304 TCW_SYNC_4(task_team->tt.tt_hidden_helper_task_encountered, FALSE);
4305 KMP_CHECK_UPDATE(task_team->tt.tt_untied_task_encountered, 0);
4306 TCW_SYNC_4(task_team->tt.tt_active, FALSE);
4356 kmp_task_team_t *task_team = taskdata->td_task_team; local
4362 KMP_DEBUG_ASSERT(task_team != NULL);
4365 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[tid];