gts               160 drivers/infiniband/hw/cxgb4/cq.c 	cq->gts = rdev->lldi.gts_reg;
gts               696 drivers/infiniband/hw/cxgb4/t4.h 	void __iomem *gts;
gts               724 drivers/infiniband/hw/cxgb4/t4.h 		writel(val | INGRESSQID_V(cq->cqid), cq->gts);
gts                70 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts = NULL;
gts                75 drivers/misc/sgi-gru/grufault.c 		gts = gru_find_thread_state(vma, TSID(vaddr, vma));
gts                76 drivers/misc/sgi-gru/grufault.c 	if (gts)
gts                77 drivers/misc/sgi-gru/grufault.c 		mutex_lock(&gts->ts_ctxlock);
gts                80 drivers/misc/sgi-gru/grufault.c 	return gts;
gts                87 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts = ERR_PTR(-EINVAL);
gts                94 drivers/misc/sgi-gru/grufault.c 	gts = gru_alloc_thread_state(vma, TSID(vaddr, vma));
gts                95 drivers/misc/sgi-gru/grufault.c 	if (IS_ERR(gts))
gts                97 drivers/misc/sgi-gru/grufault.c 	mutex_lock(&gts->ts_ctxlock);
gts                99 drivers/misc/sgi-gru/grufault.c 	return gts;
gts               103 drivers/misc/sgi-gru/grufault.c 	return gts;
gts               109 drivers/misc/sgi-gru/grufault.c static void gru_unlock_gts(struct gru_thread_state *gts)
gts               111 drivers/misc/sgi-gru/grufault.c 	mutex_unlock(&gts->ts_ctxlock);
gts               252 drivers/misc/sgi-gru/grufault.c static int gru_vtop(struct gru_thread_state *gts, unsigned long vaddr,
gts               255 drivers/misc/sgi-gru/grufault.c 	struct mm_struct *mm = gts->ts_mm;
gts               310 drivers/misc/sgi-gru/grufault.c 			struct gru_thread_state *gts, int atomic,
gts               332 drivers/misc/sgi-gru/grufault.c 		ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift);
gts               338 drivers/misc/sgi-gru/grufault.c 			atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh,
gts               356 drivers/misc/sgi-gru/grufault.c 			  struct gru_thread_state *gts,
gts               361 drivers/misc/sgi-gru/grufault.c 	unsigned char tlb_preload_count = gts->ts_tlb_preload_count;
gts               410 drivers/misc/sgi-gru/grufault.c 	if (atomic_read(&gts->ts_gms->ms_range_active))
gts               413 drivers/misc/sgi-gru/grufault.c 	ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift);
gts               419 drivers/misc/sgi-gru/grufault.c 	if (!(gts->ts_sizeavail & GRU_SIZEAVAIL(pageshift))) {
gts               420 drivers/misc/sgi-gru/grufault.c 		gts->ts_sizeavail |= GRU_SIZEAVAIL(pageshift);
gts               421 drivers/misc/sgi-gru/grufault.c 		if (atomic || !gru_update_cch(gts)) {
gts               422 drivers/misc/sgi-gru/grufault.c 			gts->ts_force_cch_reload = 1;
gts               428 drivers/misc/sgi-gru/grufault.c 		gru_preload_tlb(gru, gts, atomic, vaddr, asid, write, tlb_preload_count, tfh, cbe);
gts               433 drivers/misc/sgi-gru/grufault.c 	gts->ustats.tlbdropin++;
gts               439 drivers/misc/sgi-gru/grufault.c 		atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, vaddr, asid,
gts               523 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               564 drivers/misc/sgi-gru/grufault.c 		gts = gru->gs_gts[ctxnum];
gts               567 drivers/misc/sgi-gru/grufault.c 		if (!gts) {
gts               576 drivers/misc/sgi-gru/grufault.c 		gts->ustats.fmm_tlbmiss++;
gts               577 drivers/misc/sgi-gru/grufault.c 		if (!gts->ts_force_cch_reload &&
gts               578 drivers/misc/sgi-gru/grufault.c 					down_read_trylock(&gts->ts_mm->mmap_sem)) {
gts               579 drivers/misc/sgi-gru/grufault.c 			gru_try_dropin(gru, gts, tfh, NULL);
gts               580 drivers/misc/sgi-gru/grufault.c 			up_read(&gts->ts_mm->mmap_sem);
gts               613 drivers/misc/sgi-gru/grufault.c static int gru_user_dropin(struct gru_thread_state *gts,
gts               617 drivers/misc/sgi-gru/grufault.c 	struct gru_mm_struct *gms = gts->ts_gms;
gts               620 drivers/misc/sgi-gru/grufault.c 	gts->ustats.upm_tlbmiss++;
gts               625 drivers/misc/sgi-gru/grufault.c 		ret = gru_try_dropin(gts->ts_gru, gts, tfh, cb);
gts               640 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               651 drivers/misc/sgi-gru/grufault.c 	gts = gru_find_lock_gts(cb);
gts               652 drivers/misc/sgi-gru/grufault.c 	if (!gts)
gts               654 drivers/misc/sgi-gru/grufault.c 	gru_dbg(grudev, "address 0x%lx, gid %d, gts 0x%p\n", cb, gts->ts_gru ? gts->ts_gru->gs_gid : -1, gts);
gts               656 drivers/misc/sgi-gru/grufault.c 	if (ucbnum >= gts->ts_cbr_au_count * GRU_CBR_AU_SIZE)
gts               659 drivers/misc/sgi-gru/grufault.c 	gru_check_context_placement(gts);
gts               664 drivers/misc/sgi-gru/grufault.c 	if (gts->ts_gru && gts->ts_force_cch_reload) {
gts               665 drivers/misc/sgi-gru/grufault.c 		gts->ts_force_cch_reload = 0;
gts               666 drivers/misc/sgi-gru/grufault.c 		gru_update_cch(gts);
gts               670 drivers/misc/sgi-gru/grufault.c 	cbrnum = thread_cbr_number(gts, ucbnum);
gts               671 drivers/misc/sgi-gru/grufault.c 	if (gts->ts_gru) {
gts               672 drivers/misc/sgi-gru/grufault.c 		tfh = get_tfh_by_index(gts->ts_gru, cbrnum);
gts               673 drivers/misc/sgi-gru/grufault.c 		cbk = get_gseg_base_address_cb(gts->ts_gru->gs_gru_base_vaddr,
gts               674 drivers/misc/sgi-gru/grufault.c 				gts->ts_ctxnum, ucbnum);
gts               675 drivers/misc/sgi-gru/grufault.c 		ret = gru_user_dropin(gts, tfh, cbk);
gts               678 drivers/misc/sgi-gru/grufault.c 	gru_unlock_gts(gts);
gts               690 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               697 drivers/misc/sgi-gru/grufault.c 	gts = gru_find_lock_gts(excdet.cb);
gts               698 drivers/misc/sgi-gru/grufault.c 	if (!gts)
gts               701 drivers/misc/sgi-gru/grufault.c 	gru_dbg(grudev, "address 0x%lx, gid %d, gts 0x%p\n", excdet.cb, gts->ts_gru ? gts->ts_gru->gs_gid : -1, gts);
gts               703 drivers/misc/sgi-gru/grufault.c 	if (ucbnum >= gts->ts_cbr_au_count * GRU_CBR_AU_SIZE) {
gts               705 drivers/misc/sgi-gru/grufault.c 	} else if (gts->ts_gru) {
gts               706 drivers/misc/sgi-gru/grufault.c 		cbrnum = thread_cbr_number(gts, ucbnum);
gts               707 drivers/misc/sgi-gru/grufault.c 		cbe = get_cbe_by_index(gts->ts_gru, cbrnum);
gts               722 drivers/misc/sgi-gru/grufault.c 	gru_unlock_gts(gts);
gts               739 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               749 drivers/misc/sgi-gru/grufault.c 			gts = gru->gs_gts[ctxnum];
gts               750 drivers/misc/sgi-gru/grufault.c 			if (gts && mutex_trylock(&gts->ts_ctxlock)) {
gts               752 drivers/misc/sgi-gru/grufault.c 				gru_unload_context(gts, 1);
gts               753 drivers/misc/sgi-gru/grufault.c 				mutex_unlock(&gts->ts_ctxlock);
gts               764 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               776 drivers/misc/sgi-gru/grufault.c 	gts = gru_find_lock_gts(req.gseg);
gts               777 drivers/misc/sgi-gru/grufault.c 	if (!gts)
gts               780 drivers/misc/sgi-gru/grufault.c 	if (gts->ts_gru)
gts               781 drivers/misc/sgi-gru/grufault.c 		gru_unload_context(gts, 1);
gts               782 drivers/misc/sgi-gru/grufault.c 	gru_unlock_gts(gts);
gts               793 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               804 drivers/misc/sgi-gru/grufault.c 	gts = gru_find_lock_gts(req.gseg);
gts               805 drivers/misc/sgi-gru/grufault.c 	if (!gts)
gts               808 drivers/misc/sgi-gru/grufault.c 	gms = gts->ts_gms;
gts               809 drivers/misc/sgi-gru/grufault.c 	gru_unlock_gts(gts);
gts               820 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               831 drivers/misc/sgi-gru/grufault.c 	gts = gru_find_lock_gts(req.gseg);
gts               832 drivers/misc/sgi-gru/grufault.c 	if (gts) {
gts               833 drivers/misc/sgi-gru/grufault.c 		memcpy(&req.stats, &gts->ustats, sizeof(gts->ustats));
gts               834 drivers/misc/sgi-gru/grufault.c 		gru_unlock_gts(gts);
gts               836 drivers/misc/sgi-gru/grufault.c 		memset(&req.stats, 0, sizeof(gts->ustats));
gts               851 drivers/misc/sgi-gru/grufault.c 	struct gru_thread_state *gts;
gts               860 drivers/misc/sgi-gru/grufault.c 	gts = gru_find_lock_gts(req.gseg);
gts               861 drivers/misc/sgi-gru/grufault.c 	if (!gts) {
gts               862 drivers/misc/sgi-gru/grufault.c 		gts = gru_alloc_locked_gts(req.gseg);
gts               863 drivers/misc/sgi-gru/grufault.c 		if (IS_ERR(gts))
gts               864 drivers/misc/sgi-gru/grufault.c 			return PTR_ERR(gts);
gts               875 drivers/misc/sgi-gru/grufault.c 			gts->ts_user_blade_id = req.val1;
gts               876 drivers/misc/sgi-gru/grufault.c 			gts->ts_user_chiplet_id = req.val0;
gts               877 drivers/misc/sgi-gru/grufault.c 			gru_check_context_placement(gts);
gts               882 drivers/misc/sgi-gru/grufault.c 		gts->ts_tgid_owner = current->tgid;
gts               886 drivers/misc/sgi-gru/grufault.c 		gts->ts_cch_req_slice = req.val1 & 3;
gts               891 drivers/misc/sgi-gru/grufault.c 	gru_unlock_gts(gts);
gts                63 drivers/misc/sgi-gru/grufile.c 	struct gru_thread_state *gts;
gts                74 drivers/misc/sgi-gru/grufile.c 		gts =
gts                76 drivers/misc/sgi-gru/grufile.c 		list_del(&gts->ts_next);
gts                77 drivers/misc/sgi-gru/grufile.c 		mutex_lock(&gts->ts_ctxlock);
gts                78 drivers/misc/sgi-gru/grufile.c 		if (gts->ts_gru)
gts                79 drivers/misc/sgi-gru/grufile.c 			gru_unload_context(gts, 0);
gts                80 drivers/misc/sgi-gru/grufile.c 		mutex_unlock(&gts->ts_ctxlock);
gts                81 drivers/misc/sgi-gru/grufile.c 		gts_drop(gts);
gts               114 drivers/misc/sgi-gru/grukdump.c 	struct gru_thread_state *gts;
gts               140 drivers/misc/sgi-gru/grukdump.c 		gts = gru->gs_gts[ctxnum];
gts               141 drivers/misc/sgi-gru/grukdump.c 		if (gts && gts->ts_vma) {
gts               142 drivers/misc/sgi-gru/grukdump.c 			hdr.pid = gts->ts_tgid_owner;
gts               143 drivers/misc/sgi-gru/grukdump.c 			hdr.vaddr = gts->ts_vma->vm_start;
gts               187 drivers/misc/sgi-gru/grumain.c 				  struct gru_thread_state *gts)
gts               190 drivers/misc/sgi-gru/grumain.c 	gts->ts_cbr_map =
gts               191 drivers/misc/sgi-gru/grumain.c 	    gru_reserve_cb_resources(gru, gts->ts_cbr_au_count,
gts               192 drivers/misc/sgi-gru/grumain.c 				     gts->ts_cbr_idx);
gts               193 drivers/misc/sgi-gru/grumain.c 	gts->ts_dsr_map =
gts               194 drivers/misc/sgi-gru/grumain.c 	    gru_reserve_ds_resources(gru, gts->ts_dsr_au_count, NULL);
gts               198 drivers/misc/sgi-gru/grumain.c 			       struct gru_thread_state *gts)
gts               201 drivers/misc/sgi-gru/grumain.c 	gru->gs_cbr_map |= gts->ts_cbr_map;
gts               202 drivers/misc/sgi-gru/grumain.c 	gru->gs_dsr_map |= gts->ts_dsr_map;
gts               225 drivers/misc/sgi-gru/grumain.c 					struct gru_thread_state *gts)
gts               227 drivers/misc/sgi-gru/grumain.c 	struct gru_mm_struct *gms = gts->ts_gms;
gts               229 drivers/misc/sgi-gru/grumain.c 	unsigned short ctxbitmap = (1 << gts->ts_ctxnum);
gts               255 drivers/misc/sgi-gru/grumain.c 		gru->gs_gid, gts, gms, gts->ts_ctxnum, asid,
gts               261 drivers/misc/sgi-gru/grumain.c 					struct gru_thread_state *gts)
gts               263 drivers/misc/sgi-gru/grumain.c 	struct gru_mm_struct *gms = gts->ts_gms;
gts               268 drivers/misc/sgi-gru/grumain.c 	ctxbitmap = (1 << gts->ts_ctxnum);
gts               274 drivers/misc/sgi-gru/grumain.c 		gru->gs_gid, gts, gms, gts->ts_ctxnum, gms->ms_asidmap[0]);
gts               283 drivers/misc/sgi-gru/grumain.c void gts_drop(struct gru_thread_state *gts)
gts               285 drivers/misc/sgi-gru/grumain.c 	if (gts && atomic_dec_return(&gts->ts_refcnt) == 0) {
gts               286 drivers/misc/sgi-gru/grumain.c 		if (gts->ts_gms)
gts               287 drivers/misc/sgi-gru/grumain.c 			gru_drop_mmu_notifier(gts->ts_gms);
gts               288 drivers/misc/sgi-gru/grumain.c 		kfree(gts);
gts               299 drivers/misc/sgi-gru/grumain.c 	struct gru_thread_state *gts;
gts               301 drivers/misc/sgi-gru/grumain.c 	list_for_each_entry(gts, &vdata->vd_head, ts_next)
gts               302 drivers/misc/sgi-gru/grumain.c 	    if (gts->ts_tsid == tsid)
gts               303 drivers/misc/sgi-gru/grumain.c 		return gts;
gts               314 drivers/misc/sgi-gru/grumain.c 	struct gru_thread_state *gts;
gts               320 drivers/misc/sgi-gru/grumain.c 	gts = kmalloc(bytes, GFP_KERNEL);
gts               321 drivers/misc/sgi-gru/grumain.c 	if (!gts)
gts               325 drivers/misc/sgi-gru/grumain.c 	memset(gts, 0, sizeof(struct gru_thread_state)); /* zero out header */
gts               326 drivers/misc/sgi-gru/grumain.c 	atomic_set(&gts->ts_refcnt, 1);
gts               327 drivers/misc/sgi-gru/grumain.c 	mutex_init(&gts->ts_ctxlock);
gts               328 drivers/misc/sgi-gru/grumain.c 	gts->ts_cbr_au_count = cbr_au_count;
gts               329 drivers/misc/sgi-gru/grumain.c 	gts->ts_dsr_au_count = dsr_au_count;
gts               330 drivers/misc/sgi-gru/grumain.c 	gts->ts_tlb_preload_count = tlb_preload_count;
gts               331 drivers/misc/sgi-gru/grumain.c 	gts->ts_user_options = options;
gts               332 drivers/misc/sgi-gru/grumain.c 	gts->ts_user_blade_id = -1;
gts               333 drivers/misc/sgi-gru/grumain.c 	gts->ts_user_chiplet_id = -1;
gts               334 drivers/misc/sgi-gru/grumain.c 	gts->ts_tsid = tsid;
gts               335 drivers/misc/sgi-gru/grumain.c 	gts->ts_ctxnum = NULLCTX;
gts               336 drivers/misc/sgi-gru/grumain.c 	gts->ts_tlb_int_select = -1;
gts               337 drivers/misc/sgi-gru/grumain.c 	gts->ts_cch_req_slice = -1;
gts               338 drivers/misc/sgi-gru/grumain.c 	gts->ts_sizeavail = GRU_SIZEAVAIL(PAGE_SHIFT);
gts               340 drivers/misc/sgi-gru/grumain.c 		gts->ts_mm = current->mm;
gts               341 drivers/misc/sgi-gru/grumain.c 		gts->ts_vma = vma;
gts               345 drivers/misc/sgi-gru/grumain.c 		gts->ts_gms = gms;
gts               348 drivers/misc/sgi-gru/grumain.c 	gru_dbg(grudev, "alloc gts %p\n", gts);
gts               349 drivers/misc/sgi-gru/grumain.c 	return gts;
gts               352 drivers/misc/sgi-gru/grumain.c 	gts_drop(gts);
gts               381 drivers/misc/sgi-gru/grumain.c 	struct gru_thread_state *gts;
gts               384 drivers/misc/sgi-gru/grumain.c 	gts = gru_find_current_gts_nolock(vdata, tsid);
gts               386 drivers/misc/sgi-gru/grumain.c 	gru_dbg(grudev, "vma %p, gts %p\n", vma, gts);
gts               387 drivers/misc/sgi-gru/grumain.c 	return gts;
gts               398 drivers/misc/sgi-gru/grumain.c 	struct gru_thread_state *gts, *ngts;
gts               400 drivers/misc/sgi-gru/grumain.c 	gts = gru_alloc_gts(vma, vdata->vd_cbr_au_count,
gts               404 drivers/misc/sgi-gru/grumain.c 	if (IS_ERR(gts))
gts               405 drivers/misc/sgi-gru/grumain.c 		return gts;
gts               410 drivers/misc/sgi-gru/grumain.c 		gts_drop(gts);
gts               411 drivers/misc/sgi-gru/grumain.c 		gts = ngts;
gts               414 drivers/misc/sgi-gru/grumain.c 		list_add(&gts->ts_next, &vdata->vd_head);
gts               417 drivers/misc/sgi-gru/grumain.c 	gru_dbg(grudev, "vma %p, gts %p\n", vma, gts);
gts               418 drivers/misc/sgi-gru/grumain.c 	return gts;
gts               424 drivers/misc/sgi-gru/grumain.c static void gru_free_gru_context(struct gru_thread_state *gts)
gts               428 drivers/misc/sgi-gru/grumain.c 	gru = gts->ts_gru;
gts               429 drivers/misc/sgi-gru/grumain.c 	gru_dbg(grudev, "gts %p, gid %d\n", gts, gru->gs_gid);
gts               432 drivers/misc/sgi-gru/grumain.c 	gru->gs_gts[gts->ts_ctxnum] = NULL;
gts               433 drivers/misc/sgi-gru/grumain.c 	free_gru_resources(gru, gts);
gts               434 drivers/misc/sgi-gru/grumain.c 	BUG_ON(test_bit(gts->ts_ctxnum, &gru->gs_context_map) == 0);
gts               435 drivers/misc/sgi-gru/grumain.c 	__clear_bit(gts->ts_ctxnum, &gru->gs_context_map);
gts               436 drivers/misc/sgi-gru/grumain.c 	gts->ts_ctxnum = NULLCTX;
gts               437 drivers/misc/sgi-gru/grumain.c 	gts->ts_gru = NULL;
gts               438 drivers/misc/sgi-gru/grumain.c 	gts->ts_blade = -1;
gts               441 drivers/misc/sgi-gru/grumain.c 	gts_drop(gts);
gts               542 drivers/misc/sgi-gru/grumain.c void gru_unload_context(struct gru_thread_state *gts, int savestate)
gts               544 drivers/misc/sgi-gru/grumain.c 	struct gru_state *gru = gts->ts_gru;
gts               546 drivers/misc/sgi-gru/grumain.c 	int ctxnum = gts->ts_ctxnum;
gts               548 drivers/misc/sgi-gru/grumain.c 	if (!is_kernel_context(gts))
gts               549 drivers/misc/sgi-gru/grumain.c 		zap_vma_ptes(gts->ts_vma, UGRUADDR(gts), GRU_GSEG_PAGESIZE);
gts               553 drivers/misc/sgi-gru/grumain.c 		gts, gts->ts_cbr_map, gts->ts_dsr_map);
gts               558 drivers/misc/sgi-gru/grumain.c 	if (!is_kernel_context(gts))
gts               559 drivers/misc/sgi-gru/grumain.c 		gru_unload_mm_tracker(gru, gts);
gts               561 drivers/misc/sgi-gru/grumain.c 		gru_unload_context_data(gts->ts_gdata, gru->gs_gru_base_vaddr,
gts               562 drivers/misc/sgi-gru/grumain.c 					ctxnum, gts->ts_cbr_map,
gts               563 drivers/misc/sgi-gru/grumain.c 					gts->ts_dsr_map);
gts               564 drivers/misc/sgi-gru/grumain.c 		gts->ts_data_valid = 1;
gts               571 drivers/misc/sgi-gru/grumain.c 	gru_free_gru_context(gts);
gts               578 drivers/misc/sgi-gru/grumain.c void gru_load_context(struct gru_thread_state *gts)
gts               580 drivers/misc/sgi-gru/grumain.c 	struct gru_state *gru = gts->ts_gru;
gts               582 drivers/misc/sgi-gru/grumain.c 	int i, err, asid, ctxnum = gts->ts_ctxnum;
gts               587 drivers/misc/sgi-gru/grumain.c 	    (gts->ts_user_options == GRU_OPT_MISS_FMM_POLL
gts               588 drivers/misc/sgi-gru/grumain.c 	     || gts->ts_user_options == GRU_OPT_MISS_FMM_INTR);
gts               589 drivers/misc/sgi-gru/grumain.c 	cch->tlb_int_enable = (gts->ts_user_options == GRU_OPT_MISS_FMM_INTR);
gts               591 drivers/misc/sgi-gru/grumain.c 		gts->ts_tlb_int_select = gru_cpu_fault_map_id();
gts               592 drivers/misc/sgi-gru/grumain.c 		cch->tlb_int_select = gts->ts_tlb_int_select;
gts               594 drivers/misc/sgi-gru/grumain.c 	if (gts->ts_cch_req_slice >= 0) {
gts               596 drivers/misc/sgi-gru/grumain.c 		cch->req_slice = gts->ts_cch_req_slice;
gts               601 drivers/misc/sgi-gru/grumain.c 	cch->dsr_allocation_map = gts->ts_dsr_map;
gts               602 drivers/misc/sgi-gru/grumain.c 	cch->cbr_allocation_map = gts->ts_cbr_map;
gts               604 drivers/misc/sgi-gru/grumain.c 	if (is_kernel_context(gts)) {
gts               613 drivers/misc/sgi-gru/grumain.c 		asid = gru_load_mm_tracker(gru, gts);
gts               616 drivers/misc/sgi-gru/grumain.c 			cch->sizeavail[i] = gts->ts_sizeavail;
gts               624 drivers/misc/sgi-gru/grumain.c 			err, cch, gts, gts->ts_cbr_map, gts->ts_dsr_map);
gts               628 drivers/misc/sgi-gru/grumain.c 	gru_load_context_data(gts->ts_gdata, gru->gs_gru_base_vaddr, ctxnum,
gts               629 drivers/misc/sgi-gru/grumain.c 			gts->ts_cbr_map, gts->ts_dsr_map, gts->ts_data_valid);
gts               636 drivers/misc/sgi-gru/grumain.c 		gts->ts_gru->gs_gid, gts, gts->ts_cbr_map, gts->ts_dsr_map,
gts               637 drivers/misc/sgi-gru/grumain.c 		(gts->ts_user_options == GRU_OPT_MISS_FMM_INTR), gts->ts_tlb_int_select);
gts               645 drivers/misc/sgi-gru/grumain.c int gru_update_cch(struct gru_thread_state *gts)
gts               648 drivers/misc/sgi-gru/grumain.c 	struct gru_state *gru = gts->ts_gru;
gts               649 drivers/misc/sgi-gru/grumain.c 	int i, ctxnum = gts->ts_ctxnum, ret = 0;
gts               655 drivers/misc/sgi-gru/grumain.c 		if (gru->gs_gts[gts->ts_ctxnum] != gts)
gts               660 drivers/misc/sgi-gru/grumain.c 			cch->sizeavail[i] = gts->ts_sizeavail;
gts               661 drivers/misc/sgi-gru/grumain.c 		gts->ts_tlb_int_select = gru_cpu_fault_map_id();
gts               664 drivers/misc/sgi-gru/grumain.c 		  (gts->ts_user_options == GRU_OPT_MISS_FMM_POLL
gts               665 drivers/misc/sgi-gru/grumain.c 		    || gts->ts_user_options == GRU_OPT_MISS_FMM_INTR);
gts               682 drivers/misc/sgi-gru/grumain.c static int gru_retarget_intr(struct gru_thread_state *gts)
gts               684 drivers/misc/sgi-gru/grumain.c 	if (gts->ts_tlb_int_select < 0
gts               685 drivers/misc/sgi-gru/grumain.c 	    || gts->ts_tlb_int_select == gru_cpu_fault_map_id())
gts               688 drivers/misc/sgi-gru/grumain.c 	gru_dbg(grudev, "retarget from %d to %d\n", gts->ts_tlb_int_select,
gts               690 drivers/misc/sgi-gru/grumain.c 	return gru_update_cch(gts);
gts               700 drivers/misc/sgi-gru/grumain.c 					struct gru_thread_state *gts)
gts               705 drivers/misc/sgi-gru/grumain.c 	blade_id = gts->ts_user_blade_id;
gts               709 drivers/misc/sgi-gru/grumain.c 	chiplet_id = gts->ts_user_chiplet_id;
gts               719 drivers/misc/sgi-gru/grumain.c void gru_check_context_placement(struct gru_thread_state *gts)
gts               728 drivers/misc/sgi-gru/grumain.c 	gru = gts->ts_gru;
gts               729 drivers/misc/sgi-gru/grumain.c 	if (!gru || gts->ts_tgid_owner != current->tgid)
gts               732 drivers/misc/sgi-gru/grumain.c 	if (!gru_check_chiplet_assignment(gru, gts)) {
gts               734 drivers/misc/sgi-gru/grumain.c 		gru_unload_context(gts, 1);
gts               735 drivers/misc/sgi-gru/grumain.c 	} else if (gru_retarget_intr(gts)) {
gts               749 drivers/misc/sgi-gru/grumain.c static int is_gts_stealable(struct gru_thread_state *gts,
gts               752 drivers/misc/sgi-gru/grumain.c 	if (is_kernel_context(gts))
gts               755 drivers/misc/sgi-gru/grumain.c 		return mutex_trylock(&gts->ts_ctxlock);
gts               758 drivers/misc/sgi-gru/grumain.c static void gts_stolen(struct gru_thread_state *gts,
gts               761 drivers/misc/sgi-gru/grumain.c 	if (is_kernel_context(gts)) {
gts               765 drivers/misc/sgi-gru/grumain.c 		mutex_unlock(&gts->ts_ctxlock);
gts               770 drivers/misc/sgi-gru/grumain.c void gru_steal_context(struct gru_thread_state *gts)
gts               778 drivers/misc/sgi-gru/grumain.c 	blade_id = gts->ts_user_blade_id;
gts               781 drivers/misc/sgi-gru/grumain.c 	cbr = gts->ts_cbr_au_count;
gts               782 drivers/misc/sgi-gru/grumain.c 	dsr = gts->ts_dsr_au_count;
gts               796 drivers/misc/sgi-gru/grumain.c 		if (gru_check_chiplet_assignment(gru, gts)) {
gts               827 drivers/misc/sgi-gru/grumain.c 		gts->ustats.context_stolen++;
gts               856 drivers/misc/sgi-gru/grumain.c struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts)
gts               860 drivers/misc/sgi-gru/grumain.c 	int blade_id = gts->ts_user_blade_id;
gts               868 drivers/misc/sgi-gru/grumain.c 		if (!gru_check_chiplet_assignment(grux, gts))
gts               870 drivers/misc/sgi-gru/grumain.c 		if (check_gru_resources(grux, gts->ts_cbr_au_count,
gts               871 drivers/misc/sgi-gru/grumain.c 					gts->ts_dsr_au_count,
gts               882 drivers/misc/sgi-gru/grumain.c 		if (!check_gru_resources(gru, gts->ts_cbr_au_count,
gts               883 drivers/misc/sgi-gru/grumain.c 					 gts->ts_dsr_au_count, GRU_NUM_CCH)) {
gts               887 drivers/misc/sgi-gru/grumain.c 		reserve_gru_resources(gru, gts);
gts               888 drivers/misc/sgi-gru/grumain.c 		gts->ts_gru = gru;
gts               889 drivers/misc/sgi-gru/grumain.c 		gts->ts_blade = gru->gs_blade_id;
gts               890 drivers/misc/sgi-gru/grumain.c 		gts->ts_ctxnum = gru_assign_context_number(gru);
gts               891 drivers/misc/sgi-gru/grumain.c 		atomic_inc(&gts->ts_refcnt);
gts               892 drivers/misc/sgi-gru/grumain.c 		gru->gs_gts[gts->ts_ctxnum] = gts;
gts               898 drivers/misc/sgi-gru/grumain.c 			gseg_virtual_address(gts->ts_gru, gts->ts_ctxnum), gts,
gts               899 drivers/misc/sgi-gru/grumain.c 			gts->ts_gru->gs_gid, gts->ts_ctxnum,
gts               900 drivers/misc/sgi-gru/grumain.c 			gts->ts_cbr_au_count, gts->ts_dsr_au_count);
gts               919 drivers/misc/sgi-gru/grumain.c 	struct gru_thread_state *gts;
gts               929 drivers/misc/sgi-gru/grumain.c 	gts = gru_find_thread_state(vma, TSID(vaddr, vma));
gts               930 drivers/misc/sgi-gru/grumain.c 	if (!gts)
gts               934 drivers/misc/sgi-gru/grumain.c 	mutex_lock(&gts->ts_ctxlock);
gts               937 drivers/misc/sgi-gru/grumain.c 	gru_check_context_placement(gts);
gts               939 drivers/misc/sgi-gru/grumain.c 	if (!gts->ts_gru) {
gts               941 drivers/misc/sgi-gru/grumain.c 		if (!gru_assign_gru_context(gts)) {
gts               943 drivers/misc/sgi-gru/grumain.c 			mutex_unlock(&gts->ts_ctxlock);
gts               946 drivers/misc/sgi-gru/grumain.c 			expires = gts->ts_steal_jiffies + GRU_STEAL_DELAY;
gts               948 drivers/misc/sgi-gru/grumain.c 				gru_steal_context(gts);
gts               951 drivers/misc/sgi-gru/grumain.c 		gru_load_context(gts);
gts               952 drivers/misc/sgi-gru/grumain.c 		paddr = gseg_physical_address(gts->ts_gru, gts->ts_ctxnum);
gts               959 drivers/misc/sgi-gru/grumain.c 	mutex_unlock(&gts->ts_ctxlock);
gts               385 drivers/misc/sgi-gru/grutables.h #define UGRUADDR(gts)		((gts)->ts_vma->vm_start +		\
gts               386 drivers/misc/sgi-gru/grutables.h 					(gts)->ts_tsid * GRU_GSEG_PAGESIZE)
gts               493 drivers/misc/sgi-gru/grutables.h #define thread_cbr_number(gts, n) ((gts)->ts_cbr_idx[(n) / GRU_CBR_AU_SIZE] \
gts               518 drivers/misc/sgi-gru/grutables.h #define for_each_gts_on_gru(gts, gru, ctxnum)				\
gts               520 drivers/misc/sgi-gru/grutables.h 		if (((gts) = (gru)->gs_gts[ctxnum]))
gts               593 drivers/misc/sgi-gru/grutables.h static inline int is_kernel_context(struct gru_thread_state *gts)
gts               595 drivers/misc/sgi-gru/grutables.h 	return !gts->ts_mm;
gts               621 drivers/misc/sgi-gru/grutables.h extern struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts);
gts               622 drivers/misc/sgi-gru/grutables.h extern void gru_load_context(struct gru_thread_state *gts);
gts               623 drivers/misc/sgi-gru/grutables.h extern void gru_steal_context(struct gru_thread_state *gts);
gts               624 drivers/misc/sgi-gru/grutables.h extern void gru_unload_context(struct gru_thread_state *gts, int savestate);
gts               625 drivers/misc/sgi-gru/grutables.h extern int gru_update_cch(struct gru_thread_state *gts);
gts               626 drivers/misc/sgi-gru/grutables.h extern void gts_drop(struct gru_thread_state *gts);
gts               640 drivers/misc/sgi-gru/grutables.h extern void gru_check_context_placement(struct gru_thread_state *gts);