From nobody Mon Sep 8 17:00:51 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1755635380; cv=none; d=zohomail.com; s=zohoarc; b=ZXQb21CDkftoW9b2GKf3eEb+fy91t27TH66k5Ap+/i+e2hMykbo+RyQTwpK3f0JJ7NZTEL3GjyES16Gok2ftVZ4UzmZQJK4HZZEZYe6YQx/+QhVJMcjxKzRlJyBI2HgdmCELlqVDqWVJ20+nEeRj8Wxe3Rj2RNuF7NusglJg1WA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755635380; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KWv1LCGb2luSLYjm34xdKBp0Idn163q/hiK8ciVEkk4=; b=EFL80qjfh0/Od7IF+TxwEW2JzmbGAJtlaXNyQs5cKfUBEejpaa/U7YlsbOjOocrbT6ob2iC2QU6/3+dbpK20JtA/mxgf8mbLjy0BAMkSJrOZhwsyV7OBActoso6y0pj/1dB3LyqvMCQ+muLjhv9Nj+9opwmuizsoluZPWjx/dmA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1755635380631213.48400619883682; Tue, 19 Aug 2025 13:29:40 -0700 (PDT) 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 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 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) 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= X-MC-Unique: puUrYAy2PeaF1LFbMOBsxQ-1 X-Mimecast-MFC-AGG-ID: puUrYAy2PeaF1LFbMOBsxQ_1755635259 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: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755635381893124100 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=C3=A9 --- 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); =20 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() =3D=3D thread->tid; } + +uint64_t qemu_thread_get_id(void) +{ + return (uint64_t)GetCurrentThreadId(); +} --=20 2.50.1