drm/evdi: Log process executable name along with PID
Log task 'command' from 'struct task_struct' for easier tracking access
to EVDI card.
TEST=manual
BUG=chromium:903791
Change-Id: Id0b4d2ae71479459e0bf4150efcb79132ed6d6c4
Signed-off-by: Dawid Kurek <dawid.kurek@displaylink.com>
Reviewed-on: https://chromium-review.googlesource.com/1411580
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
diff --git a/drivers/gpu/drm/evdi/evdi_debug.c b/drivers/gpu/drm/evdi/evdi_debug.c
index 848f323f..432439e 100644
--- a/drivers/gpu/drm/evdi/evdi_debug.c
+++ b/drivers/gpu/drm/evdi/evdi_debug.c
@@ -8,6 +8,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
+#include <linux/sched.h>
#include "evdi_debug.h"
@@ -15,3 +16,26 @@
module_param_named(initial_loglevel, evdi_loglevel, int, 0400);
MODULE_PARM_DESC(initial_loglevel, "Initial log level");
+
+void evdi_log_process(void)
+{
+ int task_pid = (int)task_pid_nr(current);
+ char task_comm[TASK_COMM_LEN] = { 0 };
+
+ get_task_comm(task_comm, current);
+
+ if (current->group_leader) {
+ char process_comm[TASK_COMM_LEN] = { 0 };
+
+ get_task_comm(process_comm, current->group_leader);
+ EVDI_INFO("Task %d (%s) of process %d (%s)\n",
+ task_pid,
+ task_comm,
+ (int)task_pid_nr(current->group_leader),
+ process_comm);
+ } else {
+ EVDI_INFO("Task %d (%s)\n",
+ task_pid,
+ task_comm);
+ }
+}
diff --git a/drivers/gpu/drm/evdi/evdi_debug.h b/drivers/gpu/drm/evdi/evdi_debug.h
index 86c384a..3d748eb 100644
--- a/drivers/gpu/drm/evdi/evdi_debug.h
+++ b/drivers/gpu/drm/evdi/evdi_debug.h
@@ -53,5 +53,7 @@
#define EVDI_ENTER() EVDI_VERBOSE("enter\n")
#define EVDI_EXIT() EVDI_VERBOSE("exit\n")
+void evdi_log_process(void);
+
#endif /* EVDI_DEBUG_H */
diff --git a/drivers/gpu/drm/evdi/evdi_main.c b/drivers/gpu/drm/evdi/evdi_main.c
index 04e9799..386b1f6 100644
--- a/drivers/gpu/drm/evdi/evdi_main.c
+++ b/drivers/gpu/drm/evdi/evdi_main.c
@@ -117,8 +117,10 @@
{
struct evdi_device *evdi = drm_dev->dev_private;
- EVDI_DEBUG("(dev=%d) process %d tries to close us, postclose\n",
- evdi ? evdi->dev_index : -1, (int)task_pid_nr(current));
+ EVDI_DEBUG("(dev=%d) Process tries to close us, postclose\n",
+ evdi ? evdi->dev_index : -1);
+ evdi_log_process();
+
evdi_driver_close(drm_dev, file);
}
diff --git a/drivers/gpu/drm/evdi/evdi_painter.c b/drivers/gpu/drm/evdi/evdi_painter.c
index 80f17f5..babdd17 100644
--- a/drivers/gpu/drm/evdi/evdi_painter.c
+++ b/drivers/gpu/drm/evdi/evdi_painter.c
@@ -504,9 +504,9 @@
struct edid *new_edid = NULL;
int expected_edid_size = 0;
- EVDI_CHECKPT();
- EVDI_DEBUG("(dev=%d) process %d trying to connect\n", evdi->dev_index,
- (int)task_pid_nr(current));
+ EVDI_DEBUG("(dev=%d) Process is trying to connect\n",
+ evdi->dev_index);
+ evdi_log_process();
if (edid_length < sizeof(struct edid)) {
EVDI_ERROR("Edid length too small\n");