Lines Matching refs:eb
56 struct eb_vmas *eb = NULL; in eb_create() local
62 eb = kmalloc(size, GFP_TEMPORARY | __GFP_NOWARN | __GFP_NORETRY); in eb_create()
65 if (eb == NULL) { in eb_create()
71 eb = kzalloc(count*sizeof(struct hlist_head) + in eb_create()
74 if (eb == NULL) in eb_create()
75 return eb; in eb_create()
77 eb->and = count - 1; in eb_create()
79 eb->and = -args->buffer_count; in eb_create()
81 INIT_LIST_HEAD(&eb->vmas); in eb_create()
82 return eb; in eb_create()
86 eb_reset(struct eb_vmas *eb) in eb_reset() argument
88 if (eb->and >= 0) in eb_reset()
89 memset(eb->buckets, 0, (eb->and+1)*sizeof(struct hlist_head)); in eb_reset()
93 eb_lookup_vmas(struct eb_vmas *eb, in eb_lookup_vmas() argument
154 list_add_tail(&vma->exec_list, &eb->vmas); in eb_lookup_vmas()
158 if (eb->and < 0) { in eb_lookup_vmas()
159 eb->lut[i] = vma; in eb_lookup_vmas()
164 &eb->buckets[handle & eb->and]); in eb_lookup_vmas()
188 static struct i915_vma *eb_get_vma(struct eb_vmas *eb, unsigned long handle) in eb_get_vma() argument
190 if (eb->and < 0) { in eb_get_vma()
191 if (handle >= -eb->and) in eb_get_vma()
193 return eb->lut[handle]; in eb_get_vma()
198 head = &eb->buckets[handle & eb->and]; in eb_get_vma()
230 static void eb_destroy(struct eb_vmas *eb) in eb_destroy() argument
232 while (!list_empty(&eb->vmas)) { in eb_destroy()
235 vma = list_first_entry(&eb->vmas, in eb_destroy()
242 kfree(eb); in eb_destroy()
381 struct eb_vmas *eb, in i915_gem_execbuffer_relocate_entry() argument
392 target_vma = eb_get_vma(eb, reloc->target_handle); in i915_gem_execbuffer_relocate_entry()
487 struct eb_vmas *eb) in i915_gem_execbuffer_relocate_vma() argument
511 ret = i915_gem_execbuffer_relocate_entry(vma->obj, eb, r); in i915_gem_execbuffer_relocate_vma()
533 struct eb_vmas *eb, in i915_gem_execbuffer_relocate_vma_slow() argument
540 ret = i915_gem_execbuffer_relocate_entry(vma->obj, eb, &relocs[i]); in i915_gem_execbuffer_relocate_vma_slow()
549 i915_gem_execbuffer_relocate(struct eb_vmas *eb) in i915_gem_execbuffer_relocate() argument
562 list_for_each_entry(vma, &eb->vmas, exec_list) { in i915_gem_execbuffer_relocate()
563 ret = i915_gem_execbuffer_relocate_vma(vma, eb); in i915_gem_execbuffer_relocate()
793 struct eb_vmas *eb, in i915_gem_execbuffer_relocate_slow() argument
805 vm = list_first_entry(&eb->vmas, struct i915_vma, exec_list)->vm; in i915_gem_execbuffer_relocate_slow()
808 while (!list_empty(&eb->vmas)) { in i915_gem_execbuffer_relocate_slow()
809 vma = list_first_entry(&eb->vmas, struct i915_vma, exec_list); in i915_gem_execbuffer_relocate_slow()
875 eb_reset(eb); in i915_gem_execbuffer_relocate_slow()
876 ret = eb_lookup_vmas(eb, exec, args, vm, file); in i915_gem_execbuffer_relocate_slow()
881 ret = i915_gem_execbuffer_reserve(ring, &eb->vmas, ctx, &need_relocs); in i915_gem_execbuffer_relocate_slow()
885 list_for_each_entry(vma, &eb->vmas, exec_list) { in i915_gem_execbuffer_relocate_slow()
887 ret = i915_gem_execbuffer_relocate_vma_slow(vma, eb, in i915_gem_execbuffer_relocate_slow()
1129 struct eb_vmas *eb, in i915_gem_execbuffer_parse() argument
1165 list_add_tail(&vma->exec_list, &eb->vmas); in i915_gem_execbuffer_parse()
1307 eb_get_batch(struct eb_vmas *eb) in eb_get_batch() argument
1309 struct i915_vma *vma = list_entry(eb->vmas.prev, typeof(*vma), exec_list); in eb_get_batch()
1332 struct eb_vmas *eb; in i915_gem_do_execbuffer() local
1449 eb = eb_create(args); in i915_gem_do_execbuffer()
1450 if (eb == NULL) { in i915_gem_do_execbuffer()
1458 ret = eb_lookup_vmas(eb, exec, args, vm, file); in i915_gem_do_execbuffer()
1463 batch_obj = eb_get_batch(eb); in i915_gem_do_execbuffer()
1467 ret = i915_gem_execbuffer_reserve(ring, &eb->vmas, ctx, &need_relocs); in i915_gem_do_execbuffer()
1473 ret = i915_gem_execbuffer_relocate(eb); in i915_gem_do_execbuffer()
1477 eb, exec, ctx); in i915_gem_do_execbuffer()
1497 eb, in i915_gem_do_execbuffer()
1574 ret = dev_priv->gt.execbuf_submit(params, args, &eb->vmas); in i915_gem_do_execbuffer()
1589 eb_destroy(eb); in i915_gem_do_execbuffer()