Lines Matching defs:num_pages
58 search_linear_cache(struct kgem *kgem, unsigned int num_pages, unsigned flags);
61 search_snoop_cache(struct kgem *kgem, unsigned int num_pages, unsigned flags);
124 #define NUM_PAGES(x) (((x) + PAGE_SIZE-1) / PAGE_SIZE)
225 #define num_pages(B) (B)->size.pages.count
720 static uint32_t gem_create(int fd, int num_pages)
726 create.size = PAGE_SIZE * num_pages;
826 constant inline static int cache_bucket(int num_pages)
828 return __fls(num_pages);
832 int handle, int num_pages)
834 DBG(("%s(handle=%d, num_pages=%d)\n", __FUNCTION__, handle, num_pages));
836 assert(num_pages);
842 num_pages(bo) = num_pages;
843 bucket(bo) = cache_bucket(num_pages);
853 static struct kgem_bo *__kgem_bo_alloc(int handle, int num_pages)
866 return __kgem_bo_init(bo, handle, num_pages);
900 static struct list *inactive(struct kgem *kgem, int num_pages)
902 assert(num_pages < MAX_CACHE_SIZE / PAGE_SIZE);
903 assert(cache_bucket(num_pages) < NUM_CACHE_BUCKETS);
904 return &kgem->inactive[cache_bucket(num_pages)];
907 static struct list *active(struct kgem *kgem, int num_pages, int tiling)
909 assert(num_pages < MAX_CACHE_SIZE / PAGE_SIZE);
910 assert(cache_bucket(num_pages) < NUM_CACHE_BUCKETS);
911 return &kgem->active[cache_bucket(num_pages)][tiling];
1305 DBG(("%s: new handle=%d, num_pages=%d\n",
2026 kgem->aperture += num_pages(bo);
2326 if (num_pages(bo) > kgem->max_cpu_size >> 13) {
2328 __FUNCTION__, bo->handle, num_pages(bo), kgem->max_cpu_size >> 13));
2366 search_snoop_cache(struct kgem *kgem, unsigned int num_pages, unsigned flags)
2370 DBG(("%s: num_pages=%d, flags=%x\n", __FUNCTION__, num_pages, flags));
2393 if (num_pages > num_pages(bo))
2396 if (num_pages(bo) > 2*num_pages) {
2406 DBG((" %s: found handle=%d (num_pages=%d) in snoop cache\n",
2407 __FUNCTION__, bo->handle, num_pages(bo)));
2416 DBG((" %s: found handle=%d (num_pages=%d) in snoop cache\n",
2417 __FUNCTION__, first->handle, num_pages(first)));
3060 unsigned alloc = NUM_PAGES(bo->used);
4057 search_linear_cache(struct kgem *kgem, unsigned int num_pages, unsigned flags)
4063 DBG(("%s: num_pages=%d, flags=%x, use_active? %d, use_large=%d [max=%d]\n",
4064 __FUNCTION__, num_pages, flags, use_active,
4065 num_pages >= MAX_CACHE_SIZE / PAGE_SIZE,
4068 assert(num_pages);
4070 if (num_pages >= MAX_CACHE_SIZE / PAGE_SIZE) {
4079 if (num_pages > num_pages(bo))
4123 if (!use_active && list_is_empty(inactive(kgem, num_pages))) {
4132 if (list_is_empty(active(kgem, num_pages, I915_TILING_NONE))) {
4142 if (list_is_empty(inactive(kgem, num_pages))) {
4153 cache = &kgem->vma[for_cpu].inactive[cache_bucket(num_pages)];
4156 assert(bucket(bo) == cache_bucket(num_pages));
4162 if (num_pages > num_pages(bo)) {
4164 num_pages(bo), num_pages));
4185 DBG((" %s: found handle=%d (num_pages=%d) in linear vma cache\n",
4186 __FUNCTION__, bo->handle, num_pages(bo)));
4201 cache = use_active ? active(kgem, num_pages, I915_TILING_NONE) : inactive(kgem, num_pages);
4209 if (num_pages > num_pages(bo))
4275 DBG((" %s: found handle=%d (num_pages=%d) in linear %s cache\n",
4276 __FUNCTION__, bo->handle, num_pages(bo),
4297 DBG((" %s: found handle=%d (near-miss) (num_pages=%d) in linear %s cache\n",
4298 __FUNCTION__, first->handle, num_pages(first),
4394 bo = __kgem_bo_alloc(args.handle, NUM_PAGES(size));
4479 size = NUM_PAGES(size);
4497 DBG(("%s: new handle=%d, num_pages=%d\n", __FUNCTION__, handle, size));
4704 while (size < num_pages(bo))
4858 if (size > num_pages(bo) || num_pages(bo) > 2*size)
4905 if (size > num_pages(bo) || num_pages(bo) > 2*size)
4988 if (num_pages(bo) < size)
5021 if (size > num_pages(bo))
5080 if (size > num_pages(bo)) {
5082 num_pages(bo), size));
5171 if (num_pages(bo) < size)
5206 if (num_pages(bo) < size)
5234 if (num_pages(bo) < size)
5321 if (size > num_pages(bo)) {
5323 num_pages(bo), size));
5370 if (size > num_pages(bo))
5464 DBG((" new pitch=%d, tiling=%d, handle=%d, id=%d, num_pages=%d [%d], bucket=%d\n",
5466 size, num_pages(bo), bucket(bo)));
5510 bo = search_snoop_cache(kgem, NUM_PAGES(size), 0);
5684 static bool aperture_check(struct kgem *kgem, unsigned num_pages)
5699 DBG(("%s: num_pages=%d, holding %d pages in reserve, total aperture %d\n",
5700 __FUNCTION__, num_pages, reserve, kgem->aperture_total));
5701 num_pages += reserve;
5710 (long)num_pages * PAGE_SIZE,
5713 return num_pages <= aperture.aper_available_size / PAGE_SIZE;
5740 int num_pages = 0;
5756 num_pages += num_pages(bo);
5764 DBG(("%s: num_pages=+%d, num_exec=+%d\n",
5765 __FUNCTION__, num_pages, num_exec));
5767 if (!num_pages)
5776 if (num_pages + kgem->aperture > kgem->aperture_high) {
5778 __FUNCTION__, kgem->aperture, num_pages, kgem->aperture_high));
5779 return aperture_check(kgem, num_pages);
5876 if (kgem->aperture + kgem->aperture_fenced + num_pages(bo) > kgem->aperture_high) {
5878 __FUNCTION__, kgem->aperture, num_pages(bo), kgem->aperture_high));
5879 return aperture_check(kgem, num_pages(bo));
5894 int num_pages = 0;
5923 num_pages += num_pages(bo);
5968 if (num_pages == 0)
5974 if (num_pages + kgem->aperture > kgem->aperture_high - kgem->aperture_fenced) {
5976 __FUNCTION__, kgem->aperture, kgem->aperture_fenced, num_pages, kgem->aperture_high));
5977 return aperture_check(kgem, num_pages);
6220 assert(num_pages(bo) <= kgem->aperture_mappable / 2);
6452 NUM_PAGES(size), read_only, handle, bo->proxy != NULL));
6639 buffer_alloc_with_data(int num_pages)
6643 bo = malloc(sizeof(*bo) + 2*UPLOAD_ALIGNMENT + num_pages * PAGE_SIZE);
6704 __FUNCTION__, bo->base.handle, num_pages(&bo->base)));
6708 assert(num_pages(&bo->base) >= alloc);
6989 old = search_linear_cache(kgem, NUM_PAGES(size), CREATE_INACTIVE | CREATE_CPU_MAP);
7056 old = search_linear_cache(kgem, NUM_PAGES(size),
7077 assert(num_pages(&bo->base) >= NUM_PAGES(size));
7100 alloc = NUM_PAGES(size);
7128 bo = buffer_alloc_with_data(num_pages(old));
7184 bo = buffer_alloc_with_data(num_pages(old));
7202 assert(num_pages(&bo->base) >= NUM_PAGES(size));
7217 __FUNCTION__, num_pages(&bo->base), alloc, bo->base.handle, bo->used, bo->write));
7454 size = NUM_PAGES(size);