From patchwork Thu Jan 18 16:50:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135961 X-Patchwork-Delegate: david.marchand@redhat.com 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 739F0438F4; Thu, 18 Jan 2024 17:53:34 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 45A3C42DC7; Thu, 18 Jan 2024 17:53:29 +0100 (CET) Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by mails.dpdk.org (Postfix) with ESMTP id 507E940285 for ; Thu, 18 Jan 2024 17:53:27 +0100 (CET) Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1d71207524dso3084365ad.1 for ; Thu, 18 Jan 2024 08:53:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705596806; x=1706201606; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ge5cWfhUFtdaPtGMR6xOIBTcz+rPisfRTiZR7MiWozM=; b=kInSZMIzCdRUXttTMgnVpxAWH/r/V4nFrWd40FZ71OHKZelqo9yMIS81lJ936iPf2w ykNOHTLoWZvp8qLabZxB8O/px528F3/xgHTRJ9gJtBpWi0qhZTypJF0tNe6n1HVwTmLA Nw9ScbvVK8gIuxg8Jv76/MEiAfXGo2q/o1q/Z9C94h0wUNokqsS1jegsCC8IkaWYF6r0 a+Kqc3Vhp7GgsYV3rglcIKV1wbKpbATiujx9cu0VjPOUQbqsKJDOItU8+VpYTIZyXdsE 3cbqmpIuaYQIwRlAe/tPnUmOAuVS7rTTdRXTcxBdj+kz3Ts3tvp6qjpx3lCSCodeGpS7 dPPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705596806; x=1706201606; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ge5cWfhUFtdaPtGMR6xOIBTcz+rPisfRTiZR7MiWozM=; b=CqBcBI5KddyyRBrDpAub3kkxsH22m/FgqUEpO69ktVQhrdraEz4nDwGTqtKvjkCw5b Q/RQf01ilP+6JNIyFNCoh4FKMUDY+7n3jq6IuRk48vfhSG/metlybbAiMgI/PD6Fx09M J7FDj4KJxIpdFMJEnRnFDK1dnvV3P+GADPmOfOrAWyFQgntDShJnQ16xlbpAJmLeJ/Bx OvqOsVoEc7MWijPzt4qDo0yMDwc72A/ckUdNQkXtKfozUAD9z5RVRJnzb+QkwDSQURkJ gIo8yyu2OihZEvfvgiJUeTjSu7EBGIflU/JyurgUa4daZVXMaKmHsmHjYUel17ItSoG0 kihw== X-Gm-Message-State: AOJu0YzHb7vpfmEFD+of5PmHIaelPGpwjesWwUtDa6a29GqJs6BiU4Ps L3rSlzFZNkQTon212Y6TEjpSiuu8CKuV7l7elB/C/HgHuPAtpINTe06RFgYTQlDgDpems0f99lp XC2g= X-Google-Smtp-Source: AGHT+IHt2QbdxzccasfOwh+fvJIAg1hwgtQNcRa3FU7BguxVAL7NbLGEczFQUSg3zfUo4JcOwSjY4A== X-Received: by 2002:a17:903:22d1:b0:1d4:e1f1:ef69 with SMTP id y17-20020a17090322d100b001d4e1f1ef69mr1438435plg.104.1705596806522; Thu, 18 Jan 2024 08:53:26 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id u2-20020a170903304200b001d706912d1esm1427980pla.225.2024.01.18.08.53.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 08:53:26 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Konstantin Ananyev , Andrew Rybchenko Subject: [PATCH v5 1/6] eal: introduce RTE_MIN_T() and RTE_MAX_T() macros Date: Thu, 18 Jan 2024 08:50:56 -0800 Message-ID: <20240118165315.63959-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240118165315.63959-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240118165315.63959-1-stephen@networkplumber.org> MIME-Version: 1.0 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 These macros work like RTE_MIN and RTE_MAX but take an explicit type. Necessary when being used in static assertions since RTE_MIN and RTE_MAX use temporary variables which confuses compilers constant expression checks. These macros could also be useful in other scenarios when bounded range is useful. Naming is chosen to be similar to Linux kernel conventions. Signed-off-by: Stephen Hemminger Acked-by: Konstantin Ananyev Acked-by: Andrew Rybchenko Acked-by: Chengwen Feng --- lib/eal/include/rte_common.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h index c1ba32d00e47..33680e818bfb 100644 --- a/lib/eal/include/rte_common.h +++ b/lib/eal/include/rte_common.h @@ -585,6 +585,14 @@ __extension__ typedef uint64_t RTE_MARKER64[0]; _a < _b ? _a : _b; \ }) +/** + * Macro to return the minimum of two numbers + * does not use temporarys so not safe if a or b is expression + * but is guaranteed to be constant for use in static_assert() + */ +#define RTE_MIN_T(a, b, t) \ + ((t)(a) < (t)(b) ? (t)(a) : (t)(b)) + /** * Macro to return the maximum of two numbers */ @@ -595,6 +603,14 @@ __extension__ typedef uint64_t RTE_MARKER64[0]; _a > _b ? _a : _b; \ }) +/** + * Macro to return the maxiimum of two numbers + * does not use temporarys so not safe if a or b is expression + * but is guaranteed to be constant for use in static_assert() + */ +#define RTE_MAX_T(a, b, t) \ + ((t)(a) > (t)(b) ? (t)(a) : (t)(b)) + /*********** Other general functions / macros ********/ #ifndef offsetof From patchwork Thu Jan 18 16:50:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135962 X-Patchwork-Delegate: david.marchand@redhat.com 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 A8C5C438F4; Thu, 18 Jan 2024 17:53:41 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 66E6942DDC; Thu, 18 Jan 2024 17:53:30 +0100 (CET) Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by mails.dpdk.org (Postfix) with ESMTP id 5136B427D9 for ; Thu, 18 Jan 2024 17:53:28 +0100 (CET) Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1d5f1e0e32eso20377455ad.3 for ; Thu, 18 Jan 2024 08:53:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705596807; x=1706201607; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aMDg9N34JC+VDEXhQ4uAL2B6yc9fTDRoXXxri4Sih5g=; b=stzFsu6rHT/rllEA4lj6S8i1tDg5zVRQfRmdlY+n4uvSKvZcywnWneD7J22SHqv+LW djKXP9gpbUTui1PLPdlji4xZo1+c2MrWGZXrzS6hOMjaUe3mSchbZtRv+WCdYBrb/7no hC8wdBfGtiC7o9pf77q6IDhyIE90vOktqIXPgmPPemDP9UDLF4hWkVersCBKTIvplb0a 5UnWmKMeipeejGd58ZvEKde/1JuJsEnNAy5TxwwXhASltREj1lwd9h5vOuvnzQRPWY/2 ogQDaSa9y54x3HsMI71N7s+daBsExYtB5+8EyKD/UzBPp8JtqTyQZK2BtkHV7UsmZbnx nb5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705596807; x=1706201607; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aMDg9N34JC+VDEXhQ4uAL2B6yc9fTDRoXXxri4Sih5g=; b=PouiwDSOd88QpdgNNrqCjjApfjbXyxs1zURjwNL8zdP6mG40AdFxoqkoGdWwHnbcMR 2AygyW7jixbhqpo3N95dslkG4Jq5pfBOPRClpl6jiBA7umtF/j1U9sq/goUXPuk0eydG glwlm/JtMfggseDjRL4nKByPYEP9pOje6WtzNtXjNa7Wi/Sp5C0Er6LQ9jfUyEH8NXEV ER1azJUR8bTmwuWiFUlw5kcqHKMsu3ZjUHOoVK8EUovUkZ2sthWWF2gaKOmS7GVizSOA h5lvptIRKoMqXk8993R7nyr2TzaBSTpKt0PwVWHVwk+j6OwbCnPZTRfd45VV46Wz5y9M GtEg== X-Gm-Message-State: AOJu0Yyn7+8iujYnH9isMf+eikzCmHhL44gYT9C+reoQM+9T3Op+kC6Z QNe5p/835bK6tE6C6q3ycM/t1KAUwPniQ2KB2i+vzdX6LGanGP8VOPZXwW28XOtD3h9ftRq0tSh Wpus= X-Google-Smtp-Source: AGHT+IGJQ/AGdCH9sMbldmKNnv+F1rLd7y7NyFynVlAE6KJdd6HhoXur+0DdVKsJqASlz16J6G0x4A== X-Received: by 2002:a17:902:aa08:b0:1d5:ea53:595f with SMTP id be8-20020a170902aa0800b001d5ea53595fmr812587plb.60.1705596807467; Thu, 18 Jan 2024 08:53:27 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id u2-20020a170903304200b001d706912d1esm1427980pla.225.2024.01.18.08.53.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 08:53:27 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , liang.j.ma@intel.com, Bruce Richardson , Tyler Retzlaff , Andrew Rybchenko , Liang Ma , Peter Mccarthy , =?utf-8?q?Se=C3=A1n_Harte?= Subject: [PATCH v5 2/6] event/opdl: fix non-constant compile time assertion Date: Thu, 18 Jan 2024 08:50:57 -0800 Message-ID: <20240118165315.63959-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240118165315.63959-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240118165315.63959-1-stephen@networkplumber.org> MIME-Version: 1.0 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 RTE_BUILD_BUG_ON() was being used with a non-constant value. The inline function rte_is_power_of_2() is not constant since inline expansion happens later in the compile process. Replace it with the macro which will be constant. Fixes: 4236ce9bf5bf ("event/opdl: add OPDL ring infrastructure library") Cc: liang.j.ma@intel.com Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson Acked-by: Tyler Retzlaff Acked-by: Andrew Rybchenko --- drivers/event/opdl/opdl_ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/event/opdl/opdl_ring.c b/drivers/event/opdl/opdl_ring.c index 69392b56bbec..da5ea02d1928 100644 --- a/drivers/event/opdl/opdl_ring.c +++ b/drivers/event/opdl/opdl_ring.c @@ -910,7 +910,7 @@ opdl_ring_create(const char *name, uint32_t num_slots, uint32_t slot_size, RTE_CACHE_LINE_MASK) != 0); RTE_BUILD_BUG_ON((offsetof(struct opdl_ring, slots) & RTE_CACHE_LINE_MASK) != 0); - RTE_BUILD_BUG_ON(!rte_is_power_of_2(OPDL_DISCLAIMS_PER_LCORE)); + RTE_BUILD_BUG_ON(!RTE_IS_POWER_OF_2(OPDL_DISCLAIMS_PER_LCORE)); /* Parameter checking */ if (name == NULL) { From patchwork Thu Jan 18 16:50:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135963 X-Patchwork-Delegate: david.marchand@redhat.com 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 A2C5B438F4; Thu, 18 Jan 2024 17:53:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8777042E15; Thu, 18 Jan 2024 17:53:31 +0100 (CET) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mails.dpdk.org (Postfix) with ESMTP id EDFCC427E2 for ; Thu, 18 Jan 2024 17:53:28 +0100 (CET) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-1d711d7a940so4820815ad.1 for ; Thu, 18 Jan 2024 08:53:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705596808; x=1706201608; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VwCXuD6LL5CZfaCkCqMGq4B76F8YIPv+C70B4dSaH7A=; b=WMkewp4OrfV8SNBhcamNw8s6U9tn/TxhRmr9wqzn3Qhp63BN5xVGvOwsXho4Ec643x nIZtoPx0UnMpC0wm+PUl8sHUXCt3XyOwtskIEIsQJWYCU/1chUYwenOdM2frUUFJvZqY GoiCvo0MYUAiEPRmZ9jhSU6Booa9P1OkC1Y75gM10WbzK/i7NwYTVSUqExVIzTH/VWQA +Y9dF4yLvevuAqgrTIB7oZBwLLt+jAP6CsAhobTg3gWp8K81jS8GdZFEhTOWA58fNs+u WPE5inBSNPDlNg3/zmZFHP5t45bsyMWSO//qZc1PcgqGOa5IZpamxT1Sr9brSfSTXeUc ZFIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705596808; x=1706201608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VwCXuD6LL5CZfaCkCqMGq4B76F8YIPv+C70B4dSaH7A=; b=wxQyDKuynEUwSSN1kx1h4OREDONlyQZVSNSeReycGqMtS6eL8nBV0+JMAA00BPKEnJ mZHJUl9sc+buZoyxR2GEwhPdtPwLTJmfXTx/sMFqHZN1rkuO9FqXhtb+hxM4LoZwv2tW IOo/XJUNe8dXbXazZJKcElFoZ8VTIj/spYlgMX0TnD+BpCJVS8lmsqxl03QRrjdVw3WA 0b9OFV2TfIpQ5kA6ewCK1HuwM1sUD8qNYviVa8c6pNcIc/IIWqhHBLQtZg+/lWzGaXMJ 8wsosKlSZDTfu86XsuC9COCzzWa0li8CMIax2KYv3Fcpd241ZNzzC4I3j2rYSw5MSF1K f+yQ== X-Gm-Message-State: AOJu0YyN+cPEunbhdKgeCWKKdA8SEo6DKOPBsZw1AeJDIa4UMh5S9C8s FleFZ/0tonSluaoA7LxkkfNllzaCLDdFsf0bPQJShvV1jQvNMnqEcn7d+4DhspXx8K75aIJq8i6 eq5I= X-Google-Smtp-Source: AGHT+IGYFuXvqA6Zbm+Vl0Xf+GBTOubuhdhuEO7/UFnmjlPYYA0OddjvaJIOGnv7ClGj8r0L3AAZXA== X-Received: by 2002:a17:902:dacc:b0:1d4:69a5:edbb with SMTP id q12-20020a170902dacc00b001d469a5edbbmr1249518plx.48.1705596808252; Thu, 18 Jan 2024 08:53:28 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id u2-20020a170903304200b001d706912d1esm1427980pla.225.2024.01.18.08.53.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 08:53:27 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Tyler Retzlaff , Andrew Rybchenko , Ivan Malov Subject: [PATCH v5 3/6] net/sfc: fix non-constant expression in RTE_BUILD_BUG_ON() Date: Thu, 18 Jan 2024 08:50:58 -0800 Message-ID: <20240118165315.63959-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240118165315.63959-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240118165315.63959-1-stephen@networkplumber.org> MIME-Version: 1.0 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 The macro RTE_MIN has some hidden assignments to provide type safety which means the statement can not be fully evaluated in first pass of compiler. Replace RTE_MIN() with equivalent macro. Fixes: 4f936666d790 ("net/sfc: support TSO for EF100 native datapath") Signed-off-by: Stephen Hemminger Acked-by: Tyler Retzlaff Reviewed-by: Andrew Rybchenko --- drivers/net/sfc/sfc_ef100_tx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/sfc/sfc_ef100_tx.c b/drivers/net/sfc/sfc_ef100_tx.c index 1b6374775f07..c88ab964547e 100644 --- a/drivers/net/sfc/sfc_ef100_tx.c +++ b/drivers/net/sfc/sfc_ef100_tx.c @@ -563,8 +563,7 @@ sfc_ef100_tx_pkt_descs_max(const struct rte_mbuf *m) * (split into many Tx descriptors). */ RTE_BUILD_BUG_ON(SFC_EF100_TX_SEND_DESC_LEN_MAX < - RTE_MIN((unsigned int)EFX_MAC_PDU_MAX, - SFC_MBUF_SEG_LEN_MAX)); + RTE_MIN_T(EFX_MAC_PDU_MAX, SFC_MBUF_SEG_LEN_MAX, uint32_t)); } if (m->ol_flags & sfc_dp_mport_override) { From patchwork Thu Jan 18 16:50:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135964 X-Patchwork-Delegate: david.marchand@redhat.com 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 B13BD438F4; Thu, 18 Jan 2024 17:53:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C25DA42E18; Thu, 18 Jan 2024 17:53:32 +0100 (CET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by mails.dpdk.org (Postfix) with ESMTP id C493A42DD0 for ; Thu, 18 Jan 2024 17:53:29 +0100 (CET) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1d6f2443b06so14193495ad.2 for ; Thu, 18 Jan 2024 08:53:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705596809; x=1706201609; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9qVpor/C8jYPDUZeUkQwv6mKRDDZAs4KcMRWuyLcbxg=; b=lyX4ql6hmh2H7D5gC3pnFskGeG63WfRqmmtrSoWmbzlILYIiJzobCE3r3Kr1pXixm4 1sod/zusEtr4TCHxUyMvIvd0EIWYKbJ8ZnG5pCOM6J+0jRUSaCeluSg7KOCIFaVtFc7W LeW+26/nU6A+prhY10BfNYNaNpxw6HcFWP/d/xxnIBIiuotI8aNOH9xw3IMpeQ439XKb njPX98bsS8mixTDXrhnvBcoe8Q5Ux6kGHwQE6jn6B/GJZutkXXEMUTXIUibHdlMLBqKE vNdsJQcDrYqK9V0HHHv4cFF5WY9q50T1THkhgXfZns9a7UN4MNijcQouk+CgUoKQ9s1t jM8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705596809; x=1706201609; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9qVpor/C8jYPDUZeUkQwv6mKRDDZAs4KcMRWuyLcbxg=; b=KN06fPfU/ObS+KwT92PeOwwp0eQ7gCcKGDF8SX/omib0K3CSFqcSDm/HWsSlWkFT2U xmxfz+bARrfYZuQz6WSK8tSGZ9RNdQOGrWleQrgLYxK7Mg+4emGCma7fyK5Iq51ci9cs /PEOIjVxP668oSNN2JkHDlzP8Dze69QIXS5pLsFmpyLUrpQOPhqUSPRahP77DmN3duNQ pWUWeg6tO/Cu2++YvEccKe9JrXkxKdDzXmnEscjJkZ/BHKIprM8Hha/mQmbW7UCk0UZa xdZoaDWyX9jaXsjQJQwSimvtNBxvlc2m8Uz4hUeMjk4AKniRhL/Fqmalz7/rcRrAcm4T yeJQ== X-Gm-Message-State: AOJu0YwDwg3/ALV3bbPCgP+FibCeWAjrHYS4xGM5ChPIutQEOVrUKvtK 0nEFhzELOt9zYVgu+ysPt6GyS+mIMGpQdTdCgRoO39zbMCLibZPXMxklXQIG6RMt4T1RDPX/ppt koVU= X-Google-Smtp-Source: AGHT+IFsoWW8VwmrHINdj31mZNIIGtrnPI0w9YunUz6JNXYkNEtTETh8+/s2yKBfzKga/Tdf7izM3A== X-Received: by 2002:a17:902:bb01:b0:1d6:f493:b219 with SMTP id im1-20020a170902bb0100b001d6f493b219mr986428plb.137.1705596809021; Thu, 18 Jan 2024 08:53:29 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id u2-20020a170903304200b001d706912d1esm1427980pla.225.2024.01.18.08.53.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 08:53:28 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Bruce Richardson , Konstantin Ananyev , Yuying Zhang , Beilei Xing , Konstantin Ananyev Subject: [PATCH v5 4/6] net/i40e: avoid using const variable in assertion Date: Thu, 18 Jan 2024 08:50:59 -0800 Message-ID: <20240118165315.63959-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240118165315.63959-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240118165315.63959-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Clang does not allow const variable in a static_assert expression. Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson Acked-by: Konstantin Ananyev --- drivers/net/i40e/i40e_ethdev.h | 1 + drivers/net/i40e/i40e_rxtx_vec_sse.c | 10 ++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h index 1bbe7ad37600..445e1c0b381f 100644 --- a/drivers/net/i40e/i40e_ethdev.h +++ b/drivers/net/i40e/i40e_ethdev.h @@ -278,6 +278,7 @@ enum i40e_flxpld_layer_idx { #define I40E_DEFAULT_DCB_APP_PRIO 3 #define I40E_FDIR_PRG_PKT_CNT 128 +#define I40E_FDIR_ID_BIT_SHIFT 13 /* * Struct to store flow created. diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c index 9200a23ff662..2d4480a7651b 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_sse.c +++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c @@ -143,10 +143,9 @@ descs_to_fdir_32b(volatile union i40e_rx_desc *rxdp, struct rte_mbuf **rx_pkt) /* convert fdir_id_mask into a single bit, then shift as required for * correct location in the mbuf->olflags */ - const uint32_t FDIR_ID_BIT_SHIFT = 13; - RTE_BUILD_BUG_ON(RTE_MBUF_F_RX_FDIR_ID != (1 << FDIR_ID_BIT_SHIFT)); + RTE_BUILD_BUG_ON(RTE_MBUF_F_RX_FDIR_ID != (1 << I40E_FDIR_ID_BIT_SHIFT)); v_fd_id_mask = _mm_srli_epi32(v_fd_id_mask, 31); - v_fd_id_mask = _mm_slli_epi32(v_fd_id_mask, FDIR_ID_BIT_SHIFT); + v_fd_id_mask = _mm_slli_epi32(v_fd_id_mask, I40E_FDIR_ID_BIT_SHIFT); /* The returned value must be combined into each mbuf. This is already * being done for RSS and VLAN mbuf olflags, so return bits to OR in. @@ -205,10 +204,9 @@ descs_to_fdir_16b(__m128i fltstat, __m128i descs[4], struct rte_mbuf **rx_pkt) descs[0] = _mm_blendv_epi8(descs[0], _mm_setzero_si128(), v_desc0_mask); /* Shift to 1 or 0 bit per u32 lane, then to RTE_MBUF_F_RX_FDIR_ID offset */ - const uint32_t FDIR_ID_BIT_SHIFT = 13; - RTE_BUILD_BUG_ON(RTE_MBUF_F_RX_FDIR_ID != (1 << FDIR_ID_BIT_SHIFT)); + RTE_BUILD_BUG_ON(RTE_MBUF_F_RX_FDIR_ID != (1 << I40E_FDIR_ID_BIT_SHIFT)); __m128i v_mask_one_bit = _mm_srli_epi32(v_fdir_id_mask, 31); - return _mm_slli_epi32(v_mask_one_bit, FDIR_ID_BIT_SHIFT); + return _mm_slli_epi32(v_mask_one_bit, I40E_FDIR_ID_BIT_SHIFT); } #endif From patchwork Thu Jan 18 16:51:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135965 X-Patchwork-Delegate: david.marchand@redhat.com 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 AAD70438F4; Thu, 18 Jan 2024 17:54:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E85E542E1E; Thu, 18 Jan 2024 17:53:33 +0100 (CET) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by mails.dpdk.org (Postfix) with ESMTP id A4A3342E01 for ; Thu, 18 Jan 2024 17:53:30 +0100 (CET) Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1d711d7a940so4821155ad.1 for ; Thu, 18 Jan 2024 08:53:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705596810; x=1706201610; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=X9xmfmIVA6kPAe6f9/4Re4t1OC9GO47PM9ilU44RqAs=; b=zZ7Sj2bI+fZqULUgl0LmHx7x7n3UXYcT2ncpRhmYkOdVwPqaJWb0snXbJ71OSt/wbW 1s+lnBpKGs3TvFNcZMBqS4/3fO6aDasoudMSV+I5Lq7UnZg1xJZDtwKc8bnA6Bqm4Ur+ wBX3xK8RYBT/KR8ks3SoT7Hp6V7R2jocvOqYbdLrVT429wfzcdY5WQiY3AZiodLoW9Le D52jwC/UsLQ8+AlvNgXG89vRodJ8OAuqif83zFKRQuq8Xte/cVXjHpxv5xPzTZWJEUwe Ty06aRUQrfS9YzzlTRI0eQJoOCijPAapBk2qh1Hj97UqvkxdqIwGlB8bLMf9lMOTkqgn usjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705596810; x=1706201610; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=X9xmfmIVA6kPAe6f9/4Re4t1OC9GO47PM9ilU44RqAs=; b=wVLW6LyBTJDJXDwQ6GvimWFPr4Aas8aPySg+Wt/bWhaFcE50+88e2gKoJAeREbwEUG CL75snGRY3F8TeBSk33WLIIcXo9kW887SrIUS2+yjD3YbwpgRybSV+ULG/JXZdbJVuvg YjnKqM7NTTUOKPzFOR+BaFFB/6Ie7JOm/Nv5GfNqVi0r+3morZf7Hq150letXFeId0Xe quQE+5e8hbVxZs5asj9W+IdNWjR3pOTb3EfkstfOVH/f5CtfrGJBOl/C9DmP/LhCDCU1 uuxE7KuLtUfGsrxO89NLqSnXqHHastnvzw0vYJ2HsTrRKgdnk8Ftw00u1E0KjPLfscBv rtwA== X-Gm-Message-State: AOJu0YwUxF390qo2igejjFuLTdhIZ857F1JlDeDj0QTF251pTCHsSmqs p/476SzhlR/TJnV7oKPUPCs4eBWxhkI6Xxs0rXEe2A2oSecqjp8pwBHOgEWozDeZ/AwLo3e1tWB hLMg= X-Google-Smtp-Source: AGHT+IGKaHkRtmMEyRJ2HYzP79SzDJ5BMHg2fULmI0B0baoQDGPalMDsWzLubiei40klBYtdhtg5lw== X-Received: by 2002:a17:903:2696:b0:1d6:f87f:7627 with SMTP id jf22-20020a170903269600b001d6f87f7627mr1099809plb.130.1705596809901; Thu, 18 Jan 2024 08:53:29 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id u2-20020a170903304200b001d706912d1esm1427980pla.225.2024.01.18.08.53.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 08:53:29 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Konstantin Ananyev , Andrew Rybchenko , Dariusz Sosnowski , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad , =?utf-8?q?Morten_Br=C3=B8rup?= Subject: [PATCH v5 5/6] mempool: avoid floating point expression in static assertion Date: Thu, 18 Jan 2024 08:51:00 -0800 Message-ID: <20240118165315.63959-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240118165315.63959-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240118165315.63959-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Clang does not handle casts in static_assert() expressions. It doesn't like use of floating point to calculate threshold. Use a different expression with same effect. Modify comment in mlx5 so that developers don't go searching for old value. Signed-off-by: Stephen Hemminger Acked-by: Konstantin Ananyev Reviewed-by: Andrew Rybchenko Reviewed-by: Morten Brørup Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_rxq.c | 2 +- lib/mempool/rte_mempool.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index 1bb036afebb3..ca2eeedc9de3 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -1444,7 +1444,7 @@ mlx5_mprq_alloc_mp(struct rte_eth_dev *dev) /* * rte_mempool_create_empty() has sanity check to refuse large cache * size compared to the number of elements. - * CACHE_FLUSHTHRESH_MULTIPLIER is defined in a C file, so using a + * CALC_CACHE_FLUSHTHRESH() is defined in a C file, so using a * constant number 2 instead. */ obj_num = RTE_MAX(obj_num, MLX5_MPRQ_MP_CACHE_SZ * 2); diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_mempool.c index b7a19bea7185..12390a2c8155 100644 --- a/lib/mempool/rte_mempool.c +++ b/lib/mempool/rte_mempool.c @@ -50,9 +50,10 @@ static void mempool_event_callback_invoke(enum rte_mempool_event event, struct rte_mempool *mp); -#define CACHE_FLUSHTHRESH_MULTIPLIER 1.5 -#define CALC_CACHE_FLUSHTHRESH(c) \ - ((typeof(c))((c) * CACHE_FLUSHTHRESH_MULTIPLIER)) +/* Note: avoid using floating point since that compiler + * may not think that is constant. + */ +#define CALC_CACHE_FLUSHTHRESH(c) (((c) * 3) / 2) #if defined(RTE_ARCH_X86) /* From patchwork Thu Jan 18 16:51:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135966 X-Patchwork-Delegate: david.marchand@redhat.com 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 C5F9D438F4; Thu, 18 Jan 2024 17:54:08 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0987A42E22; Thu, 18 Jan 2024 17:53:35 +0100 (CET) Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by mails.dpdk.org (Postfix) with ESMTP id 648DB42E11 for ; Thu, 18 Jan 2024 17:53:31 +0100 (CET) Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-1d7164aeac1so3019795ad.1 for ; Thu, 18 Jan 2024 08:53:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705596810; x=1706201610; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BL8B6hIPHE2damCHbZr305V3JjoVZuHgS3R5fUMMloQ=; b=zcNPt250AupB9vHCujSXdmdGaCCpF0eqTf4js4eIGEuyVG452CrFOWIw8NWrntImfv nXZ2h6Rmjfx9e4urywcUQcXdFqY58+fQL5jBBNxG32ZQqTaNzQMCWLLiTo2vaVxD8hTx MAy6008efUNCt5C2AutKvucooIEbSIirMj3tJwKvdHdXBd+g+dh+25m9CvCE59BZi08E uKz9+SGCBFu8+EnHtv/F+IRqkJr3qf9hcWByZihw0efpmtKWE0fdkpiZEoFudmDmFiZK PbiXVMuSAZnnNzd90VllMyhLYpC8xJARn2bzg4c5OaAzJqI4fi0qx0P/Lqnq+CK3oZt2 VuWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705596810; x=1706201610; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BL8B6hIPHE2damCHbZr305V3JjoVZuHgS3R5fUMMloQ=; b=a5Lhpzl/yRQOmCZsUcYHGhqk7kHXmf8+/PddWQwkinrQNtu2NIAFZBKOxJQhaL0uA7 NBKDaDllmu36b1ogTOT/doyZajdzgR1RYflERKE2m0uOQ223rwaDewn8Xjbxt0RjiLAM CO/tHHEEpbKOko0pOYCe/lTNH8eFx+3110kQBxe9rOtLRfb84uQIG+tW4DUlZnX/zTgP j41sVg0VHytSr+OBzti8qlmtsR/85fy/uEkKbHUycCdDWT9pVvEWqZqtHESp73ep6Zwi b0QdBvfUNpLFXK4w+qIzFmhVhIj3fiGJz2JCcVqb0LIiKNoiZHcXiuSnZqtUhhEO3qIT 2jIQ== X-Gm-Message-State: AOJu0Yw2ztRg2bQtYiEd+rmyANxKKRxvAi0mNTjaWir8dprFc2cJ1CkJ sg3CWbTNWPNfgmoHM4lxhCVk3paEGoBH4Jg9xaSb1YP5rJErwXJb4Te4aMSzTeIH7kJnapcV+wI WGug= X-Google-Smtp-Source: AGHT+IE5THGoY9IejDlsfGJPgztLXJ86WLsIhhLpONID46gebQ8BPmd1iWLHDGyjiT9wsaoXx5aojQ== X-Received: by 2002:a17:902:e5d2:b0:1d7:ae7:850 with SMTP id u18-20020a170902e5d200b001d70ae70850mr932244plf.107.1705596810686; Thu, 18 Jan 2024 08:53:30 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id u2-20020a170903304200b001d706912d1esm1427980pla.225.2024.01.18.08.53.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 08:53:30 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , =?utf-8?q?Morten_Br?= =?utf-8?q?=C3=B8rup?= , Tyler Retzlaff Subject: [PATCH v5 6/6] eal: replace out of bounds VLA with static_assert Date: Thu, 18 Jan 2024 08:51:01 -0800 Message-ID: <20240118165315.63959-7-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240118165315.63959-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240118165315.63959-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Both Gcc, clang and MSVC have better way to do compile time assertions rather than using out of bounds array access. The old method would fail if -Wvla is enabled because compiler can't determine size in that code. Also, the use of new _Static_assert will catch broken code that is passing non-constant expression to RTE_BUILD_BUG_ON(). Add workaround for clang static_assert in switch, and missing static_assert in older FreeBSD. Signed-off-by: Stephen Hemminger Acked-by: Morten Brørup Acked-by: Tyler Retzlaff Reviewed-by: Morten Brørup Acked-by: Ferruh Yigit --- lib/eal/include/rte_common.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h index 33680e818bfb..aa066125b6cd 100644 --- a/lib/eal/include/rte_common.h +++ b/lib/eal/include/rte_common.h @@ -16,6 +16,7 @@ extern "C" { #endif +#include #include #include @@ -492,10 +493,18 @@ rte_is_aligned(const void * const __rte_restrict ptr, const unsigned int align) /*********** Macros for compile type checks ********/ +/* Workaround for toolchain issues with missing C11 macro in FreeBSD */ +#if !defined(static_assert) && !defined(__cplusplus) +#define static_assert _Static_assert +#endif + /** * Triggers an error at compilation time if the condition is true. + * + * The do { } while(0) exists to workaround a bug in clang (#55821) + * where it would not handle _Static_assert in a switch case. */ -#define RTE_BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) +#define RTE_BUILD_BUG_ON(condition) do { static_assert(!(condition), #condition); } while (0) /*********** Cache line related macros ********/