All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Marc-André Lureau" <marcandre.lureau@redhat.com>
To: qemu-devel@nongnu.org
Cc: changpeng.liu@intel.com, felipe@nutanix.com,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [PATCH 23/27] vhost-user-scsi: use glib logging
Date: Wed, 23 Aug 2017 18:20:00 +0200	[thread overview]
Message-ID: <20170823162004.27337-24-marcandre.lureau@redhat.com> (raw)
In-Reply-To: <20170823162004.27337-1-marcandre.lureau@redhat.com>

- PLOG is unused
- code is compiled out unless debug is enabled
- logging is too verbose
- you can pipe to ts to have timestamp if needed, or use structured
  logging with more recent glib

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 contrib/vhost-user-scsi/vhost-user-scsi.c | 77 +++++++++----------------------
 1 file changed, 21 insertions(+), 56 deletions(-)

diff --git a/contrib/vhost-user-scsi/vhost-user-scsi.c b/contrib/vhost-user-scsi/vhost-user-scsi.c
index 516a9d3966..e3ec8b9b2c 100644
--- a/contrib/vhost-user-scsi/vhost-user-scsi.c
+++ b/contrib/vhost-user-scsi/vhost-user-scsi.c
@@ -18,42 +18,6 @@
 
 #include <glib.h>
 
-/* #define VUS_DEBUG 1 */
-
-/** Log helpers **/
-
-#define PPRE                                                          \
-    struct timespec ts;                                               \
-    char   timebuf[64];                                               \
-    struct tm tm;                                                     \
-    (void)clock_gettime(CLOCK_REALTIME, &ts);                         \
-    (void)strftime(timebuf, 64, "%Y%m%d %T", gmtime_r(&ts.tv_sec, &tm))
-
-#define PEXT(lvl, msg, ...) do {                                      \
-    PPRE;                                                             \
-    fprintf(stderr, "%s.%06ld " lvl ": %s:%s():%d: " msg "\n",        \
-            timebuf, ts.tv_nsec / 1000,                               \
-            __FILE__, __func__, __LINE__, ## __VA_ARGS__);            \
-} while (0)
-
-#define PNOR(lvl, msg, ...) do {                                      \
-    PPRE;                                                             \
-    fprintf(stderr, "%s.%06ld " lvl ": " msg "\n",                    \
-            timebuf, ts.tv_nsec / 1000, ## __VA_ARGS__);              \
-} while (0)
-
-#ifdef VUS_DEBUG
-#define PDBG(msg, ...) PEXT("DBG", msg, ## __VA_ARGS__)
-#define PERR(msg, ...) PEXT("ERR", msg, ## __VA_ARGS__)
-#define PLOG(msg, ...) PEXT("LOG", msg, ## __VA_ARGS__)
-#else
-#define PDBG(msg, ...) { }
-#define PERR(msg, ...) PNOR("ERR", msg, ## __VA_ARGS__)
-#define PLOG(msg, ...) PNOR("LOG", msg, ## __VA_ARGS__)
-#endif
-
-/** vhost-user-scsi specific definitions **/
-
 #define VUS_ISCSI_INITIATOR "iqn.2016-11.com.nutanix:vhost-user-scsi"
 
 typedef struct VusIscsiLun {
@@ -166,27 +130,28 @@ static int vus_iscsi_add_lun(VusIscsiLun *lun, char *iscsi_uri)
 
     iscsi_ctx = iscsi_create_context(VUS_ISCSI_INITIATOR);
     if (!iscsi_ctx) {
-        PERR("Unable to create iSCSI context");
+        g_warning("Unable to create iSCSI context");
         return -1;
     }
 
     iscsi_url = iscsi_parse_full_url(iscsi_ctx, iscsi_uri);
     if (!iscsi_url) {
-        PERR("Unable to parse iSCSI URL: %s", iscsi_get_error(iscsi_ctx));
+        g_warning("Unable to parse iSCSI URL: %s", iscsi_get_error(iscsi_ctx));
         goto fail;
     }
 
     iscsi_set_session_type(iscsi_ctx, ISCSI_SESSION_NORMAL);
     iscsi_set_header_digest(iscsi_ctx, ISCSI_HEADER_DIGEST_NONE_CRC32C);
     if (iscsi_full_connect_sync(iscsi_ctx, iscsi_url->portal, iscsi_url->lun)) {
-        PERR("Unable to login to iSCSI portal: %s", iscsi_get_error(iscsi_ctx));
+        g_warning("Unable to login to iSCSI portal: %s",
+                  iscsi_get_error(iscsi_ctx));
         goto fail;
     }
 
     lun->iscsi_ctx = iscsi_ctx;
     lun->iscsi_lun = iscsi_url->lun;
 
-    PDBG("Context %p created for lun 0: %s", iscsi_ctx, iscsi_uri);
+    g_debug("Context %p created for lun 0: %s", iscsi_ctx, iscsi_uri);
 
 out:
     if (iscsi_url) {
@@ -228,7 +193,7 @@ static int get_cdb_len(uint8_t *cdb)
     case 4: return 16;
     case 5: return 12;
     }
-    PERR("Unable to determine cdb len (0x%02hhX)", cdb[0] >> 5);
+    g_warning("Unable to determine cdb len (0x%02hhX)", cdb[0] >> 5);
     return -1;
 }
 
@@ -250,7 +215,7 @@ static int handle_cmd_sync(struct iscsi_context *ctx,
 
     if (!(!req->lun[1] && req->lun[2] == 0x40 && !req->lun[3])) {
         /* Ignore anything different than target=0, lun=0 */
-        PDBG("Ignoring unconnected lun (0x%hhX, 0x%hhX)",
+        g_debug("Ignoring unconnected lun (0x%hhX, 0x%hhX)",
              req->lun[1], req->lun[3]);
         rsp->status = SCSI_STATUS_CHECK_CONDITION;
         memset(rsp->sense, 0, sizeof(rsp->sense));
@@ -293,10 +258,10 @@ static int handle_cmd_sync(struct iscsi_context *ctx,
         task->iovector_in.niov = in_len;
     }
 
-    PDBG("Sending iscsi cmd (cdb_len=%d, dir=%d, task=%p)",
+    g_debug("Sending iscsi cmd (cdb_len=%d, dir=%d, task=%p)",
          cdb_len, dir, task);
     if (!iscsi_scsi_command_sync(ctx, 0, task, NULL)) {
-        PERR("Error serving SCSI command");
+        g_warning("Error serving SCSI command");
         g_free(task);
         return -1;
     }
@@ -314,7 +279,7 @@ static int handle_cmd_sync(struct iscsi_context *ctx,
 
     g_free(task);
 
-    PDBG("Filled in rsp: status=%hhX, resid=%u, response=%hhX, sense_len=%u",
+    g_debug("Filled in rsp: status=%hhX, resid=%u, response=%hhX, sense_len=%u",
          rsp->status, rsp->resid, rsp->response, rsp->sense_len);
 
     return 0;
@@ -330,7 +295,7 @@ static void vus_panic_cb(VuDev *vu_dev, const char *buf)
 
     vdev_scsi = container_of(vu_dev, VusDev, vu_dev);
     if (buf) {
-        PERR("vu_panic: %s", buf);
+        g_warning("vu_panic: %s", buf);
     }
 
     g_main_loop_quit(vdev_scsi->loop);
@@ -371,19 +336,19 @@ static void vus_proc_req(VuDev *vu_dev, int idx)
 
     vdev_scsi = container_of(vu_dev, VusDev, vu_dev);
     if (idx < 0 || idx >= VHOST_MAX_NR_VIRTQUEUE) {
-        PERR("VQ Index out of range: %d", idx);
+        g_warning("VQ Index out of range: %d", idx);
         vus_panic_cb(vu_dev, NULL);
         return;
     }
 
     vq = vu_get_queue(vu_dev, idx);
     if (!vq) {
-        PERR("Error fetching VQ (dev=%p, idx=%d)", vu_dev, idx);
+        g_warning("Error fetching VQ (dev=%p, idx=%d)", vu_dev, idx);
         vus_panic_cb(vu_dev, NULL);
         return;
     }
 
-    PDBG("Got kicked on vq[%d]@%p", idx, vq);
+    g_debug("Got kicked on vq[%d]@%p", idx, vq);
 
     while (1) {
         VuVirtqElement *elem;
@@ -392,23 +357,23 @@ static void vus_proc_req(VuDev *vu_dev, int idx)
 
         elem = vu_queue_pop(vu_dev, vq, sizeof(VuVirtqElement));
         if (!elem) {
-            PDBG("No more elements pending on vq[%d]@%p", idx, vq);
+            g_debug("No more elements pending on vq[%d]@%p", idx, vq);
             break;
         }
-        PDBG("Popped elem@%p", elem);
+        g_debug("Popped elem@%p", elem);
 
         assert(!(elem->out_num > 1 && elem->in_num > 1));
         assert(elem->out_num > 0 && elem->in_num > 0);
 
         if (elem->out_sg[0].iov_len < sizeof(VirtIOSCSICmdReq)) {
-            PERR("Invalid virtio-scsi req header");
+            g_warning("Invalid virtio-scsi req header");
             vus_panic_cb(vu_dev, NULL);
             break;
         }
         req = (VirtIOSCSICmdReq *)elem->out_sg[0].iov_base;
 
         if (elem->in_sg[0].iov_len < sizeof(VirtIOSCSICmdResp)) {
-            PERR("Invalid virtio-scsi rsp header");
+            g_warning("Invalid virtio-scsi rsp header");
             vus_panic_cb(vu_dev, NULL);
             break;
         }
@@ -435,7 +400,7 @@ static void vus_queue_set_started(VuDev *vu_dev, int idx, bool started)
     assert(vu_dev);
 
     if (idx < 0 || idx >= VHOST_MAX_NR_VIRTQUEUE) {
-        PERR("VQ Index out of range: %d", idx);
+        g_warning("VQ Index out of range: %d", idx);
         vus_panic_cb(vu_dev, NULL);
         return;
     }
@@ -443,7 +408,7 @@ static void vus_queue_set_started(VuDev *vu_dev, int idx, bool started)
     vq = vu_get_queue(vu_dev, idx);
 
     if (idx == 0 || idx == 1) {
-        PDBG("queue %d unimplemented", idx);
+        g_debug("queue %d unimplemented", idx);
     } else {
         vu_set_queue_handler(vu_dev, vq, started ? vus_proc_req : NULL);
     }
@@ -461,7 +426,7 @@ static gboolean vus_vhost_cb(GIOChannel *source, GIOCondition condition,
     assert(vu_dev);
 
     if (!vu_dispatch(vu_dev) != 0) {
-        PERR("Error processing vhost message");
+        g_warning("Error processing vhost message");
         vus_panic_cb(vu_dev, NULL);
         return G_SOURCE_REMOVE;
     }
-- 
2.14.1.146.gd35faa819

  parent reply	other threads:[~2017-08-23 16:21 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-23 16:19 [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up Marc-André Lureau
2017-08-23 16:19 ` [Qemu-devel] [PATCH 01/27] glib-compat: move G_SOURCE_CONTINUE/REMOVE there Marc-André Lureau
2017-09-12 12:22   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 02/27] libvhost-user: drop dependency on glib Marc-André Lureau
2017-09-12 12:24   ` Philippe Mathieu-Daudé
2017-09-12 13:13     ` Marc-André Lureau
2017-09-12 13:24       ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 03/27] libvhost-user: improve vu_queue_pop() doc Marc-André Lureau
2017-09-19 13:43   ` Paolo Bonzini
2017-09-19 14:53     ` Eric Blake
2017-09-19 15:01       ` Marc-André Lureau
2017-08-23 16:19 ` [Qemu-devel] [PATCH 04/27] vhost-user-scsi: use g_strdup() Marc-André Lureau
2017-08-23 17:50   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 05/27] vhost-user-scsi: connect unix socket before allocating Marc-André Lureau
2017-09-12 16:37   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 06/27] vhost-user-scsi: code style fixes Marc-André Lureau
2017-08-24  2:54   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 07/27] vhost-user-scsi: use glib allocation Marc-André Lureau
2017-08-23 17:53   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 08/27] vhost-user-scsi: glib calls that allocate don't return NULL Marc-André Lureau
2017-09-19 13:44   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 09/27] vhost-user-scsi: also free the gtree Marc-André Lureau
2017-09-12 16:40   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 10/27] vhost-user-scsi: remove vdev_scsi_find_by_vu() Marc-André Lureau
2017-09-19 13:44   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 11/27] vhost-user-scsi: simplify unix path cleanup Marc-André Lureau
2017-09-19 13:45   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 12/27] vhost-user-scsi: use NULL pointer Marc-André Lureau
2017-08-23 17:47   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 13/27] vhost-user-scsi: use glib watch directly Marc-André Lureau
2017-09-19 13:54   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 14/27] vhost-user-scsi: assert() in iscsi_add_lun() Marc-André Lureau
2017-08-23 17:56   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 15/27] vhost-user-scsi: remove vdev_scsi_add_iscsi_lun() Marc-André Lureau
2017-08-23 17:57   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 16/27] vhost-user-scsi: remove VUS_MAX_LUNS Marc-André Lureau
2017-08-24  0:08   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 17/27] vhost-user-scsi: remove unimplemented functions Marc-André Lureau
2017-09-19 13:54   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 18/27] vhost-user-scsi: rename VUS types Marc-André Lureau
2017-08-23 17:59   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 19/27] vhost-user-scsi: avoid use of iscsi_ namespace Marc-André Lureau
2017-08-24  0:07   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 20/27] vhost-user-scsi: don't copy iscsi/scsi-lowlevel.h Marc-André Lureau
2017-09-12 16:41   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 21/27] vhost-user-scsi: drop extra callback pointer Marc-André Lureau
2017-08-23 23:59   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 22/27] vhost-user-scsi: simplify source handling Marc-André Lureau
2017-09-19 14:45   ` Paolo Bonzini
2017-08-23 16:20 ` Marc-André Lureau [this message]
2017-08-24  0:00   ` [Qemu-devel] [PATCH 23/27] vhost-user-scsi: use glib logging Philippe Mathieu-Daudé
2017-08-23 16:20 ` [Qemu-devel] [PATCH 24/27] libvhost-user: add glib source helper Marc-André Lureau
2017-09-19 14:45   ` Paolo Bonzini
2017-09-19 15:04     ` Marc-André Lureau
2017-08-23 16:20 ` [Qemu-devel] [PATCH 25/27] build-sys: fix libvhost-user.a build Marc-André Lureau
2017-09-12 16:43   ` Philippe Mathieu-Daudé
2017-08-23 16:20 ` [Qemu-devel] [PATCH 26/27] vhost-user-scsi: use libvhost-user glib helper Marc-André Lureau
2017-08-23 16:20 ` [Qemu-devel] [PATCH 27/27] vhost-user-scsi: remove server_sock from VusDev Marc-André Lureau
2017-08-24  0:06   ` Philippe Mathieu-Daudé
2017-08-23 16:52 ` [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up no-reply
2017-08-23 16:53 ` no-reply
2017-08-23 16:59 ` no-reply
2017-08-24  0:40 ` Liu, Changpeng
2017-09-11 13:18   ` Marc-André Lureau
2017-09-12  1:39     ` Liu, Changpeng
2017-09-19 12:45     ` Marc-André Lureau
2017-09-19 14:46       ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170823162004.27337-24-marcandre.lureau@redhat.com \
    --to=marcandre.lureau@redhat.com \
    --cc=changpeng.liu@intel.com \
    --cc=felipe@nutanix.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.