cutils: make set_process_name set kernel thread name as well

Signed-off-by: Erik Gilling <konkers@android.com>
diff --git a/libcutils/process_name.c b/libcutils/process_name.c
index 17f52e2..b235429 100644
--- a/libcutils/process_name.c
+++ b/libcutils/process_name.c
@@ -22,6 +22,10 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
+#if defined(HAVE_PRCTL)
+#include <sys/prctl.h>
+#endif
+
 #define PROCESS_NAME_DEVICE "/sys/qemu_trace/process_name"
 
 static const char* process_name = "unknown";
@@ -35,10 +39,19 @@
     }
 
     // We never free the old name. Someone else could be using it.
-    char* copy = (char*) malloc(strlen(new_name) + 1);
+    int len = strlen(new_name);
+    char* copy = (char*) malloc(len + 1);
     strcpy(copy, new_name);
     process_name = (const char*) copy;
 
+#if defined(HAVE_PRCTL)
+    if (len < 16) {
+        prctl(PR_SET_NAME, (unsigned long) new_name, 0, 0, 0);
+    } else {
+        prctl(PR_SET_NAME, (unsigned long) new_name + len - 15, 0, 0, 0);
+    }
+#endif
+
     // If we know we are not running in the emulator, then return.
     if (running_in_emulator == 0) {
         return;