diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/kmem.c | 67 |
1 files changed, 45 insertions, 22 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/kmem.c b/drivers/gpu/nvgpu/common/linux/kmem.c index 41aaa729..04df552c 100644 --- a/drivers/gpu/nvgpu/common/linux/kmem.c +++ b/drivers/gpu/nvgpu/common/linux/kmem.c | |||
@@ -71,51 +71,85 @@ void nvgpu_big_free(struct gk20a *g, void *p) | |||
71 | 71 | ||
72 | void *__nvgpu_kmalloc(struct gk20a *g, size_t size, unsigned long ip) | 72 | void *__nvgpu_kmalloc(struct gk20a *g, size_t size, unsigned long ip) |
73 | { | 73 | { |
74 | void *alloc; | ||
75 | |||
74 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 76 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
75 | return __nvgpu_track_kmalloc(g, size, ip); | 77 | alloc = __nvgpu_track_kmalloc(g, size, ip); |
76 | #else | 78 | #else |
77 | return kmalloc(size, GFP_KERNEL); | 79 | alloc = kmalloc(size, GFP_KERNEL); |
78 | #endif | 80 | #endif |
81 | |||
82 | kmem_dbg(g, "kmalloc: size=%-6ld addr=0x%p gfp=0x%08x", | ||
83 | size, alloc, GFP_KERNEL); | ||
84 | |||
85 | return alloc; | ||
79 | } | 86 | } |
80 | 87 | ||
81 | void *__nvgpu_kzalloc(struct gk20a *g, size_t size, unsigned long ip) | 88 | void *__nvgpu_kzalloc(struct gk20a *g, size_t size, unsigned long ip) |
82 | { | 89 | { |
90 | void *alloc; | ||
91 | |||
83 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 92 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
84 | return __nvgpu_track_kzalloc(g, size, ip); | 93 | alloc = __nvgpu_track_kzalloc(g, size, ip); |
85 | #else | 94 | #else |
86 | return kzalloc(size, GFP_KERNEL); | 95 | alloc = kzalloc(size, GFP_KERNEL); |
87 | #endif | 96 | #endif |
97 | |||
98 | kmem_dbg(g, "kzalloc: size=%-6ld addr=0x%p gfp=0x%08x", | ||
99 | size, alloc, GFP_KERNEL); | ||
100 | |||
101 | return alloc; | ||
88 | } | 102 | } |
89 | 103 | ||
90 | void *__nvgpu_kcalloc(struct gk20a *g, size_t n, size_t size, unsigned long ip) | 104 | void *__nvgpu_kcalloc(struct gk20a *g, size_t n, size_t size, unsigned long ip) |
91 | { | 105 | { |
106 | void *alloc; | ||
107 | |||
92 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 108 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
93 | return __nvgpu_track_kcalloc(g, n, size, ip); | 109 | alloc = __nvgpu_track_kcalloc(g, n, size, ip); |
94 | #else | 110 | #else |
95 | return kcalloc(n, size, GFP_KERNEL); | 111 | alloc = kcalloc(n, size, GFP_KERNEL); |
96 | #endif | 112 | #endif |
113 | |||
114 | kmem_dbg(g, "kcalloc: size=%-6ld addr=0x%p gfp=0x%08x", | ||
115 | n * size, alloc, GFP_KERNEL); | ||
116 | |||
117 | return alloc; | ||
97 | } | 118 | } |
98 | 119 | ||
99 | void *__nvgpu_vmalloc(struct gk20a *g, unsigned long size, unsigned long ip) | 120 | void *__nvgpu_vmalloc(struct gk20a *g, unsigned long size, unsigned long ip) |
100 | { | 121 | { |
122 | void *alloc; | ||
123 | |||
101 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 124 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
102 | return __nvgpu_track_vmalloc(g, size, ip); | 125 | alloc = __nvgpu_track_vmalloc(g, size, ip); |
103 | #else | 126 | #else |
104 | return vmalloc(size); | 127 | alloc = vmalloc(size); |
105 | #endif | 128 | #endif |
129 | |||
130 | kmem_dbg(g, "vmalloc: size=%-6ld addr=0x%p", size, alloc); | ||
131 | |||
132 | return alloc; | ||
106 | } | 133 | } |
107 | 134 | ||
108 | void *__nvgpu_vzalloc(struct gk20a *g, unsigned long size, unsigned long ip) | 135 | void *__nvgpu_vzalloc(struct gk20a *g, unsigned long size, unsigned long ip) |
109 | { | 136 | { |
137 | void *alloc; | ||
138 | |||
110 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 139 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
111 | return __nvgpu_track_vzalloc(g, size, ip); | 140 | alloc = __nvgpu_track_vzalloc(g, size, ip); |
112 | #else | 141 | #else |
113 | return vzalloc(size); | 142 | alloc = vzalloc(size); |
114 | #endif | 143 | #endif |
144 | |||
145 | kmem_dbg(g, "vzalloc: size=%-6ld addr=0x%p", size, alloc); | ||
146 | |||
147 | return alloc; | ||
115 | } | 148 | } |
116 | 149 | ||
117 | void __nvgpu_kfree(struct gk20a *g, void *addr) | 150 | void __nvgpu_kfree(struct gk20a *g, void *addr) |
118 | { | 151 | { |
152 | kmem_dbg(g, "kfree: addr=0x%p", addr); | ||
119 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 153 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
120 | __nvgpu_track_kfree(g, addr); | 154 | __nvgpu_track_kfree(g, addr); |
121 | #else | 155 | #else |
@@ -125,6 +159,7 @@ void __nvgpu_kfree(struct gk20a *g, void *addr) | |||
125 | 159 | ||
126 | void __nvgpu_vfree(struct gk20a *g, void *addr) | 160 | void __nvgpu_vfree(struct gk20a *g, void *addr) |
127 | { | 161 | { |
162 | kmem_dbg(g, "vfree: addr=0x%p", addr); | ||
128 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE | 163 | #ifdef CONFIG_NVGPU_TRACK_MEM_USAGE |
129 | __nvgpu_track_vfree(g, addr); | 164 | __nvgpu_track_vfree(g, addr); |
130 | #else | 165 | #else |
@@ -292,7 +327,6 @@ void *__nvgpu_track_vmalloc(struct gk20a *g, unsigned long size, | |||
292 | if (!alloc) | 327 | if (!alloc) |
293 | return NULL; | 328 | return NULL; |
294 | 329 | ||
295 | kmem_dbg("vmalloc: size=%-6ld addr=0x%p", size, alloc); | ||
296 | __nvgpu_check_valloc_size(size); | 330 | __nvgpu_check_valloc_size(size); |
297 | 331 | ||
298 | /* | 332 | /* |
@@ -313,7 +347,6 @@ void *__nvgpu_track_vzalloc(struct gk20a *g, unsigned long size, | |||
313 | if (!alloc) | 347 | if (!alloc) |
314 | return NULL; | 348 | return NULL; |
315 | 349 | ||
316 | kmem_dbg("vzalloc: size=%-6ld addr=0x%p", size, alloc); | ||
317 | __nvgpu_check_valloc_size(size); | 350 | __nvgpu_check_valloc_size(size); |
318 | 351 | ||
319 | /* | 352 | /* |
@@ -333,8 +366,6 @@ void *__nvgpu_track_kmalloc(struct gk20a *g, size_t size, unsigned long ip) | |||
333 | if (!alloc) | 366 | if (!alloc) |
334 | return NULL; | 367 | return NULL; |
335 | 368 | ||
336 | kmem_dbg("kmalloc: size=%-6ld addr=0x%p gfp=0x%08x", | ||
337 | size, alloc, GFP_KERNEL); | ||
338 | __nvgpu_check_kalloc_size(size); | 369 | __nvgpu_check_kalloc_size(size); |
339 | 370 | ||
340 | __nvgpu_save_kmem_alloc(g->kmallocs, size, roundup_pow_of_two(size), | 371 | __nvgpu_save_kmem_alloc(g->kmallocs, size, roundup_pow_of_two(size), |
@@ -350,8 +381,6 @@ void *__nvgpu_track_kzalloc(struct gk20a *g, size_t size, unsigned long ip) | |||
350 | if (!alloc) | 381 | if (!alloc) |
351 | return NULL; | 382 | return NULL; |
352 | 383 | ||
353 | kmem_dbg("kzalloc: size=%-6ld addr=0x%p gfp=0x%08x", | ||
354 | size, alloc, GFP_KERNEL); | ||
355 | __nvgpu_check_kalloc_size(size); | 384 | __nvgpu_check_kalloc_size(size); |
356 | 385 | ||
357 | __nvgpu_save_kmem_alloc(g->kmallocs, size, roundup_pow_of_two(size), | 386 | __nvgpu_save_kmem_alloc(g->kmallocs, size, roundup_pow_of_two(size), |
@@ -368,8 +397,6 @@ void *__nvgpu_track_kcalloc(struct gk20a *g, size_t n, size_t size, | |||
368 | if (!alloc) | 397 | if (!alloc) |
369 | return NULL; | 398 | return NULL; |
370 | 399 | ||
371 | kmem_dbg("kcalloc: size=%-6ld addr=0x%p gfp=0x%08x", | ||
372 | n * size, alloc, GFP_KERNEL); | ||
373 | __nvgpu_check_kalloc_size(n * size); | 400 | __nvgpu_check_kalloc_size(n * size); |
374 | 401 | ||
375 | __nvgpu_save_kmem_alloc(g->kmallocs, n * size, | 402 | __nvgpu_save_kmem_alloc(g->kmallocs, n * size, |
@@ -390,8 +417,6 @@ void __nvgpu_track_vfree(struct gk20a *g, void *addr) | |||
390 | 417 | ||
391 | vfree(addr); | 418 | vfree(addr); |
392 | 419 | ||
393 | kmem_dbg("vfree: addr=0x%p", addr); | ||
394 | |||
395 | __nvgpu_free_kmem_alloc(g->vmallocs, (u64)(uintptr_t)addr); | 420 | __nvgpu_free_kmem_alloc(g->vmallocs, (u64)(uintptr_t)addr); |
396 | } | 421 | } |
397 | 422 | ||
@@ -402,8 +427,6 @@ void __nvgpu_track_kfree(struct gk20a *g, void *addr) | |||
402 | 427 | ||
403 | kfree(addr); | 428 | kfree(addr); |
404 | 429 | ||
405 | kmem_dbg("kfree: addr=0x%p", addr); | ||
406 | |||
407 | __nvgpu_free_kmem_alloc(g->kmallocs, (u64)(uintptr_t)addr); | 430 | __nvgpu_free_kmem_alloc(g->kmallocs, (u64)(uintptr_t)addr); |
408 | } | 431 | } |
409 | 432 | ||