diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/mm')
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/lockless_allocator.c | 13 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/lockless_allocator_priv.h | 4 |
2 files changed, 10 insertions, 7 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; |
diff --git a/drivers/gpu/nvgpu/common/mm/lockless_allocator_priv.h b/drivers/gpu/nvgpu/common/mm/lockless_allocator_priv.h index 32421ac1..c527bff9 100644 --- a/drivers/gpu/nvgpu/common/mm/lockless_allocator_priv.h +++ b/drivers/gpu/nvgpu/common/mm/lockless_allocator_priv.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. | 2 | * Copyright (c) 2016 - 2017, NVIDIA CORPORATION. All rights reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms and conditions of the GNU General Public License, | 5 | * under the terms and conditions of the GNU General Public License, |
@@ -109,7 +109,7 @@ struct nvgpu_lockless_allocator { | |||
109 | bool inited; | 109 | bool inited; |
110 | 110 | ||
111 | /* Statistics */ | 111 | /* Statistics */ |
112 | atomic_t nr_allocs; | 112 | nvgpu_atomic_t nr_allocs; |
113 | }; | 113 | }; |
114 | 114 | ||
115 | static inline struct nvgpu_lockless_allocator *lockless_allocator( | 115 | static inline struct nvgpu_lockless_allocator *lockless_allocator( |