From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ADB26CA0EE6 for ; Tue, 19 Aug 2025 20:29:40 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uoSvs-00046A-F1; Tue, 19 Aug 2025 16:27:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uoSvq-00045l-LH for qemu-devel@nongnu.org; Tue, 19 Aug 2025 16:27:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uoSvp-0006Sb-Az for qemu-devel@nongnu.org; Tue, 19 Aug 2025 16:27:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755635264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KWv1LCGb2luSLYjm34xdKBp0Idn163q/hiK8ciVEkk4=; b=RI+sm+7My4Flt7IZCQMpgeR+jAH947UbwMORIDDAJLg6LFclKcC/XMvO0CSmx8dI43m47o ulOu3hBgCWlIPgq2h0GyCr+YPc1H8bQJJPzyn9lKsmBXMrSRscrQseysTICiQcwvKnxJc1 sIZUDga5aBIjUtqwKCJogpcuz9Hemfg= Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-382-puUrYAy2PeaF1LFbMOBsxQ-1; Tue, 19 Aug 2025 16:27:40 -0400 X-MC-Unique: puUrYAy2PeaF1LFbMOBsxQ-1 X-Mimecast-MFC-AGG-ID: puUrYAy2PeaF1LFbMOBsxQ_1755635259 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E25E41956095; Tue, 19 Aug 2025 20:27:38 +0000 (UTC) Received: from toolbx.redhat.com (unknown [10.42.28.237]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 738AF19560B0; Tue, 19 Aug 2025 20:27:34 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: Manos Pitsidianakis , Hanna Reitz , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Kevin Wolf , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , "Dr. David Alan Gilbert" , devel@lists.libvirt.org, Stefan Weil , qemu-block@nongnu.org, Paolo Bonzini , Markus Armbruster , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 05/12] util: add API to fetch the current thread id Date: Tue, 19 Aug 2025 21:27:01 +0100 Message-ID: <20250819202708.1185594-6-berrange@redhat.com> In-Reply-To: <20250819202708.1185594-1-berrange@redhat.com> References: <20250819202708.1185594-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org For logging it is useful to include the current thread id. On POSIX there is no standard API for this, so try the Linux gettid() syscall preferentially, otherwise fallback to casting the result of thread_self() to an integer. Signed-off-by: Daniel P. Berrangé --- include/qemu/thread.h | 1 + util/qemu-thread-posix.c | 11 +++++++++++ util/qemu-thread-win32.c | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/include/qemu/thread.h b/include/qemu/thread.h index 3a286bb3ef..96eee82679 100644 --- a/include/qemu/thread.h +++ b/include/qemu/thread.h @@ -215,6 +215,7 @@ void *qemu_thread_join(QemuThread *thread); void qemu_thread_get_self(QemuThread *thread); bool qemu_thread_is_self(QemuThread *thread); G_NORETURN void qemu_thread_exit(void *retval); +uint64_t qemu_thread_get_id(void); struct Notifier; /** diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index 121d7ed69b..f240a93632 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -532,3 +532,14 @@ void *qemu_thread_join(QemuThread *thread) } return ret; } + +uint64_t qemu_thread_get_id(void) +{ +#ifdef CONFIG_GETTID + return (uint64_t)gettid(); +#elif defined(SYS_gettid) + return (uint64_t)syscall(SYS_gettid); +#else + return (uint64_t)pthread_self(); +#endif +} diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c index 5e6ca0c12f..f6956717b2 100644 --- a/util/qemu-thread-win32.c +++ b/util/qemu-thread-win32.c @@ -412,3 +412,8 @@ bool qemu_thread_is_self(QemuThread *thread) { return GetCurrentThreadId() == thread->tid; } + +uint64_t qemu_thread_get_id(void) +{ + return (uint64_t)GetCurrentThreadId(); +} -- 2.50.1