From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8C40D45C9B; Tue, 12 Nov 2024 23:03:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 19DA6402B9; Tue, 12 Nov 2024 23:03:07 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 9BAAB4021E for ; Tue, 12 Nov 2024 23:03:05 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1213) id A31FE20BEBC0; Tue, 12 Nov 2024 14:03:04 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A31FE20BEBC0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1731448984; bh=zQfmy9WlH4v6JXUVwXkurwuOjfqvnm/Ye1nLE3sAi8A=; h=From:To:Cc:Subject:Date:From; b=p0QVzIuhXl/4ySDa4sA+z11c00hYJXRobHynpxN3MzO9RejZkw/wb6XHu2SvJKa9s fA3wo0AhnuSDZqAXlHeZTXQldMk9uuUR75EXpYHFKwJ3TjHzzhl0uMWKggNMjKJAnj oNkcfNi2OwKKsalxvnQW2M9LXFYIFLNxxWEa3rMc= From: Andre Muezerie To: Honnappa Nagarahalli Cc: dev@dpdk.org, Andre Muezerie Subject: [PATCH] rcu: shift 64-bit constant to avoid implicit 32 to 64 bit conversion Date: Tue, 12 Nov 2024 14:02:39 -0800 Message-Id: <1731448959-18046-1-git-send-email-andremue@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org ../lib/rcu/rte_rcu_qsbr.c(101): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) ../lib/rcu/rte_rcu_qsbr.c(107): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) ../lib/rcu/rte_rcu_qsbr.c(145): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) These warnings are being issued by the MSVC compiler. Since the result is being stored in a variable of type uint64_t, it makes sense to shift a 64-bit number instead of shifting a 32-bit number and then having the compiler to convert the result implicitly to 64 bits. UINT64_C was used in the fix as it is the portable way to define a 64-bit constant (ULL suffix is architecture dependent). Signed-off-by: Andre Muezerie --- lib/rcu/rte_rcu_qsbr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/rcu/rte_rcu_qsbr.c b/lib/rcu/rte_rcu_qsbr.c index 09a14a15f1..1d19d1dc95 100644 --- a/lib/rcu/rte_rcu_qsbr.c +++ b/lib/rcu/rte_rcu_qsbr.c @@ -99,12 +99,12 @@ rte_rcu_qsbr_thread_register(struct rte_rcu_qsbr *v, unsigned int thread_id) /* Add the thread to the bitmap of registered threads */ old_bmap = rte_atomic_fetch_or_explicit(__RTE_QSBR_THRID_ARRAY_ELM(v, i), - (1UL << id), rte_memory_order_release); + (UINT64_C(1) << id), rte_memory_order_release); /* Increment the number of threads registered only if the thread was not already * registered */ - if (!(old_bmap & (1UL << id))) + if (!(old_bmap & (UINT64_C(1) << id))) rte_atomic_fetch_add_explicit(&v->num_threads, 1, rte_memory_order_relaxed); return 0; @@ -137,12 +137,12 @@ rte_rcu_qsbr_thread_unregister(struct rte_rcu_qsbr *v, unsigned int thread_id) * reporting threads. */ old_bmap = rte_atomic_fetch_and_explicit(__RTE_QSBR_THRID_ARRAY_ELM(v, i), - ~(1UL << id), rte_memory_order_release); + ~(UINT64_C(1) << id), rte_memory_order_release); /* Decrement the number of threads unregistered only if the thread was not already * unregistered */ - if (old_bmap & (1UL << id)) + if (old_bmap & (UINT64_C(1) << id)) rte_atomic_fetch_sub_explicit(&v->num_threads, 1, rte_memory_order_relaxed); return 0; @@ -198,7 +198,7 @@ rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v) t = rte_ctz64(bmap); fprintf(f, "%u ", id + t); - bmap &= ~(1UL << t); + bmap &= ~(UINT64_C(1) << t); } } @@ -225,7 +225,7 @@ rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v) rte_atomic_load_explicit( &v->qsbr_cnt[id + t].lock_cnt, rte_memory_order_relaxed)); - bmap &= ~(1UL << t); + bmap &= ~(UINT64_C(1) << t); } } -- 2.34.1