Blame SOURCES/kvm-virtiofsd-Add-ID-to-the-log-with-FUSE_LOG_DEBUG-leve.patch

ddf19c
From 4d9106acfd7ed9e4d197ddf9f22b79ba6c8afdd8 Mon Sep 17 00:00:00 2001
ddf19c
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
ddf19c
Date: Mon, 27 Jan 2020 19:01:38 +0100
ddf19c
Subject: [PATCH 067/116] virtiofsd: Add ID to the log with FUSE_LOG_DEBUG
ddf19c
 level
ddf19c
MIME-Version: 1.0
ddf19c
Content-Type: text/plain; charset=UTF-8
ddf19c
Content-Transfer-Encoding: 8bit
ddf19c
ddf19c
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
ddf19c
Message-id: <20200127190227.40942-64-dgilbert@redhat.com>
ddf19c
Patchwork-id: 93514
ddf19c
O-Subject: [RHEL-AV-8.2 qemu-kvm PATCH 063/112] virtiofsd: Add ID to the log with FUSE_LOG_DEBUG level
ddf19c
Bugzilla: 1694164
ddf19c
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
ddf19c
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
ddf19c
RH-Acked-by: Sergio Lopez Pascual <slp@redhat.com>
ddf19c
ddf19c
From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
ddf19c
ddf19c
virtiofsd has some threads, so we see a lot of logs with debug option.
ddf19c
It would be useful for debugging if we can identify the specific thread
ddf19c
from the log.
ddf19c
ddf19c
Add ID, which is got by gettid(), to the log with FUSE_LOG_DEBUG level
ddf19c
so that we can grep the specific thread.
ddf19c
ddf19c
The log is like as:
ddf19c
ddf19c
  ]# ./virtiofsd -d -o vhost_user_socket=/tmp/vhostqemu0 -o source=/tmp/share0 -o cache=auto
ddf19c
  ...
ddf19c
  [ID: 00000097]    unique: 12696, success, outsize: 120
ddf19c
  [ID: 00000097] virtio_send_msg: elem 18: with 2 in desc of length 120
ddf19c
  [ID: 00000003] fv_queue_thread: Got queue event on Queue 1
ddf19c
  [ID: 00000003] fv_queue_thread: Queue 1 gave evalue: 1 available: in: 65552 out: 80
ddf19c
  [ID: 00000003] fv_queue_thread: Waiting for Queue 1 event
ddf19c
  [ID: 00000071] fv_queue_worker: elem 33: with 2 out desc of length 80 bad_in_num=0 bad_out_num=0
ddf19c
  [ID: 00000071] unique: 12694, opcode: READ (15), nodeid: 2, insize: 80, pid: 2014
ddf19c
  [ID: 00000071] lo_read(ino=2, size=65536, off=131072)
ddf19c
ddf19c
Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
ddf19c
ddf19c
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
ddf19c
  added rework as suggested by Daniel P. Berrangé during review
ddf19c
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
ddf19c
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
ddf19c
(cherry picked from commit 36f3846902bd41413f6c0bf797dee509028c29f4)
ddf19c
ddf19c
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
ddf19c
---
ddf19c
 tools/virtiofsd/passthrough_ll.c | 8 ++++++++
ddf19c
 1 file changed, 8 insertions(+)
ddf19c
ddf19c
diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
ddf19c
index ff6910f..f08324f 100644
ddf19c
--- a/tools/virtiofsd/passthrough_ll.c
ddf19c
+++ b/tools/virtiofsd/passthrough_ll.c
ddf19c
@@ -43,6 +43,7 @@
ddf19c
 #include <cap-ng.h>
ddf19c
 #include <dirent.h>
ddf19c
 #include <errno.h>
ddf19c
+#include <glib.h>
ddf19c
 #include <inttypes.h>
ddf19c
 #include <limits.h>
ddf19c
 #include <pthread.h>
ddf19c
@@ -2268,10 +2269,17 @@ static void setup_nofile_rlimit(void)
ddf19c
 
ddf19c
 static void log_func(enum fuse_log_level level, const char *fmt, va_list ap)
ddf19c
 {
ddf19c
+    g_autofree char *localfmt = NULL;
ddf19c
+
ddf19c
     if (current_log_level < level) {
ddf19c
         return;
ddf19c
     }
ddf19c
 
ddf19c
+    if (current_log_level == FUSE_LOG_DEBUG) {
ddf19c
+        localfmt = g_strdup_printf("[ID: %08ld] %s", syscall(__NR_gettid), fmt);
ddf19c
+        fmt = localfmt;
ddf19c
+    }
ddf19c
+
ddf19c
     if (use_syslog) {
ddf19c
         int priority = LOG_ERR;
ddf19c
         switch (level) {
ddf19c
-- 
ddf19c
1.8.3.1
ddf19c