HomeSort by: relevance | last modified time | path
    Searched refs:slab (Results 1 - 25 of 32) sorted by relevancy

1 2

  /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/nouveau/
nouveau_mm.c 53 mm_slab_alloc(struct mm_slab *slab)
57 if (slab->free == 0)
60 for (i = 0; i < (slab->count + 31) / 32; ++i) {
61 b = ffs(slab->bits[i]) - 1;
64 assert(n < slab->count);
65 slab->free--;
66 slab->bits[i] &= ~(1 << b);
74 mm_slab_free(struct mm_slab *slab, int i)
76 assert(i < slab->count);
77 slab->bits[i / 32] |= 1 << (i % 32)
123 struct mm_slab *slab; local
169 struct mm_slab *slab; local
219 struct mm_slab *slab = (struct mm_slab *)alloc->priv; local
269 struct mm_slab *slab, *next; local
    [all...]
  /xsrc/external/mit/MesaLib.old/dist/src/gallium/drivers/nouveau/
nouveau_mm.c 53 mm_slab_alloc(struct mm_slab *slab)
57 if (slab->free == 0)
60 for (i = 0; i < (slab->count + 31) / 32; ++i) {
61 b = ffs(slab->bits[i]) - 1;
64 assert(n < slab->count);
65 slab->free--;
66 slab->bits[i] &= ~(1 << b);
74 mm_slab_free(struct mm_slab *slab, int i)
76 assert(i < slab->count);
77 slab->bits[i / 32] |= 1 << (i % 32)
123 struct mm_slab *slab; local
168 struct mm_slab *slab; local
219 struct mm_slab *slab = (struct mm_slab *)alloc->priv; local
269 struct mm_slab *slab, *next; local
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/gallium/auxiliary/pipebuffer/
pb_slab.c 33 /* All slab allocations from the same heap and with the same size belong
43 * The intention is to keep serving allocations from the same slab as long
46 * Due to a race in new slab allocation, additional slabs in this list
56 struct pb_slab *slab = entry->slab; local
59 list_add(&entry->head, &slab->free);
60 slab->num_free++;
62 /* Add slab to the group's list if it isn't already linked. */
63 if (!list_is_linked(&slab->head)) {
65 list_addtail(&slab->head, &group->slabs)
113 struct pb_slab *slab; local
    [all...]
pb_bufmgr_slab.c 54 * Buffer in a slab.
62 struct pb_slab *slab; member in struct:pb_slab_buffer
68 /** Offset relative to the start of the slab buffer. */
74 * Slab -- a contiguous piece of memory.
111 * Alignment, usage to be used to allocate the slab buffers.
134 * This buffer manager just dispatches buffer allocations to the appropriate slab
135 * manager, according to the requested buffer size, or by passes the slab
186 * Delete a buffer from the slab delayed list and put
187 * it on the slab FREE list.
193 struct pb_slab *slab = buf->slab local
296 struct pb_slab *slab; local
373 struct pb_slab *slab; local
    [all...]
pb_slab.h 31 * Helper library for carving out smaller allocations (called "(slab) entries")
56 /* Descriptor of a slab entry.
64 struct pb_slab *slab; /* the slab that contains this buffer */ member in struct:pb_slab_entry
69 /* Descriptor of a slab from which many entries are carved out.
83 /* Callback function that is called when a new slab needs to be allocated
87 * of entries. All entries that belong to the slab must be added to the free
98 /* Callback function that is called when all entries of a slab have been freed.
100 * The callback must free the slab and all its entries. It must not call any of
109 /* Manager of slab allocations. The user of this utility library should embe
    [all...]
  /xsrc/external/mit/MesaLib.old/dist/src/gallium/auxiliary/pipebuffer/
pb_slab.c 33 /* All slab allocations from the same heap and with the same size belong
43 * The intention is to keep serving allocations from the same slab as long
46 * Due to a race in new slab allocation, additional slabs in this list
56 struct pb_slab *slab = entry->slab; local
59 LIST_ADD(&entry->head, &slab->free);
60 slab->num_free++;
62 /* Add slab to the group's list if it isn't already linked. */
63 if (!slab->head.next) {
65 LIST_ADDTAIL(&slab->head, &group->slabs)
103 struct pb_slab *slab; local
    [all...]
pb_bufmgr_slab.c 54 * Buffer in a slab.
62 struct pb_slab *slab; member in struct:pb_slab_buffer
68 /** Offset relative to the start of the slab buffer. */
78 * Slab -- a contiguous piece of memory.
115 * Alignment, usage to be used to allocate the slab buffers.
138 * This buffer manager just dispatches buffer allocations to the appropriate slab
139 * manager, according to the requested buffer size, or by passes the slab
190 * Delete a buffer from the slab delayed list and put
191 * it on the slab FREE list.
197 struct pb_slab *slab = buf->slab local
301 struct pb_slab *slab; local
378 struct pb_slab *slab; local
    [all...]
pb_slab.h 31 * Helper library for carving out smaller allocations (called "(slab) entries")
55 /* Descriptor of a slab entry.
63 struct pb_slab *slab; /* the slab that contains this buffer */ member in struct:pb_slab_entry
67 /* Descriptor of a slab from which many entries are carved out.
81 /* Callback function that is called when a new slab needs to be allocated
85 * of entries. All entries that belong to the slab must be added to the free
96 /* Callback function that is called when all entries of a slab have been freed.
98 * The callback must free the slab and all its entries. It must not call any of
107 /* Manager of slab allocations. The user of this utility library should embe
    [all...]
  /xsrc/external/mit/MesaLib.old/dist/src/gallium/winsys/amdgpu/drm/
amdgpu_bo.h 75 } slab; member in union:amdgpu_winsys_bo::__anon4595
93 amdgpu_bo_handle bo; /* NULL for slab entries and sparse buffers */
135 void amdgpu_bo_slab_free(void *priv, struct pb_slab *slab);
144 struct amdgpu_slab *amdgpu_slab(struct pb_slab *slab)
146 return (struct amdgpu_slab *)slab;
amdgpu_bo.c 175 assert(bo->bo && "must not be called for slab entries");
215 assert(bo->bo); /* slab buffers have a separate vtbl */
352 real = bo->u.slab.real;
394 real = bo->bo ? bo : bo->u.slab.real;
594 bo = container_of(entry, bo, u.slab.entry);
601 /* Find the correct slab allocator for the given size. */
619 pb_slab_free(get_slabs(bo->ws, bo->base.size), &bo->u.slab.entry);
632 struct amdgpu_slab *slab = CALLOC_STRUCT(amdgpu_slab); local
638 if (!slab)
641 /* Determine the slab buffer size. *
715 struct amdgpu_slab *slab = amdgpu_slab(pslab); local
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/zink/
zink_bo.c 85 /* Find the correct slab allocator for the given size. */
97 /* Return the power of two size of a slab entry matching the input size. */
107 /* Return the slab entry alignment. */
150 struct zink_bo *bo = container_of(entry, struct zink_bo, u.slab.entry);
158 struct zink_slab *slab = zink_slab(pslab); local
159 ASSERTED unsigned slab_size = slab->buffer->base.size;
161 assert(slab->base.num_entries * slab->entry_size <= slab_size);
162 FREE(slab->entries);
163 zink_bo_unref(screen, slab->buffer)
830 struct zink_slab *slab = CALLOC_STRUCT(zink_slab); local
    [all...]
zink_bo.h 78 } slab; member in union:zink_bo::__anon2054
187 return bo->mem ? bo->mem : bo->u.slab.real->mem;
193 return bo->mem ? bo->base.size : bo->u.slab.real->base.size;
  /xsrc/external/mit/MesaLib.old/dist/src/gallium/winsys/radeon/drm/
radeon_drm_bo.h 53 } slab; member in union:radeon_bo::__anon4602
59 uint32_t handle; /* 0 for slab entries */
87 void radeon_bo_slab_free(void *priv, struct pb_slab *slab);
radeon_drm_bo.c 81 for (num_idle = 0; num_idle < bo->u.slab.num_fences; ++num_idle) {
82 if (radeon_real_bo_is_busy(bo->u.slab.fences[num_idle])) {
86 radeon_bo_reference(&bo->u.slab.fences[num_idle], NULL);
88 memmove(&bo->u.slab.fences[0], &bo->u.slab.fences[num_idle],
89 (bo->u.slab.num_fences - num_idle) * sizeof(bo->u.slab.fences[0]));
90 bo->u.slab.num_fences -= num_idle;
111 while (bo->u.slab.num_fences) {
113 radeon_bo_reference(&fence, bo->u.slab.fences[0])
777 struct radeon_slab *slab = CALLOC_STRUCT(radeon_slab); local
832 struct radeon_slab *slab = (struct radeon_slab *)pslab; local
    [all...]
radeon_drm_cs.h 40 } slab; member in union:radeon_bo_item::__anon4605
123 index = cs->csc->slab_buffers[index].u.slab.real_idx;
radeon_drm_cs.c 299 real_idx = radeon_lookup_or_add_real_buffer(cs, bo->u.slab.real);
323 item->u.slab.real_idx = real_idx;
360 index = cs->csc->slab_buffers[index].u.slab.real_idx;
493 /* Add the given fence to a slab buffer fence list.
512 for (unsigned src = 0; src < bo->u.slab.num_fences; ++src) {
513 if (bo->u.slab.fences[src]->num_cs_references) {
514 bo->u.slab.fences[dst] = bo->u.slab.fences[src];
517 radeon_bo_reference(&bo->u.slab.fences[src], NULL);
520 bo->u.slab.num_fences = dst
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/gallium/winsys/amdgpu/drm/
amdgpu_bo.h 81 } slab; member in union:amdgpu_winsys_bo::__anon2260
95 amdgpu_bo_handle bo; /* NULL for slab entries and sparse buffers */
141 void amdgpu_bo_slab_free(struct amdgpu_winsys *ws, struct pb_slab *slab);
150 struct amdgpu_slab *amdgpu_slab(struct pb_slab *slab)
152 return (struct amdgpu_slab *)slab;
amdgpu_bo.c 171 assert(bo->bo && "must not be called for slab entries");
232 assert(bo->bo); /* slab buffers have a separate vtbl */
376 real = bo->u.slab.real;
416 real = bo->bo ? bo : bo->u.slab.real;
627 struct amdgpu_winsys_bo *bo = container_of(entry, struct amdgpu_winsys_bo, u.slab.entry);
637 /* Find the correct slab allocator for the given size. */
651 assert(bo->base.size <= bo->u.slab.entry.entry_size);
654 bo->base.size > bo->u.slab.entry.entry_size / 2);
655 return bo->u.slab.entry.entry_size - bo->base.size;
673 pb_slab_free(slabs, &bo->u.slab.entry)
708 struct amdgpu_slab *slab = CALLOC_STRUCT(amdgpu_slab); local
834 struct amdgpu_slab *slab = amdgpu_slab(pslab); local
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/gallium/winsys/radeon/drm/
radeon_drm_bo.c 81 for (num_idle = 0; num_idle < bo->u.slab.num_fences; ++num_idle) {
82 if (radeon_real_bo_is_busy(bo->u.slab.fences[num_idle])) {
86 radeon_ws_bo_reference(&bo->u.slab.fences[num_idle], NULL);
88 memmove(&bo->u.slab.fences[0], &bo->u.slab.fences[num_idle],
89 (bo->u.slab.num_fences - num_idle) * sizeof(bo->u.slab.fences[0]));
90 bo->u.slab.num_fences -= num_idle;
111 while (bo->u.slab.num_fences) {
113 radeon_ws_bo_reference(&fence, bo->u.slab.fences[0])
778 struct radeon_slab *slab = CALLOC_STRUCT(radeon_slab); local
834 struct radeon_slab *slab = (struct radeon_slab *)pslab; local
    [all...]
radeon_drm_bo.h 53 } slab; member in union:radeon_bo::__anon2267
59 uint32_t handle; /* 0 for slab entries */
87 void radeon_bo_slab_free(void *priv, struct pb_slab *slab);
radeon_drm_cs.h 45 } slab; member in union:radeon_bo_item::__anon2270
127 index = cs->csc->slab_buffers[index].u.slab.real_idx;
radeon_drm_cs.c 327 real_idx = radeon_lookup_or_add_real_buffer(cs, bo->u.slab.real);
351 item->u.slab.real_idx = real_idx;
388 index = cs->csc->slab_buffers[index].u.slab.real_idx;
522 /* Add the given fence to a slab buffer fence list.
541 for (unsigned src = 0; src < bo->u.slab.num_fences; ++src) {
542 if (bo->u.slab.fences[src]->num_cs_references) {
543 bo->u.slab.fences[dst] = bo->u.slab.fences[src];
546 radeon_ws_bo_reference(&bo->u.slab.fences[src], NULL);
549 bo->u.slab.num_fences = dst
    [all...]
  /xsrc/external/mit/MesaLib.old/dist/src/amd/vulkan/
radv_shader.c 385 list_for_each_entry(struct radv_shader_slab, slab, &device->shader_slabs, slabs) {
387 list_for_each_entry(struct radv_shader_variant, s, &slab->shaders, slab_list) {
389 shader->bo = slab->bo;
393 return slab->ptr + offset;
397 if (slab->size - offset >= shader->code_size) {
398 shader->bo = slab->bo;
400 list_addtail(&shader->slab_list, &slab->shaders);
402 return slab->ptr + offset;
407 struct radv_shader_slab *slab = calloc(1, sizeof(struct radv_shader_slab)); local
409 slab->size = 256 * 1024
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/iris/
iris_bufmgr.c 186 /** The BO representing the entire slab */
189 /** Array of iris_bo structs representing BOs allocated out of this slab */
555 unreachable("should have found a valid slab for this size");
558 /* Return the power of two size of a slab entry matching the input size. */
568 /* Return the slab entry alignment. */
583 struct iris_bo *bo = container_of(entry, struct iris_bo, slab.entry);
592 struct iris_slab *slab = (void *) pslab; local
595 assert(!slab->bo->aux_map_address);
597 /* Since we're freeing the whole slab, all buffers allocated out of it
603 struct iris_bo *bo = &slab->entries[i]
632 struct iris_slab *slab = calloc(1, sizeof(struct iris_slab)); local
    [all...]
  /xsrc/external/mit/MesaLib.old/dist/src/gallium/drivers/panfrost/
pan_resource.c 566 mem->slab.num_entries = slab_size / entry_size;
567 mem->slab.num_free = mem->slab.num_entries;
569 LIST_INITHEAD(&mem->slab.free);
570 for (unsigned i = 0; i < mem->slab.num_entries; ++i) {
571 /* Create a slab entry */
575 entry->base.slab = &mem->slab;
578 LIST_ADDTAIL(&entry->base.head, &mem->slab.free);
586 return &mem->slab;
    [all...]

Completed in 31 milliseconds

1 2