Lines Matching defs:cache
38 struct nouveau_mman *cache;
86 mm_bucket_by_order(struct nouveau_mman *cache, int order)
90 return &cache->bucket[MAX2(order, MM_MIN_ORDER) - MM_MIN_ORDER];
94 mm_bucket_by_size(struct nouveau_mman *cache, unsigned size)
96 return mm_bucket_by_order(cache, mm_get_order(size));
114 mm_slab_new(struct nouveau_mman *cache, int chunk_order)
131 ret = nouveau_bo_new(cache->dev, cache->domain, 0, size, &cache->config,
140 slab->cache = cache;
144 LIST_ADD(&slab->head, &mm_bucket_by_order(cache, chunk_order)->free);
146 cache->allocated += size;
150 cache->allocated / 1024);
157 nouveau_mm_allocate(struct nouveau_mman *cache,
165 bucket = mm_bucket_by_size(cache, size);
167 ret = nouveau_bo_new(cache->dev, cache->domain, 0, size, &cache->config,
171 size, cache->config.nv50.memtype, ret);
181 mm_slab_new(cache, MAX2(mm_get_order(size), MM_MIN_ORDER));
213 struct mm_bucket *bucket = mm_bucket_by_order(slab->cache, slab->order);
239 struct nouveau_mman *cache = MALLOC_STRUCT(nouveau_mman);
242 if (!cache)
245 cache->dev = dev;
246 cache->domain = domain;
247 cache->config = *config;
248 cache->allocated = 0;
251 LIST_INITHEAD(&cache->bucket[i].free);
252 LIST_INITHEAD(&cache->bucket[i].used);
253 LIST_INITHEAD(&cache->bucket[i].full);
256 return cache;
272 nouveau_mm_destroy(struct nouveau_mman *cache)
276 if (!cache)
280 if (!LIST_IS_EMPTY(&cache->bucket[i].used) ||
281 !LIST_IS_EMPTY(&cache->bucket[i].full))
282 debug_printf("WARNING: destroying GPU memory cache "
285 nouveau_mm_free_slabs(&cache->bucket[i].free);
286 nouveau_mm_free_slabs(&cache->bucket[i].used);
287 nouveau_mm_free_slabs(&cache->bucket[i].full);
290 FREE(cache);