From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ncopa@alpinelinux.org>
Received: from mx1.tetrasec.net (mx1.tetrasec.net [74.117.190.25])
 by dpdk.org (Postfix) with ESMTP id 73FD358C6
 for <dev@dpdk.org>; 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 <ncopa@alpinelinux.org>
To: dev@dpdk.org
Cc: Natanael Copa <ncopa@alpinelinux.org>
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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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 <ncopa@alpinelinux.org>
---

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 <fcntl.h>
 #include <signal.h>
 #include <sys/socket.h>
+#include <sys/types.h>
 #include <linux/netlink.h>
=20
 #include <rte_string_fns.h>
@@ -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 <sys/syscall.h>
+#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