Lines Matching defs:thread_data
36 kmp_thread_data_t *thread_data);
51 // thread_data: thread data for task team thread containing stack
55 kmp_thread_data_t *thread_data,
57 kmp_task_stack_t *task_stack = &thread_data->td.td_susp_tied_tasks;
103 // after a thread_data structure is created.
107 // thread_data: thread data for task team thread containing stack
109 kmp_thread_data_t *thread_data) {
110 kmp_task_stack_t *task_stack = &thread_data->td.td_susp_tied_tasks;
125 // __kmp_free_task_stack: free the task stack when thread_data is destroyed.
128 // thread_data: thread info for thread containing stack
130 kmp_thread_data_t *thread_data) {
131 kmp_task_stack_t *task_stack = &thread_data->td.td_susp_tied_tasks;
161 kmp_thread_data_t *thread_data =
163 kmp_task_stack_t *task_stack = &thread_data->td.td_susp_tied_tasks;
220 kmp_thread_data_t *thread_data =
222 kmp_task_stack_t *task_stack = &thread_data->td.td_susp_tied_tasks;
313 kmp_thread_data_t *thread_data) {
314 kmp_int32 size = TASK_DEQUE_SIZE(thread_data->td);
315 KMP_DEBUG_ASSERT(TCR_4(thread_data->td.td_deque_ntasks) == size);
319 "%d] for thread_data %p\n",
320 __kmp_gtid_from_thread(thread), size, new_size, thread_data));
326 for (i = thread_data->td.td_deque_head, j = 0; j < size;
327 i = (i + 1) & TASK_DEQUE_MASK(thread_data->td), j++)
328 new_deque[j] = thread_data->td.td_deque[i];
330 __kmp_free(thread_data->td.td_deque);
332 thread_data->td.td_deque_head = 0;
333 thread_data->td.td_deque_tail = size;
334 thread_data->td.td_deque = new_deque;
335 thread_data->td.td_deque_size = new_size;
340 kmp_thread_data_t *thread_data = &l->td;
341 __kmp_init_bootstrap_lock(&thread_data->td.td_deque_lock);
342 thread_data->td.td_deque_last_stolen = -1;
344 "for thread_data %p\n",
345 __kmp_get_gtid(), INITIAL_TASK_DEQUE_SIZE, thread_data));
346 thread_data->td.td_deque = (kmp_taskdata_t **)__kmp_allocate(
348 thread_data->td.td_deque_size = INITIAL_TASK_DEQUE_SIZE;
359 kmp_thread_data_t *thread_data;
363 thread_data = &lst->td;
368 thread_data = &list->td;
382 thread_data = &list->td;
388 thread_data = &next_queue->td;
392 thread_data = &list->td;
398 return thread_data;
406 kmp_thread_data_t *thread_data = NULL;
418 thread_data = &list->td;
423 // Other thread initialized a queue. Check if it fits and get thread_data.
424 thread_data = __kmp_get_priority_deque_data(task_team, pri);
430 thread_data = &lst->td;
433 thread_data = __kmp_get_priority_deque_data(task_team, pri);
437 KMP_DEBUG_ASSERT(thread_data);
439 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
441 if (TCR_4(thread_data->td.td_deque_ntasks) >=
442 TASK_DEQUE_SIZE(thread_data->td)) {
446 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
453 __kmp_realloc_task_deque(thread, thread_data);
456 KMP_DEBUG_ASSERT(TCR_4(thread_data->td.td_deque_ntasks) <
457 TASK_DEQUE_SIZE(thread_data->td));
459 thread_data->td.td_deque[thread_data->td.td_deque_tail] = taskdata;
461 thread_data->td.td_deque_tail =
462 (thread_data->td.td_deque_tail + 1) & TASK_DEQUE_MASK(thread_data->td);
463 TCW_4(thread_data->td.td_deque_ntasks,
464 TCR_4(thread_data->td.td_deque_ntasks) + 1); // Adjust task count
469 gtid, taskdata, thread_data->td.td_deque_ntasks,
470 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
471 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
495 kmp_thread_data_t *thread_data;
535 thread_data = &task_team->tt.tt_threads_data[tid];
540 if (UNLIKELY(thread_data->td.td_deque == NULL)) {
541 __kmp_alloc_task_deque(thread, thread_data);
546 if (TCR_4(thread_data->td.td_deque_ntasks) >=
547 TASK_DEQUE_SIZE(thread_data->td)) {
556 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
558 if (TCR_4(thread_data->td.td_deque_ntasks) >=
559 TASK_DEQUE_SIZE(thread_data->td)) {
561 __kmp_realloc_task_deque(thread, thread_data);
567 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
569 if (TCR_4(thread_data->td.td_deque_ntasks) >=
570 TASK_DEQUE_SIZE(thread_data->td)) {
574 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
581 __kmp_realloc_task_deque(thread, thread_data);
586 KMP_DEBUG_ASSERT(TCR_4(thread_data->td.td_deque_ntasks) <
587 TASK_DEQUE_SIZE(thread_data->td));
589 thread_data->td.td_deque[thread_data->td.td_deque_tail] =
592 thread_data->td.td_deque_tail =
593 (thread_data->td.td_deque_tail + 1) & TASK_DEQUE_MASK(thread_data->td);
594 TCW_4(thread_data->td.td_deque_ntasks,
595 TCR_4(thread_data->td.td_deque_ntasks) + 1); // Adjust task count
600 gtid, taskdata, thread_data->td.td_deque_ntasks,
601 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
603 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
1530 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[tid];
1532 if (thread_data->td.td_deque == NULL) {
1533 __kmp_alloc_task_deque(thread, thread_data);
3064 kmp_thread_data_t *thread_data;
3088 thread_data = &list->td;
3089 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
3090 deque_ntasks = thread_data->td.td_deque_ntasks;
3092 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3094 __kmp_get_gtid(), thread_data));
3099 int target = thread_data->td.td_deque_head;
3101 taskdata = thread_data->td.td_deque[target];
3104 thread_data->td.td_deque_head =
3105 (target + 1) & TASK_DEQUE_MASK(thread_data->td);
3109 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3112 gtid, thread_data, task_team, deque_ntasks, target,
3113 thread_data->td.td_deque_tail));
3121 target = (target + 1) & TASK_DEQUE_MASK(thread_data->td);
3122 taskdata = thread_data->td.td_deque[target];
3131 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3135 gtid, thread_data, task_team, deque_ntasks,
3136 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
3143 target = (target + 1) & TASK_DEQUE_MASK(thread_data->td);
3144 thread_data->td.td_deque[prev] = thread_data->td.td_deque[target];
3148 thread_data->td.td_deque_tail ==
3149 (kmp_uint32)((target + 1) & TASK_DEQUE_MASK(thread_data->td)));
3150 thread_data->td.td_deque_tail = target; // tail -= 1 (wrapped))
3152 thread_data->td.td_deque_ntasks = deque_ntasks - 1;
3153 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3164 kmp_thread_data_t *thread_data;
3171 thread_data = &task_team->tt.tt_threads_data[__kmp_tid_from_gtid(gtid)];
3174 gtid, thread_data->td.td_deque_ntasks,
3175 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
3177 if (TCR_4(thread_data->td.td_deque_ntasks) == 0) {
3181 gtid, thread_data->td.td_deque_ntasks,
3182 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
3186 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
3188 if (TCR_4(thread_data->td.td_deque_ntasks) == 0) {
3189 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3193 gtid, thread_data->td.td_deque_ntasks,
3194 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
3198 tail = (thread_data->td.td_deque_tail - 1) &
3199 TASK_DEQUE_MASK(thread_data->td); // Wrap index.
3200 taskdata = thread_data->td.td_deque[tail];
3205 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3209 gtid, thread_data->td.td_deque_ntasks,
3210 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
3214 thread_data->td.td_deque_tail = tail;
3215 TCW_4(thread_data->td.td_deque_ntasks, thread_data->td.td_deque_ntasks - 1);
3217 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3221 gtid, taskdata, thread_data->td.td_deque_ntasks,
3222 thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
3230 // task_team thread_data before calling this routine.
3768 kmp_thread_data_t *thread_data) {
3769 __kmp_init_bootstrap_lock(&thread_data->td.td_deque_lock);
3770 KMP_DEBUG_ASSERT(thread_data->td.td_deque == NULL);
3773 thread_data->td.td_deque_last_stolen = -1;
3775 KMP_DEBUG_ASSERT(TCR_4(thread_data->td.td_deque_ntasks) == 0);
3776 KMP_DEBUG_ASSERT(thread_data->td.td_deque_head == 0);
3777 KMP_DEBUG_ASSERT(thread_data->td.td_deque_tail == 0);
3781 ("__kmp_alloc_task_deque: T#%d allocating deque[%d] for thread_data %p\n",
3782 __kmp_gtid_from_thread(thread), INITIAL_TASK_DEQUE_SIZE, thread_data));
3786 thread_data->td.td_deque = (kmp_taskdata_t **)__kmp_allocate(
3788 thread_data->td.td_deque_size = INITIAL_TASK_DEQUE_SIZE;
3794 static void __kmp_free_task_deque(kmp_thread_data_t *thread_data) {
3795 if (thread_data->td.td_deque != NULL) {
3796 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
3797 TCW_4(thread_data->td.td_deque_ntasks, 0);
3798 __kmp_free(thread_data->td.td_deque);
3799 thread_data->td.td_deque = NULL;
3800 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
3805 if (thread_data->td.td_susp_tied_tasks.ts_entries != TASK_STACK_EMPTY) {
3806 __kmp_free_task_stack(__kmp_thread_from_gtid(gtid), thread_data);
3868 kmp_thread_data_t *thread_data = &(*threads_data_p)[i];
3869 __kmp_init_task_stack(__kmp_gtid_from_thread(thread), thread_data);
3887 kmp_thread_data_t *thread_data = &(*threads_data_p)[i];
3888 __kmp_init_task_stack(__kmp_gtid_from_thread(thread), thread_data);
3900 kmp_thread_data_t *thread_data = &(*threads_data_p)[i];
3901 thread_data->td.td_thr = team->t.t_threads[i];
3903 if (thread_data->td.td_deque_last_stolen >= nthreads) {
3907 thread_data->td.td_deque_last_stolen = -1;
4242 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[j];
4243 if (thread_data->td.td_deque == NULL) {
4244 __kmp_alloc_task_deque(__kmp_hidden_helper_threads[j], thread_data);
4371 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[tid];
4373 if (thread_data->td.td_deque == NULL) {
4382 if (TCR_4(thread_data->td.td_deque_ntasks) >=
4383 TASK_DEQUE_SIZE(thread_data->td)) {
4391 if (TASK_DEQUE_SIZE(thread_data->td) / INITIAL_TASK_DEQUE_SIZE >= pass)
4394 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
4395 if (TCR_4(thread_data->td.td_deque_ntasks) >=
4396 TASK_DEQUE_SIZE(thread_data->td)) {
4398 __kmp_realloc_task_deque(thread, thread_data);
4403 __kmp_acquire_bootstrap_lock(&thread_data->td.td_deque_lock);
4405 if (TCR_4(thread_data->td.td_deque_ntasks) >=
4406 TASK_DEQUE_SIZE(thread_data->td)) {
4413 if (TASK_DEQUE_SIZE(thread_data->td) / INITIAL_TASK_DEQUE_SIZE >= pass)
4416 __kmp_realloc_task_deque(thread, thread_data);
4422 thread_data->td.td_deque[thread_data->td.td_deque_tail] = taskdata;
4424 thread_data->td.td_deque_tail =
4425 (thread_data->td.td_deque_tail + 1) & TASK_DEQUE_MASK(thread_data->td);
4426 TCW_4(thread_data->td.td_deque_ntasks,
4427 TCR_4(thread_data->td.td_deque_ntasks) + 1);
4434 __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);