From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.tetrasec.net (mx1.tetrasec.net [74.117.190.25]) by dpdk.org (Postfix) with ESMTP id 73FD358C6 for ; Mon, 11 Mar 2019 18:37:46 +0100 (CET) Received: from mx1.tetrasec.net (mail.local [127.0.0.1]) by mx1.tetrasec.net (Postfix) with ESMTP id EE07D9E1F68; Mon, 11 Mar 2019 17:37:45 +0000 (UTC) Received: from ncopa-desktop.lan (67.63.200.37.customer.cdi.no [37.200.63.67]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: n@tanael.org) by mx1.tetrasec.net (Postfix) with ESMTPSA id 1FB6A9E1F70; Mon, 11 Mar 2019 17:37:44 +0000 (UTC) From: Natanael Copa To: dev@dpdk.org Cc: Natanael Copa Date: Mon, 11 Mar 2019 18:37:02 +0100 Message-Id: <20190311173702.24471-16-ncopa@alpinelinux.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190311173702.24471-1-ncopa@alpinelinux.org> References: <20190311173702.24471-1-ncopa@alpinelinux.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: [dpdk-dev] [PATCH 15/15] eal/linux: use gettid(2) for debug message in sigbus_handler X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Mar 2019 17:37:47 -0000 There is no guarantee that pthread_self() returns the thread id or that pthread_t is an integer. Use gettid(2) to get the kernel thread id instead. This fixes the following warning when building with musl libc: ../lib/librte_eal/linuxapp/eal/eal_dev.c: In function 'sigbus_handler': ../lib/librte_eal/linuxapp/eal/eal_dev.c:70:3: warning: cast from pointer= to integer of different size [-Wpointer-to-int-cast] (int)pthread_self(), info->si_addr); ^ Signed-off-by: Natanael Copa --- This is not reallly a compile error, but the warning looked a bit scary, = and code looked wrong, so I fixed it. lib/librte_eal/linuxapp/eal/eal_dev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_dev.c b/lib/librte_eal/linux= app/eal/eal_dev.c index 2830c8687..9ad6650cf 100644 --- a/lib/librte_eal/linuxapp/eal/eal_dev.c +++ b/lib/librte_eal/linuxapp/eal/eal_dev.c @@ -7,6 +7,7 @@ #include #include #include +#include #include =20 #include @@ -30,6 +31,11 @@ static bool hotplug_handle; #define EAL_UEV_MSG_LEN 4096 #define EAL_UEV_MSG_ELEM_LEN 128 =20 +#if !defined(__GLIBC__) +#include +#define gettid() syscall(SYS_gettid) +#endif + /* * spinlock for device hot-unplug failure handling. If it try to access = bus or * device, such as handle sigbus on bus or handle memory failure for dev= ice @@ -67,7 +73,7 @@ static void sigbus_handler(int signum, siginfo_t *info, int ret; =20 RTE_LOG(DEBUG, EAL, "Thread[%d] catch SIGBUS, fault address:%p\n", - (int)pthread_self(), info->si_addr); + (int)gettid(), info->si_addr); =20 rte_spinlock_lock(&failure_handle_lock); ret =3D rte_bus_sigbus_handler(info->si_addr); --=20 2.21.0