Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195651/?format=api
{ "id": 2195651, "url": "http://patchwork.ozlabs.org/api/patches/2195651/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260211152508.732487-24-berrange@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260211152508.732487-24-berrange@redhat.com>", "list_archive_url": null, "date": "2026-02-11T15:25:04", "name": "[v6,23/27] util: convert error-report & log to message API for timestamp", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "6d6ac1398721e22a8a6706962009314e0ad06734", "submitter": { "id": 2694, "url": "http://patchwork.ozlabs.org/api/people/2694/?format=api", "name": "Daniel P. Berrangé", "email": "berrange@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260211152508.732487-24-berrange@redhat.com/mbox/", "series": [ { "id": 491862, "url": "http://patchwork.ozlabs.org/api/series/491862/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491862", "date": "2026-02-11T15:24:41", "name": "util: sync error_report & qemu_log output more closely", "version": 6, "mbox": "http://patchwork.ozlabs.org/series/491862/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195651/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195651/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=dNt8eEvQ;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fB2TX07WRz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 02:31:28 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vqC7u-0000Na-DY; Wed, 11 Feb 2026 10:27:38 -0500", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <berrange@redhat.com>)\n id 1vqC7q-0008Lx-Q6\n for qemu-devel@nongnu.org; Wed, 11 Feb 2026 10:27:34 -0500", "from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <berrange@redhat.com>)\n id 1vqC7o-00068W-QA\n for qemu-devel@nongnu.org; Wed, 11 Feb 2026 10:27:34 -0500", "from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-550-FNvOBfwkOxWRYlS6u_bf6A-1; Wed,\n 11 Feb 2026 10:27:28 -0500", "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id F371E1800367; Wed, 11 Feb 2026 15:27:26 +0000 (UTC)", "from toolbx.redhat.com (unknown [10.45.227.9])\n by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 2A71430001A8; Wed, 11 Feb 2026 15:27:21 +0000 (UTC)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1770823651;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=kkoiLQEbFC048zZDPRGr8W03GXiPCxPb5ynydGF78mE=;\n b=dNt8eEvQAPyKxvGuN8zzqohYoVk+X+turWrBpJvhfz1BK+cuVgdPfJI5S6GtyEvpNmv9Pc\n XrlSzAwzf9vfB/1RogGVwhDIOL98TBiZif6H9l2cE42ZDQkS6vx43/JKnj+yuWI/K0/bG9\n R8ND4o6vX6OEJlA4yJH4X383EfirpBI=", "X-MC-Unique": "FNvOBfwkOxWRYlS6u_bf6A-1", "X-Mimecast-MFC-AGG-ID": "FNvOBfwkOxWRYlS6u_bf6A_1770823647", "From": "=?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>", "To": "qemu-devel@nongnu.org", "Cc": "Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,\n Stefan Weil <sw@weilnetz.de>, \"Dr. David Alan Gilbert\" <dave@treblig.org>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>, devel@lists.libvirt.org,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, =?utf-8?q?Marc?=\n\t=?utf-8?q?-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n Hanna Reitz <hreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>,\n qemu-block@nongnu.org, qemu-rust@nongnu.org,\n Paolo Bonzini <pbonzini@redhat.com>, Markus Armbruster <armbru@redhat.com>,\n Gerd Hoffmann <kraxel@redhat.com>,\n =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Christian Schoenebeck <qemu_oss@crudebyte.com>,\n Richard Henderson <richard.henderson@linaro.org>", "Subject": "[PATCH v6 23/27] util: convert error-report & log to message API for\n timestamp", "Date": "Wed, 11 Feb 2026 15:25:04 +0000", "Message-ID": "<20260211152508.732487-24-berrange@redhat.com>", "In-Reply-To": "<20260211152508.732487-1-berrange@redhat.com>", "References": "<20260211152508.732487-1-berrange@redhat.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4", "Received-SPF": "pass client-ip=170.10.133.124;\n envelope-from=berrange@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Both the error-report and log APIs can optional emit a timestamp\nas a prefix on messages, with the '-msg timestamp=on' command\nline flag is set.\n\nConvert them to the new message API for formatting the context\nprefix, guaranteeing they will have matching behaviour going\nforward.\n\nThere is no change in output format for either logs or errors\nwith this conversion. There is a slight impact on logging code\nin that recording the timestamp is now potentially delayed by\nthe need to acquire the logging mutex.\n\nReviewed-by: Richard Henderson <richard.henderson@linaro.org>\nSigned-off-by: Daniel P. Berrangé <berrange@redhat.com>\n---\n include/qemu/error-report.h | 1 -\n system/vl.c | 7 ++++++-\n tests/unit/test-error-report.c | 3 ++-\n util/error-report.c | 18 ++----------------\n util/log.c | 8 +++-----\n 5 files changed, 13 insertions(+), 24 deletions(-)", "diff": "diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h\nindex 3ae2357fda..c8000778ec 100644\n--- a/include/qemu/error-report.h\n+++ b/include/qemu/error-report.h\n@@ -70,7 +70,6 @@ void error_init(const char *argv0);\n fmt, ##__VA_ARGS__); \\\n })\n \n-extern bool message_with_timestamp;\n extern bool error_with_guestname;\n extern const char *error_guest_name;\n \ndiff --git a/system/vl.c b/system/vl.c\nindex d8676b3adf..4ef41df747 100644\n--- a/system/vl.c\n+++ b/system/vl.c\n@@ -26,6 +26,7 @@\n #include \"qemu/help-texts.h\"\n #include \"qemu/datadir.h\"\n #include \"qemu/units.h\"\n+#include \"qemu/message.h\"\n #include \"qemu/module.h\"\n #include \"qemu/target-info.h\"\n #include \"exec/cpu-common.h\"\n@@ -818,8 +819,12 @@ static void realtime_init(void)\n \n static void configure_msg(QemuOpts *opts)\n {\n- message_with_timestamp = qemu_opt_get_bool(opts, \"timestamp\", false);\n+ int flags = 0;\n+ if (qemu_opt_get_bool(opts, \"timestamp\", false)) {\n+ flags |= QMESSAGE_FORMAT_TIMESTAMP;\n+ }\n error_with_guestname = qemu_opt_get_bool(opts, \"guest-name\", false);\n+ qmessage_set_format(flags);\n }\n \n \ndiff --git a/tests/unit/test-error-report.c b/tests/unit/test-error-report.c\nindex a8532fc58f..9c63019694 100644\n--- a/tests/unit/test-error-report.c\n+++ b/tests/unit/test-error-report.c\n@@ -12,6 +12,7 @@\n \n #include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n+#include \"qemu/message.h\"\n \n static void\n test_error_report_simple(void)\n@@ -89,7 +90,7 @@ static void\n test_error_report_timestamp(void)\n {\n if (g_test_subprocess()) {\n- message_with_timestamp = true;\n+ qmessage_set_format(QMESSAGE_FORMAT_TIMESTAMP);\n warn_report(\"warn\");\n error_report(\"err\");\n return;\ndiff --git a/util/error-report.c b/util/error-report.c\nindex 516d323ffe..1ef65a7475 100644\n--- a/util/error-report.c\n+++ b/util/error-report.c\n@@ -13,6 +13,7 @@\n #include \"qemu/osdep.h\"\n #include \"monitor/monitor.h\"\n #include \"qemu/error-report.h\"\n+#include \"qemu/message.h\"\n \n /*\n * @report_type is the type of message: error, warning or\n@@ -24,8 +25,6 @@ typedef enum {\n REPORT_TYPE_INFO,\n } report_type;\n \n-/* Prepend timestamp to messages */\n-bool message_with_timestamp;\n bool error_with_guestname;\n const char *error_guest_name;\n \n@@ -207,13 +206,6 @@ static void print_loc(Monitor *cur)\n }\n }\n \n-static char *\n-real_time_iso8601(void)\n-{\n- g_autoptr(GDateTime) dt = g_date_time_new_now_utc();\n- return g_date_time_format_iso8601(dt);\n-}\n-\n /*\n * Print a message to current monitor if we have one, else to stderr.\n * @report_type is the type of message: error, warning or informational.\n@@ -225,7 +217,6 @@ G_GNUC_PRINTF(2, 0)\n static void vreport(report_type type, const char *fmt, va_list ap)\n {\n Monitor *cur = monitor_cur();\n- gchar *timestr;\n \n /*\n * When current monitor is QMP, messages must go to stderr\n@@ -236,12 +227,7 @@ static void vreport(report_type type, const char *fmt, va_list ap)\n }\n if (!cur) {\n qemu_flockfile(stderr);\n- }\n-\n- if (message_with_timestamp && !cur) {\n- timestr = real_time_iso8601();\n- fprintf(stderr, \"%s \", timestr);\n- g_free(timestr);\n+ qmessage_context_print(stderr);\n }\n \n /* Only prepend guest name if -msg guest-name and -name guest=... are set */\ndiff --git a/util/log.c b/util/log.c\nindex 1c9c7adb2d..b5aae22c83 100644\n--- a/util/log.c\n+++ b/util/log.c\n@@ -22,6 +22,7 @@\n #include \"qemu/range.h\"\n #include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n+#include \"qemu/message.h\"\n #include \"qemu/cutils.h\"\n #include \"trace/control.h\"\n #include \"qemu/thread.h\"\n@@ -148,11 +149,8 @@ FILE *qemu_log_trylock(void)\n FILE *qemu_log_trylock_with_context(void)\n {\n FILE *f = qemu_log_trylock();\n- if (f && log_depth == 1 && message_with_timestamp) {\n- g_autofree const char *timestr = NULL;\n- g_autoptr(GDateTime) dt = g_date_time_new_now_utc();\n- timestr = g_date_time_format_iso8601(dt);\n- fprintf(f, \"%s \", timestr);\n+ if (f && log_depth == 1) {\n+ qmessage_context_print(f);\n }\n return f;\n }\n", "prefixes": [ "v6", "23/27" ] }