cryptospore / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone

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

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