gpu: nvgpu: add API to print process name

Add an OS-abstracted API for printing the name of the current process
into a log message and convert the single occurrence of current->comm in
submit path power failure to use it.

Jira NVGPU-705

Change-Id: I1a509dcc5aecc3c89ce4582733888081b3e38f1f
Signed-off-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1749833
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Konsta Holtta
2018-06-14 14:50:15 +03:00
committed by mobile promotions
parent 3a9d8aebd6
commit 52f1ab0372
4 changed files with 26 additions and 2 deletions

View File

@@ -67,6 +67,13 @@ int nvgpu_current_tid(struct gk20a *g)
return (int)pthread_self(); return (int)pthread_self();
} }
void __nvgpu_print_current(struct gk20a *g, const char *func_name, int line,
void *ctx, enum nvgpu_log_type type)
{
__nvgpu_log_msg(g, func_name, line, type,
"Current process: (nvgpu userspace)");
}
/* /*
* Somewhat meaningless in userspace... * Somewhat meaningless in userspace...
*/ */

View File

@@ -23,6 +23,8 @@
#ifndef __NVGPU_OS_SCHED_H__ #ifndef __NVGPU_OS_SCHED_H__
#define __NVGPU_OS_SCHED_H__ #define __NVGPU_OS_SCHED_H__
#include <nvgpu/log.h>
struct gk20a; struct gk20a;
/** /**
@@ -37,4 +39,13 @@ int nvgpu_current_tid(struct gk20a *g);
*/ */
int nvgpu_current_pid(struct gk20a *g); int nvgpu_current_pid(struct gk20a *g);
void __nvgpu_print_current(struct gk20a *g, const char *func_name, int line,
void *ctx, enum nvgpu_log_type type);
/**
* nvgpu_print_current - print the name of current calling process
*
*/
#define nvgpu_print_current(g, ctx, type) \
__nvgpu_print_current(g, __func__, __LINE__, ctx, type)
#endif /* __NVGPU_OS_SCHED_H__ */ #endif /* __NVGPU_OS_SCHED_H__ */

View File

@@ -890,8 +890,8 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c,
err = gk20a_busy(g); err = gk20a_busy(g);
if (err) { if (err) {
nvgpu_err(g, nvgpu_err(g,
"failed to host gk20a to submit gpfifo, process %s", "failed to host gk20a to submit gpfifo");
current->comm); nvgpu_print_current(g, NULL, NVGPU_ERROR);
return err; return err;
} }
} }

View File

@@ -24,3 +24,9 @@ int nvgpu_current_pid(struct gk20a *g)
{ {
return current->tgid; return current->tgid;
} }
void __nvgpu_print_current(struct gk20a *g, const char *func_name, int line,
void *ctx, enum nvgpu_log_type type)
{
__nvgpu_log_msg(g, func_name, line, type, current->comm);
}