mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 18:16:01 +03:00
gpu: nvgpu: Fix kmem debugging
Make the kmem debugging prints much more easily usable. Previously the prints would only take effect if the full tracking was enabled: CONFIG_NVGPU_TRACK_MEM_USAGE However, there are many times when just the debug prints would be nice to have by simply setting the log mask bit in the log mask. echo 0x80000 > /sys/kernel/debug/<gpu>/log_mask Also this change now uses the real nvgpu_log() function instead of the legacy nvgpu_dbg() function. This makes the logging appear with proper GPU printing as well. Change-Id: If545da3d357d38fe8252e7d548c6765b995cd3d7 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1560248 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
b9082f0760
commit
3e841d6a37
@@ -71,51 +71,85 @@ void nvgpu_big_free(struct gk20a *g, void *p)
|
||||
|
||||
void *__nvgpu_kmalloc(struct gk20a *g, size_t size, unsigned long ip)
|
||||
{
|
||||
void *alloc;
|
||||
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
return __nvgpu_track_kmalloc(g, size, ip);
|
||||
alloc = __nvgpu_track_kmalloc(g, size, ip);
|
||||
#else
|
||||
return kmalloc(size, GFP_KERNEL);
|
||||
alloc = kmalloc(size, GFP_KERNEL);
|
||||
#endif
|
||||
|
||||
kmem_dbg(g, "kmalloc: size=%-6ld addr=0x%p gfp=0x%08x",
|
||||
size, alloc, GFP_KERNEL);
|
||||
|
||||
return alloc;
|
||||
}
|
||||
|
||||
void *__nvgpu_kzalloc(struct gk20a *g, size_t size, unsigned long ip)
|
||||
{
|
||||
void *alloc;
|
||||
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
return __nvgpu_track_kzalloc(g, size, ip);
|
||||
alloc = __nvgpu_track_kzalloc(g, size, ip);
|
||||
#else
|
||||
return kzalloc(size, GFP_KERNEL);
|
||||
alloc = kzalloc(size, GFP_KERNEL);
|
||||
#endif
|
||||
|
||||
kmem_dbg(g, "kzalloc: size=%-6ld addr=0x%p gfp=0x%08x",
|
||||
size, alloc, GFP_KERNEL);
|
||||
|
||||
return alloc;
|
||||
}
|
||||
|
||||
void *__nvgpu_kcalloc(struct gk20a *g, size_t n, size_t size, unsigned long ip)
|
||||
{
|
||||
void *alloc;
|
||||
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
return __nvgpu_track_kcalloc(g, n, size, ip);
|
||||
alloc = __nvgpu_track_kcalloc(g, n, size, ip);
|
||||
#else
|
||||
return kcalloc(n, size, GFP_KERNEL);
|
||||
alloc = kcalloc(n, size, GFP_KERNEL);
|
||||
#endif
|
||||
|
||||
kmem_dbg(g, "kcalloc: size=%-6ld addr=0x%p gfp=0x%08x",
|
||||
n * size, alloc, GFP_KERNEL);
|
||||
|
||||
return alloc;
|
||||
}
|
||||
|
||||
void *__nvgpu_vmalloc(struct gk20a *g, unsigned long size, unsigned long ip)
|
||||
{
|
||||
void *alloc;
|
||||
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
return __nvgpu_track_vmalloc(g, size, ip);
|
||||
alloc = __nvgpu_track_vmalloc(g, size, ip);
|
||||
#else
|
||||
return vmalloc(size);
|
||||
alloc = vmalloc(size);
|
||||
#endif
|
||||
|
||||
kmem_dbg(g, "vmalloc: size=%-6ld addr=0x%p", size, alloc);
|
||||
|
||||
return alloc;
|
||||
}
|
||||
|
||||
void *__nvgpu_vzalloc(struct gk20a *g, unsigned long size, unsigned long ip)
|
||||
{
|
||||
void *alloc;
|
||||
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
return __nvgpu_track_vzalloc(g, size, ip);
|
||||
alloc = __nvgpu_track_vzalloc(g, size, ip);
|
||||
#else
|
||||
return vzalloc(size);
|
||||
alloc = vzalloc(size);
|
||||
#endif
|
||||
|
||||
kmem_dbg(g, "vzalloc: size=%-6ld addr=0x%p", size, alloc);
|
||||
|
||||
return alloc;
|
||||
}
|
||||
|
||||
void __nvgpu_kfree(struct gk20a *g, void *addr)
|
||||
{
|
||||
kmem_dbg(g, "kfree: addr=0x%p", addr);
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
__nvgpu_track_kfree(g, addr);
|
||||
#else
|
||||
@@ -125,6 +159,7 @@ void __nvgpu_kfree(struct gk20a *g, void *addr)
|
||||
|
||||
void __nvgpu_vfree(struct gk20a *g, void *addr)
|
||||
{
|
||||
kmem_dbg(g, "vfree: addr=0x%p", addr);
|
||||
#ifdef CONFIG_NVGPU_TRACK_MEM_USAGE
|
||||
__nvgpu_track_vfree(g, addr);
|
||||
#else
|
||||
@@ -292,7 +327,6 @@ void *__nvgpu_track_vmalloc(struct gk20a *g, unsigned long size,
|
||||
if (!alloc)
|
||||
return NULL;
|
||||
|
||||
kmem_dbg("vmalloc: size=%-6ld addr=0x%p", size, alloc);
|
||||
__nvgpu_check_valloc_size(size);
|
||||
|
||||
/*
|
||||
@@ -313,7 +347,6 @@ void *__nvgpu_track_vzalloc(struct gk20a *g, unsigned long size,
|
||||
if (!alloc)
|
||||
return NULL;
|
||||
|
||||
kmem_dbg("vzalloc: size=%-6ld addr=0x%p", size, alloc);
|
||||
__nvgpu_check_valloc_size(size);
|
||||
|
||||
/*
|
||||
@@ -333,8 +366,6 @@ void *__nvgpu_track_kmalloc(struct gk20a *g, size_t size, unsigned long ip)
|
||||
if (!alloc)
|
||||
return NULL;
|
||||
|
||||
kmem_dbg("kmalloc: size=%-6ld addr=0x%p gfp=0x%08x",
|
||||
size, alloc, GFP_KERNEL);
|
||||
__nvgpu_check_kalloc_size(size);
|
||||
|
||||
__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)
|
||||
if (!alloc)
|
||||
return NULL;
|
||||
|
||||
kmem_dbg("kzalloc: size=%-6ld addr=0x%p gfp=0x%08x",
|
||||
size, alloc, GFP_KERNEL);
|
||||
__nvgpu_check_kalloc_size(size);
|
||||
|
||||
__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,
|
||||
if (!alloc)
|
||||
return NULL;
|
||||
|
||||
kmem_dbg("kcalloc: size=%-6ld addr=0x%p gfp=0x%08x",
|
||||
n * size, alloc, GFP_KERNEL);
|
||||
__nvgpu_check_kalloc_size(n * size);
|
||||
|
||||
__nvgpu_save_kmem_alloc(g->kmallocs, n * size,
|
||||
@@ -390,8 +417,6 @@ void __nvgpu_track_vfree(struct gk20a *g, void *addr)
|
||||
|
||||
vfree(addr);
|
||||
|
||||
kmem_dbg("vfree: addr=0x%p", addr);
|
||||
|
||||
__nvgpu_free_kmem_alloc(g->vmallocs, (u64)(uintptr_t)addr);
|
||||
}
|
||||
|
||||
@@ -402,8 +427,6 @@ void __nvgpu_track_kfree(struct gk20a *g, void *addr)
|
||||
|
||||
kfree(addr);
|
||||
|
||||
kmem_dbg("kfree: addr=0x%p", addr);
|
||||
|
||||
__nvgpu_free_kmem_alloc(g->kmallocs, (u64)(uintptr_t)addr);
|
||||
}
|
||||
|
||||
|
||||
@@ -185,8 +185,8 @@ void nvgpu_kmem_cache_free(struct nvgpu_kmem_cache *cache, void *ptr);
|
||||
*/
|
||||
#define nvgpu_vfree(g, addr) __nvgpu_vfree(g, addr)
|
||||
|
||||
#define kmem_dbg(fmt, args...) \
|
||||
gk20a_dbg(gpu_dbg_kmem, fmt, ##args)
|
||||
#define kmem_dbg(g, fmt, args...) \
|
||||
nvgpu_log(g, gpu_dbg_kmem, fmt, ##args)
|
||||
|
||||
/**
|
||||
* nvgpu_kmem_init - Initialize the kmem tracking stuff.
|
||||
|
||||
Reference in New Issue
Block a user