From patchwork Tue Feb 27 23:07:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137401 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 357FD43C06; Wed, 28 Feb 2024 00:08:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4676740E32; Wed, 28 Feb 2024 00:07:57 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 4E740402BC for ; Wed, 28 Feb 2024 00:07:55 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 73E9120B74C1; Tue, 27 Feb 2024 15:07:54 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 73E9120B74C1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1709075274; bh=tF+Ep7ui/XAYsn6ovGZaiwiUxQGf+jwozLznYwyz6o4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Phj0eDqKjCV8TZ/nujIjg0RloxjaKZ912O+4dFJaONs1VglviwiSP3O94KcFeg5nA fQU8eEd2x2/4MwWgbXcC9XQ5EK5DgA+q4kYe746ZhU1MPVJsVEXg03O5FPoQPqY1bM I2/xAXEZpgscbmsOubrt6f5FIgk+6gXiRVFNhwjI= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Honnappa Nagarahalli , Vladimir Medvedkin , Tyler Retzlaff Subject: [PATCH 1/3] eal: add rte pure attribute macro Date: Tue, 27 Feb 2024 15:07:51 -0800 Message-Id: <1709075273-6885-2-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1709075273-6885-1-git-send-email-roretzla@linux.microsoft.com> References: <1709075273-6885-1-git-send-email-roretzla@linux.microsoft.com> 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 Add __rte_pure for __attribute__((pure)) to permit elimination of direct use of __attribute__((pure)) in other libs. Signed-off-by: Tyler Retzlaff --- lib/eal/include/rte_common.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h index 1cc1222..354b149 100644 --- a/lib/eal/include/rte_common.h +++ b/lib/eal/include/rte_common.h @@ -125,6 +125,15 @@ #define __rte_weak __attribute__((__weak__)) /** + * Mark a function to be pure. + */ +#ifdef RTE_TOOLCHAIN_MSVC +#define __rte_pure +#else +#define __rte_pure __attribute__((pure)) +#endif + +/** * Force symbol to be generated even if it appears to be unused. */ #ifdef RTE_TOOLCHAIN_MSVC From patchwork Tue Feb 27 23:07:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137402 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9034343C06; Wed, 28 Feb 2024 00:08:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 540E740EF1; Wed, 28 Feb 2024 00:07:58 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 46A39402AC for ; Wed, 28 Feb 2024 00:07:55 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 8029420B74C2; Tue, 27 Feb 2024 15:07:54 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 8029420B74C2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1709075274; bh=0jysnPQpU/7AXxEEhzqIqeE3qfr4Ck1++9wN/ZTslTc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=N8ipo/prT6SIfjT5ZJ5vv273rrBgavYWxpjwG00IWvfPEYs5io0EgVmw3IEuXxPN1 jjrrheivy4uOiXxzFk39a6SglIfKsiNkpKl5p/tt9IjxQSdoh6ct6AJFzNc/COZIsj oiPUSRORKYtzTmWWT/3/6ONAhi2YUXn99HOqa4Ag= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Honnappa Nagarahalli , Vladimir Medvedkin , Tyler Retzlaff Subject: [PATCH 2/3] lpm: use rte macro instead of GCC attribute Date: Tue, 27 Feb 2024 15:07:52 -0800 Message-Id: <1709075273-6885-3-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1709075273-6885-1-git-send-email-roretzla@linux.microsoft.com> References: <1709075273-6885-1-git-send-email-roretzla@linux.microsoft.com> 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 Use newly added __rte_pure macro from rte_common.h instead of directly using __attribute__((pure)). Signed-off-by: Tyler Retzlaff --- lib/lpm/rte_lpm.c | 4 ++-- lib/lpm/rte_lpm6.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/lpm/rte_lpm.c b/lib/lpm/rte_lpm.c index 9633d63..a5c9e7c 100644 --- a/lib/lpm/rte_lpm.c +++ b/lib/lpm/rte_lpm.c @@ -85,7 +85,7 @@ struct __rte_lpm { * depth (IN) : range = 1 - 32 * mask (OUT) : 32bit mask */ -static uint32_t __attribute__((pure)) +static uint32_t __rte_pure depth_to_mask(uint8_t depth) { VERIFY_DEPTH(depth); @@ -99,7 +99,7 @@ static uint32_t __attribute__((pure)) /* * Converts given depth value to its corresponding range value. */ -static uint32_t __attribute__((pure)) +static uint32_t __rte_pure depth_to_range(uint8_t depth) { VERIFY_DEPTH(depth); diff --git a/lib/lpm/rte_lpm6.c b/lib/lpm/rte_lpm6.c index 271bc48..2bdd540 100644 --- a/lib/lpm/rte_lpm6.c +++ b/lib/lpm/rte_lpm6.c @@ -1127,7 +1127,7 @@ struct rte_lpm6 * * Convert a depth to a one byte long mask * Example: 4 will be converted to 0xF0 */ -static uint8_t __attribute__((pure)) +static uint8_t __rte_pure depth_to_mask_1b(uint8_t depth) { /* To calculate a mask start with a 1 on the left hand side and right From patchwork Tue Feb 27 23:07:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137403 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3210E43C06; Wed, 28 Feb 2024 00:08:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8909F41104; Wed, 28 Feb 2024 00:07:59 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 65F0B402D4 for ; Wed, 28 Feb 2024 00:07:55 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 8CCA220B74C3; Tue, 27 Feb 2024 15:07:54 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 8CCA220B74C3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1709075274; bh=eYYzl0tqb1eoHFH1DlTVEETx+wTNy+66Gvmhrq06Qhw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=chYGJuJjpLulGIrZdZUps8xLOE2SJOxXlgD491U7Xm2oPerjrUA0DNqlzYyJYMy+0 KE6mmfduBw0zWOES35pEW3n5/S0j86P6Dne3EgQNvgygtrc++hRq/bDFDT6KjlrttT 6wLV2452Ygus5a5jfZTl5gxusgl8kBzXQDfDyJCI= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Honnappa Nagarahalli , Vladimir Medvedkin , Tyler Retzlaff Subject: [PATCH 3/3] rcu: use rte macro instead of GCC attribute Date: Tue, 27 Feb 2024 15:07:53 -0800 Message-Id: <1709075273-6885-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1709075273-6885-1-git-send-email-roretzla@linux.microsoft.com> References: <1709075273-6885-1-git-send-email-roretzla@linux.microsoft.com> 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 Use existing __rte_pure macro from rte_common.h instead of directly using __attribute__((__may_alias__)). Signed-off-by: Tyler Retzlaff Reviewed-by: Morten Brørup --- lib/rcu/rcu_qsbr_pvt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rcu/rcu_qsbr_pvt.h b/lib/rcu/rcu_qsbr_pvt.h index 5fd7ca2..39b0d50 100644 --- a/lib/rcu/rcu_qsbr_pvt.h +++ b/lib/rcu/rcu_qsbr_pvt.h @@ -53,6 +53,6 @@ struct rte_rcu_qsbr_dq { typedef struct { uint64_t token; /**< Token */ uint8_t elem[0]; /**< Pointer to user element */ -} __attribute__((__may_alias__)) __rte_rcu_qsbr_dq_elem_t; +} __rte_may_alias __rte_rcu_qsbr_dq_elem_t; #endif /* _RTE_RCU_QSBR_PVT_H_ */