Lines Matching refs:tk

341 	task_t *tk;  in task_find()  local
346 (mod_hash_val_t *)&tk) == MH_ERR_NOTFOUND || in task_find()
347 (zoneid != ALL_ZONES && zoneid != tk->tk_zone->zone_id)) in task_find()
350 return (tk); in task_find()
372 task_t *tk; in task_hold_by_id_zone() local
375 if ((tk = task_find(id, zoneid)) != NULL) in task_hold_by_id_zone()
376 atomic_inc_32(&tk->tk_hold_count); in task_hold_by_id_zone()
379 return (tk); in task_hold_by_id_zone()
407 task_hold(task_t *tk) in task_hold() argument
409 atomic_inc_32(&tk->tk_hold_count); in task_hold()
428 task_rele(task_t *tk) in task_rele() argument
431 if (atomic_add_32_nv(&tk->tk_hold_count, -1) > 0) { in task_rele()
436 ASSERT(tk->tk_nprocs == 0); in task_rele()
438 mutex_enter(&tk->tk_zone->zone_nlwps_lock); in task_rele()
439 tk->tk_proj->kpj_ntasks--; in task_rele()
440 mutex_exit(&tk->tk_zone->zone_nlwps_lock); in task_rele()
442 task_kstat_delete(tk); in task_rele()
445 (mod_hash_key_t)(uintptr_t)tk->tk_tkid) != 0) in task_rele()
446 panic("unable to delete task %d", tk->tk_tkid); in task_rele()
457 if (taskq_dispatch(exacct_queue, exacct_commit_task, tk, in task_rele()
461 task_commit_head = task_commit_tail = tk; in task_rele()
463 task_commit_tail->tk_commit_next = tk; in task_rele()
464 task_commit_tail = tk; in task_rele()
490 task_t *tk = kmem_cache_alloc(task_cache, KM_SLEEP); in task_create() local
499 bzero(tk, sizeof (task_t)); in task_create()
501 tk->tk_tkid = tkid = id_alloc(taskid_space); in task_create()
502 tk->tk_nlwps = 0; in task_create()
503 tk->tk_nlwps_ctl = INT_MAX; in task_create()
504 tk->tk_nprocs = 0; in task_create()
505 tk->tk_nprocs_ctl = INT_MAX; in task_create()
506 tk->tk_usage = tu; in task_create()
507 tk->tk_inherited = kmem_zalloc(sizeof (task_usage_t), KM_SLEEP); in task_create()
508 tk->tk_proj = project_hold_by_id(projid, zone, PROJECT_HOLD_INSERT); in task_create()
509 tk->tk_flags = TASK_NORMAL; in task_create()
510 tk->tk_commit_next = NULL; in task_create()
519 tk->tk_zone = zone; in task_create()
539 e.rcep_p.task = tk; in task_create()
541 tk->tk_rctls = rctl_set_dup(ancestor_tk->tk_rctls, curproc, curproc, &e, in task_create()
560 (mod_hash_val_t *)tk, hndl) != 0) { in task_create()
562 panic("unable to insert task %d(%p)", tkid, (void *)tk); in task_create()
566 tk->tk_nprocs_kstat = task_kstat_create(tk, zone); in task_create()
567 return (tk); in task_create()
586 task_attach(task_t *tk, proc_t *p) in task_attach() argument
589 ASSERT(tk != NULL); in task_attach()
594 if (tk->tk_memb_list == NULL) { in task_attach()
598 first = tk->tk_memb_list; in task_attach()
605 tk->tk_memb_list = p; in task_attach()
606 task_hold(tk); in task_attach()
607 p->p_task = tk; in task_attach()
624 task_begin(task_t *tk, proc_t *p) in task_begin() argument
633 mutex_enter(&tk->tk_usage_lock); in task_begin()
634 tu = tk->tk_usage; in task_begin()
638 mutex_exit(&tk->tk_usage_lock); in task_begin()
643 task_attach(tk, p); in task_begin()
649 e.rcep_p.task = tk; in task_begin()
651 (void) rctl_set_dup(NULL, NULL, p, &e, tk->tk_rctls, NULL, in task_begin()
678 task_t *tk = p->p_task; in task_detach() local
683 ASSERT(tk->tk_memb_list != NULL); in task_detach()
685 if (tk->tk_memb_list == p) in task_detach()
686 tk->tk_memb_list = p->p_tasknext; in task_detach()
687 if (tk->tk_memb_list == p) in task_detach()
688 tk->tk_memb_list = NULL; in task_detach()
755 task_end(task_t *tk) in task_end() argument
757 ASSERT(tk->tk_hold_count == 0); in task_end()
759 project_rele(tk->tk_proj); in task_end()
760 kmem_free(tk->tk_usage, sizeof (task_usage_t)); in task_end()
761 kmem_free(tk->tk_inherited, sizeof (task_usage_t)); in task_end()
762 if (tk->tk_prevusage != NULL) in task_end()
763 kmem_free(tk->tk_prevusage, sizeof (task_usage_t)); in task_end()
764 if (tk->tk_zoneusage != NULL) in task_end()
765 kmem_free(tk->tk_zoneusage, sizeof (task_usage_t)); in task_end()
766 rctl_set_free(tk->tk_rctls); in task_end()
767 id_free(taskid_space, tk->tk_tkid); in task_end()
768 zone_task_rele(tk->tk_zone); in task_end()
769 kmem_cache_free(task_cache, tk); in task_end()
833 task_join(task_t *tk, uint_t flags) in task_join() argument
838 zone_t *zone = tk->tk_zone; in task_join()
839 projid_t projid = tk->tk_proj->kpj_id; in task_join()
891 task_change(tk, p); in task_join()
896 changeproj(p, tk->tk_proj, zone, projbuf, zonebuf); in task_join()
1037 task_t *tk = ksp->ks_private; in task_nprocs_kstat_update() local
1043 ktk->ktk_usage.value.ui64 = tk->tk_nprocs; in task_nprocs_kstat_update()
1044 ktk->ktk_value.value.ui64 = tk->tk_nprocs_ctl; in task_nprocs_kstat_update()
1049 task_kstat_create(task_t *tk, zone_t *zone) in task_kstat_create() argument
1055 ksp = rctl_kstat_create_task(tk, "nprocs", KSTAT_TYPE_NAMED, in task_kstat_create()
1069 ksp->ks_private = tk; in task_kstat_create()
1076 task_kstat_delete(task_t *tk) in task_kstat_delete() argument
1080 if (tk->tk_nprocs_kstat != NULL) { in task_kstat_delete()
1081 data = tk->tk_nprocs_kstat->ks_data; in task_kstat_delete()
1082 kstat_delete(tk->tk_nprocs_kstat); in task_kstat_delete()
1084 tk->tk_nprocs_kstat = NULL; in task_kstat_delete()
1117 task_t *tk; in task_commit() local
1119 tk = task_commit_head; in task_commit()
1124 exacct_commit_task(tk); in task_commit()