• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/powerpc/platforms/cell/spufs/

Lines Matching defs:gang

271 static void aff_merge_remaining_ctxs(struct spu_gang *gang)
275 list_for_each_entry(ctx, &gang->aff_list_head, aff_list) {
277 list_add(&ctx->aff_list, &gang->aff_list_head);
279 gang->aff_flags |= AFF_MERGED;
282 static void aff_set_offsets(struct spu_gang *gang)
288 list_for_each_entry_reverse(ctx, &gang->aff_ref_ctx->aff_list,
290 if (&ctx->aff_list == &gang->aff_list_head)
296 list_for_each_entry(ctx, gang->aff_ref_ctx->aff_list.prev, aff_list) {
297 if (&ctx->aff_list == &gang->aff_list_head)
302 gang->aff_flags |= AFF_OFFSETS_SET;
335 if (spu->ctx && spu->ctx->gang && !spu->ctx->aff_offset
336 && spu->ctx->gang->aff_ref_spu)
337 available_spus -= spu->ctx->gang->contexts;
340 if (available_spus < ctx->gang->contexts) {
357 static void aff_set_ref_point_location(struct spu_gang *gang)
363 mem_aff = gang->aff_ref_ctx->flags & SPU_CREATE_AFFINITY_MEM;
367 list_for_each_entry(tmp, &gang->aff_list_head, aff_list)
370 list_for_each_entry_reverse(ctx, &gang->aff_ref_ctx->aff_list,
372 if (&ctx->aff_list == &gang->aff_list_head)
377 gang->aff_ref_spu = aff_ref_location(gang->aff_ref_ctx, mem_aff, gs,
413 struct spu_gang *gang = ctx->gang;
418 if (atomic_read(&ctx->gang->aff_sched_count) == 0)
419 ctx->gang->aff_ref_spu = NULL;
421 if (!gang->aff_ref_spu) {
422 if (!(gang->aff_flags & AFF_MERGED))
423 aff_merge_remaining_ctxs(gang);
424 if (!(gang->aff_flags & AFF_OFFSETS_SET))
425 aff_set_offsets(gang);
426 aff_set_ref_point_location(gang);
429 return gang->aff_ref_spu != NULL;
448 if (ctx->gang)
450 * If ctx->gang->aff_sched_count is positive, SPU affinity is
451 * being considered in this gang. Using atomic_dec_if_positive
452 * allow us to skip an explicit check for affinity in this gang
454 atomic_dec_if_positive(&ctx->gang->aff_sched_count);
579 if (ctx->gang) {
580 mutex_lock(&ctx->gang->aff_mutex);
582 aff_ref_spu = ctx->gang->aff_ref_spu;
583 atomic_inc(&ctx->gang->aff_sched_count);
584 mutex_unlock(&ctx->gang->aff_mutex);
593 atomic_dec(&ctx->gang->aff_sched_count);
596 mutex_unlock(&ctx->gang->aff_mutex);