Lines Matching refs:node
35 static void node_free(struct intel_engine_pool_node *node) in node_free() argument
37 i915_gem_object_put(node->obj); in node_free()
38 i915_active_fini(&node->active); in node_free()
39 kfree(node); in node_free()
44 struct intel_engine_pool_node *node = in pool_active() local
45 container_of(ref, typeof(*node), active); in pool_active()
46 struct dma_resv *resv = node->obj->base.resv; in pool_active()
54 err = i915_gem_object_pin_pages(node->obj); in pool_active()
59 i915_gem_object_make_unshrinkable(node->obj); in pool_active()
66 struct intel_engine_pool_node *node = in pool_retire() local
67 container_of(ref, typeof(*node), active); in pool_retire()
68 struct intel_engine_pool *pool = node->pool; in pool_retire()
69 struct list_head *list = bucket_for_size(pool, node->obj->base.size); in pool_retire()
74 i915_gem_object_unpin_pages(node->obj); in pool_retire()
77 i915_gem_object_make_purgeable(node->obj); in pool_retire()
80 list_add(&node->link, list); in pool_retire()
88 struct intel_engine_pool_node *node; in node_create() local
91 node = kmalloc(sizeof(*node), in node_create()
93 if (!node) in node_create()
96 node->pool = pool; in node_create()
97 i915_active_init(engine->i915, &node->active, pool_active, pool_retire); in node_create()
101 i915_active_fini(&node->active); in node_create()
102 kfree(node); in node_create()
108 node->obj = obj; in node_create()
109 return node; in node_create()
115 struct intel_engine_pool_node *node; in intel_engine_pool_get() local
126 list_for_each_entry(node, list, link) { in intel_engine_pool_get()
127 if (node->obj->base.size < size) in intel_engine_pool_get()
129 list_del(&node->link); in intel_engine_pool_get()
134 if (&node->link == list) { in intel_engine_pool_get()
135 node = node_create(pool, size); in intel_engine_pool_get()
136 if (IS_ERR(node)) in intel_engine_pool_get()
137 return node; in intel_engine_pool_get()
140 ret = i915_active_acquire(&node->active); in intel_engine_pool_get()
142 node_free(node); in intel_engine_pool_get()
146 return node; in intel_engine_pool_get()
164 struct intel_engine_pool_node *node, *nn; in intel_engine_pool_park() local
166 list_for_each_entry_safe(node, nn, list, link) in intel_engine_pool_park()
167 node_free(node); in intel_engine_pool_park()