summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/mm/lockless_allocator.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/mm/lockless_allocator.c')
-rw-r--r--drivers/gpu/nvgpu/common/mm/lockless_allocator.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/common/mm/lockless_allocator.c b/drivers/gpu/nvgpu/common/mm/lockless_allocator.c
index 2a569efd..eeb86095 100644
--- a/drivers/gpu/nvgpu/common/mm/lockless_allocator.c
+++ b/drivers/gpu/nvgpu/common/mm/lockless_allocator.c
@@ -65,7 +65,9 @@ static u64 nvgpu_lockless_alloc(struct nvgpu_allocator *a, u64 len)
65 ret = cmpxchg(&pa->head, head, new_head); 65 ret = cmpxchg(&pa->head, head, new_head);
66 if (ret == head) { 66 if (ret == head) {
67 addr = pa->base + head * pa->blk_size; 67 addr = pa->base + head * pa->blk_size;
68 atomic_inc(&pa->nr_allocs); 68 nvgpu_atomic_inc(&pa->nr_allocs);
69 alloc_dbg(a, "Alloc node # %d @ addr 0x%llx\n", head,
70 addr);
69 break; 71 break;
70 } 72 }
71 head = ACCESS_ONCE(pa->head); 73 head = ACCESS_ONCE(pa->head);
@@ -94,7 +96,8 @@ static void nvgpu_lockless_free(struct nvgpu_allocator *a, u64 addr)
94 ACCESS_ONCE(pa->next[cur_idx]) = head; 96 ACCESS_ONCE(pa->next[cur_idx]) = head;
95 ret = cmpxchg(&pa->head, head, cur_idx); 97 ret = cmpxchg(&pa->head, head, cur_idx);
96 if (ret == head) { 98 if (ret == head) {
97 atomic_dec(&pa->nr_allocs); 99 nvgpu_atomic_dec(&pa->nr_allocs);
100 alloc_dbg(a, "Free node # %llu\n", cur_idx);
98 break; 101 break;
99 } 102 }
100 } 103 }
@@ -125,9 +128,9 @@ static void nvgpu_lockless_print_stats(struct nvgpu_allocator *a,
125 /* Actual stats. */ 128 /* Actual stats. */
126 __alloc_pstat(s, a, "Stats:\n"); 129 __alloc_pstat(s, a, "Stats:\n");
127 __alloc_pstat(s, a, " Number allocs = %d\n", 130 __alloc_pstat(s, a, " Number allocs = %d\n",
128 atomic_read(&pa->nr_allocs)); 131 nvgpu_atomic_read(&pa->nr_allocs));
129 __alloc_pstat(s, a, " Number free = %d\n", 132 __alloc_pstat(s, a, " Number free = %d\n",
130 pa->nr_nodes - atomic_read(&pa->nr_allocs)); 133 pa->nr_nodes - nvgpu_atomic_read(&pa->nr_allocs));
131} 134}
132#endif 135#endif
133 136
@@ -193,7 +196,7 @@ int nvgpu_lockless_allocator_init(struct gk20a *g, struct nvgpu_allocator *__a,
193 a->blk_size = blk_size; 196 a->blk_size = blk_size;
194 a->nr_nodes = nr_nodes; 197 a->nr_nodes = nr_nodes;
195 a->flags = flags; 198 a->flags = flags;
196 atomic_set(&a->nr_allocs, 0); 199 nvgpu_atomic_set(&a->nr_allocs, 0);
197 200
198 wmb(); 201 wmb();
199 a->inited = true; 202 a->inited = true;