Lines Matching refs:bs
152 static void gru_load_kernel_context(struct gru_blade_state *bs, int blade_id) in gru_load_kernel_context() argument
159 up_read(&bs->bs_kgts_sema); in gru_load_kernel_context()
160 down_write(&bs->bs_kgts_sema); in gru_load_kernel_context()
162 if (!bs->bs_kgts) { in gru_load_kernel_context()
163 bs->bs_kgts = gru_alloc_gts(NULL, 0, 0, 0, 0, 0); in gru_load_kernel_context()
164 bs->bs_kgts->ts_user_blade_id = blade_id; in gru_load_kernel_context()
166 kgts = bs->bs_kgts; in gru_load_kernel_context()
172 GRU_NUM_KERNEL_CBR * ncpus + bs->bs_async_cbrs); in gru_load_kernel_context()
175 bs->bs_async_dsr_bytes); in gru_load_kernel_context()
181 gru = bs->bs_kgts->ts_gru; in gru_load_kernel_context()
184 bs->kernel_cb = get_gseg_base_address_cb(vaddr, ctxnum, 0); in gru_load_kernel_context()
185 bs->kernel_dsr = get_gseg_base_address_ds(vaddr, ctxnum, 0); in gru_load_kernel_context()
187 downgrade_write(&bs->bs_kgts_sema); in gru_load_kernel_context()
196 struct gru_blade_state *bs; in gru_free_kernel_contexts() local
201 bs = gru_base[bid]; in gru_free_kernel_contexts()
202 if (!bs) in gru_free_kernel_contexts()
206 if (down_write_trylock(&bs->bs_kgts_sema)) { in gru_free_kernel_contexts()
207 kgts = bs->bs_kgts; in gru_free_kernel_contexts()
210 bs->bs_kgts = NULL; in gru_free_kernel_contexts()
211 up_write(&bs->bs_kgts_sema); in gru_free_kernel_contexts()
225 struct gru_blade_state *bs; in gru_lock_kernel_context() local
231 bs = gru_base[bid]; in gru_lock_kernel_context()
234 down_read(&bs->bs_kgts_sema); in gru_lock_kernel_context()
236 up_read(&bs->bs_kgts_sema); in gru_lock_kernel_context()
239 if (!bs->bs_kgts || !bs->bs_kgts->ts_gru) in gru_lock_kernel_context()
240 gru_load_kernel_context(bs, bid); in gru_lock_kernel_context()
241 return bs; in gru_lock_kernel_context()
251 struct gru_blade_state *bs; in gru_unlock_kernel_context() local
253 bs = gru_base[blade_id]; in gru_unlock_kernel_context()
254 up_read(&bs->bs_kgts_sema); in gru_unlock_kernel_context()
264 struct gru_blade_state *bs; in gru_get_cpu_resources() local
269 bs = gru_lock_kernel_context(-1); in gru_get_cpu_resources()
271 *cb = bs->kernel_cb + lcpu * GRU_HANDLE_STRIDE; in gru_get_cpu_resources()
272 *dsr = bs->kernel_dsr + lcpu * GRU_NUM_KERNEL_DSR_BYTES; in gru_get_cpu_resources()
300 struct gru_blade_state *bs; in gru_reserve_async_resources() local
304 bs = gru_base[blade_id]; in gru_reserve_async_resources()
306 down_write(&bs->bs_kgts_sema); in gru_reserve_async_resources()
309 if (bs->bs_async_dsr_bytes + bs->bs_async_cbrs) in gru_reserve_async_resources()
311 bs->bs_async_dsr_bytes = dsr_bytes; in gru_reserve_async_resources()
312 bs->bs_async_cbrs = cbrs; in gru_reserve_async_resources()
313 bs->bs_async_wq = cmp; in gru_reserve_async_resources()
314 kgts = bs->bs_kgts; in gru_reserve_async_resources()
322 up_write(&bs->bs_kgts_sema); in gru_reserve_async_resources()
334 struct gru_blade_state *bs = ASYNC_HAN_TO_BS(han); in gru_release_async_resources() local
336 down_write(&bs->bs_kgts_sema); in gru_release_async_resources()
337 bs->bs_async_dsr_bytes = 0; in gru_release_async_resources()
338 bs->bs_async_cbrs = 0; in gru_release_async_resources()
339 bs->bs_async_wq = NULL; in gru_release_async_resources()
340 up_write(&bs->bs_kgts_sema); in gru_release_async_resources()
351 struct gru_blade_state *bs = ASYNC_HAN_TO_BS(han); in gru_wait_async_cbr() local
353 wait_for_completion(bs->bs_async_wq); in gru_wait_async_cbr()
368 struct gru_blade_state *bs = ASYNC_HAN_TO_BS(han); in gru_lock_async_resource() local
375 *cb = bs->kernel_cb + ncpus * GRU_HANDLE_STRIDE; in gru_lock_async_resource()
377 *dsr = bs->kernel_dsr + ncpus * GRU_NUM_KERNEL_DSR_BYTES; in gru_lock_async_resource()