From patchwork Wed Jan 17 18:19:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135933 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 5276A438E4; Wed, 17 Jan 2024 19:25:59 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B547240DFD; Wed, 17 Jan 2024 19:25:54 +0100 (CET) Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by mails.dpdk.org (Postfix) with ESMTP id 103E24014F for ; Wed, 17 Jan 2024 19:25:52 +0100 (CET) Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-5ce6b5e3c4eso5370770a12.2 for ; Wed, 17 Jan 2024 10:25:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705515952; x=1706120752; 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=FjNP8Pw9BHz6L17zt5K6cyppa2mxqxirZwMu7iwBbXc=; b=JB87M1Qs1Fk15oNyEeumCeJ5bSzwyN37d2uVH6XpsMX0vXyaysE9GrO5jdvYFXpb19 pQEW30PCYC5Pa2e4nk/MwhBGBmNyt3pZ3M2uO4sKLNGkByTctAYbKO32kv3K323VxhGY 8aq2KYAP0ZZhzuGP8+3j2TsVqXNvorYQPP9VsNwUOuMlvu4hw74RbM21CY5OBLTPkXGz riZ0TYJ68TmA2nuqKVAjikT3CNhlucgYxtJIU7k68SBEBn8AYxSd/v3HOE/IinJDkMIo eB2d+04MUThr5Unfnq9MKBwZGT1A14FVj/VSKYyF3KG8mpp4v2Qo/sazModVCm7Cvj8j Hwxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705515952; x=1706120752; 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=FjNP8Pw9BHz6L17zt5K6cyppa2mxqxirZwMu7iwBbXc=; b=ny1WCUh+f/XjNFajmJiH1gnJ3LR8SZU+5n12BHkAOSujcaZCeMlVYDQLbAOBRyDCj5 TrUKn4Nwx8ICjJrJf8KP/R1mJSa5yhR/A3QgsxJwITYemA3v8r8qavowWDyaMrj5YIpQ 7Ssy8fI8PxUuY6c9DZ1kaTrNkYw0AYIuOR+nYFf8ilI/E02M/xJ6PyhwDcl15lfaPBSp O8RbxMtJDH5LZytp6tMpCd4HJ+3xAzDxMyBCG4SL6FtkDAfEDP+bSSVulwve3UnjhcDY qobzr3V7HOVefTGuLAjMWs65cUOYBiQ+jkhxCnrfbdT/Ri+89jmUvdN0yKCFHwH/U8rH y/vA== X-Gm-Message-State: AOJu0YwjdMGKW2vOqv6dnnuO9ePisUZp8D4P7G6zA8i0YqzmKJs5+17B 45fqY0errU7QJk1lkrOcilaILfzhEg8WpAwOPpeiu3Fe0J8wOQ== X-Google-Smtp-Source: AGHT+IG0//Lu57FHHCvpHwenl/xfF8lt+2ziboKXEDlvZmY02MzXRtWzbUdlVHfWBd2Qxx6zdM2osw== X-Received: by 2002:a17:90b:30d5:b0:290:9b:252f with SMTP id hi21-20020a17090b30d500b00290009b252fmr837831pjb.18.1705515952158; Wed, 17 Jan 2024 10:25:52 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id qj15-20020a17090b28cf00b0028ce507cd7dsm14334124pjb.55.2024.01.17.10.25.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 10:25:51 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v4 1/6] eal: introduce RTE_MIN_T() and RTE_MAX_T() macros Date: Wed, 17 Jan 2024 10:19:55 -0800 Message-ID: <20240117182541.211125-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240117182541.211125-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240117182541.211125-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: Tyler Retzlaff --- 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 Wed Jan 17 18:19: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: 135934 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 B37DA438E4; Wed, 17 Jan 2024 19:26:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C96DF40ED0; Wed, 17 Jan 2024 19:25:56 +0100 (CET) Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by mails.dpdk.org (Postfix) with ESMTP id A6BD140A7D for ; Wed, 17 Jan 2024 19:25:53 +0100 (CET) Received: by mail-pg1-f170.google.com with SMTP id 41be03b00d2f7-5cd8667c59eso7883218a12.2 for ; Wed, 17 Jan 2024 10:25:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705515953; x=1706120753; 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=B9rouWG8I7V4q7YIiSvrAqhCBXeatuieOOtGYljteb0=; b=J2a4TPGsktMhczKFs6VG5On6eQ8B+sZEVk3VnehXluvauMR5nMK951lAmg2FPpRt/u h55NcdDDaHFz18T10IpfFcYV0AVjrLLIrf8DMF1YMZdCVF3d+ieEdySvkLWwW4p5f4QS FAr7pJfiN3dSI6oEeNBfxWB8gkyyYSCWfethvxZCuLxvhfn1HtOHSZ+xeSGBCums3anN /EOROPNkhHgSRgY154m/b9FlWlP05t9qxIvWygdz9p5c4K7UmEE0vm0vOs4b1ExQYPex Mt/W1WnUIcAiv7J5QJuswAMcO35LH7wz4tr8R5TDGcrdEfG9kGL5iZotlYjVaQkE4V3i g/VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705515953; x=1706120753; 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=B9rouWG8I7V4q7YIiSvrAqhCBXeatuieOOtGYljteb0=; b=Ep78Ip1C8/w8DtoNSp+DcAiHQvmetwBlkp2BpD8Cyp8OgerJboLcuaAl+CfLeWc72L VxLhx9ylUJ9+vkKGtzgm7nJXHhVID4cROykX33af43LwUrB5uOVlLh9tx2zbdTX3HBix W5QtyyiNw+7wfXnri6Lu+ELhsaUCA8KquqgXXuVKV/TDxumCSs8ARjXkLPAbgwwkaReX maMpRn+cgSaNwyt276b9gMImJyAPklUFo66XqCAMqjvoI/GjXT5bs9HJEfl0X1a+OqL5 aDPGrfs/59mZNT2EtRtvZrjw/3vWhGHju/7gF9i9/ilYlRIQgIlEoJlNQO1U8G52098V 0jsw== X-Gm-Message-State: AOJu0YzQsQwcURA4iLz0gxZA6A6/o9TczFfD+wAE2FrbyAxKkfanjnNg CNZh2dKTb6+T9eZ5GgG7BF+kOgCtkLRPt92JelT5JEZ8SWTEdA== X-Google-Smtp-Source: AGHT+IHF1sF976dwSfB6bjfyMLmlKg8WAjhoEPun4khq8lB+v3PdttjH4/sRJaf0rOwCAm1HNFDthw== X-Received: by 2002:a17:90a:d49:b0:28d:4fad:21c8 with SMTP id 9-20020a17090a0d4900b0028d4fad21c8mr5804585pju.35.1705515952982; Wed, 17 Jan 2024 10:25:52 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id qj15-20020a17090b28cf00b0028ce507cd7dsm14334124pjb.55.2024.01.17.10.25.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 10:25:52 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , liang.j.ma@intel.com, Bruce Richardson , Tyler Retzlaff , Liang Ma , Peter Mccarthy , =?utf-8?q?Se=C3=A1n_Harte?= Subject: [PATCH v4 2/6] event/opdl: fix non-constant compile time assertion Date: Wed, 17 Jan 2024 10:19:56 -0800 Message-ID: <20240117182541.211125-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240117182541.211125-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240117182541.211125-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 Wed Jan 17 18:19: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: 135935 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 53622438E4; Wed, 17 Jan 2024 19:26:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0930740EDB; Wed, 17 Jan 2024 19:25:58 +0100 (CET) Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by mails.dpdk.org (Postfix) with ESMTP id 7BF2940DFD for ; Wed, 17 Jan 2024 19:25:54 +0100 (CET) Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-28e718874e1so1588501a91.0 for ; Wed, 17 Jan 2024 10:25:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705515953; x=1706120753; 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=W2p1YCG44ZFpp5dbBnEOITxlCt++kfGtm+IBaz64x5I=; b=JfvhOn0ZaOQUuEGfzUqDhbE3vZW9F2KfnGK8h14I3TsNPao5DSF/x00UYwBVK0DMA1 vqzVNxsbViNeYQiF3XIpKkFIQElaDlttJISEvkDw1igkabTdU/MWR6TYkt+0x9Dy75Pk M7hPZBNYa1cHwYGI5ori4jiqKIktIy747T6a6SPrsiM0dXGAvcRYlw35Xsx4ZGPUxZKI mrf0fwP7haHEwBRwQxzlXaRR7DUWbLC5YsCRsCfFkkdaJgadQa6gLfRlYojfM3qDnW3R rYuR5ygC4UjwaS7wumLfEoPZ3KFEranpO7lsdXenF7dIsq+NLZ7LWKau3lm95sHRciBs nH6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705515953; x=1706120753; 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=W2p1YCG44ZFpp5dbBnEOITxlCt++kfGtm+IBaz64x5I=; b=pkvPGTfJWsUR9Fxe3JIDpokk1d8/RCfimq8cRtLewpeilxb/s4L+f6qMRY+1ibc9FA 32U61R0SODUhdlluGT/9egqAqtwoKJ0Pxg2fbgkBByTICzswhk1esxmj/Fi1F29R68fE wjr7VopygitXqWmgtiXgfY8qK6CIot+Hff0pkeT1jJHCJL+ej4TlzQqeI6wMy2436MPW LBk+sdZg7vVcsrArI4Xrg3ZEihpqaQZ536EhSGYigB51wIGQjACod/vNQQk7OVTxtIH+ 2JQ4dCR8AvNBYyZbT1E6yroINdVdSLljtS71wpmUXEqkEpCHfjAnaviIupr0fg2F1Slf 55FA== X-Gm-Message-State: AOJu0Ywxe34Bas7MSsBGuaCCcjSM6Fv4VJWD30WEc7+kp+vjWOUEKvZc DGyNYEDpuTtM3Q0XfgVZBRtPlvkEGFXz62RgNV/EOYALlIoKdw== X-Google-Smtp-Source: AGHT+IHwrEYcxcWeTktlPQ2dkfT2Q5N2bHV9KC6jzSQVsQ+z2WfvYZOnNro2CYCISkaQ0cMdM2nXVA== X-Received: by 2002:a17:90a:db07:b0:28e:eb9a:477d with SMTP id g7-20020a17090adb0700b0028eeb9a477dmr1527135pjv.79.1705515953707; Wed, 17 Jan 2024 10:25:53 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id qj15-20020a17090b28cf00b0028ce507cd7dsm14334124pjb.55.2024.01.17.10.25.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 10:25:53 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , ivan.malov@oktetlabs.ru, Tyler Retzlaff , Andrew Rybchenko , Ivan Malov Subject: [PATCH v4 3/6] net/sfc: fix non-constant expression in RTE_BUILD_BUG_ON() Date: Wed, 17 Jan 2024 10:19:57 -0800 Message-ID: <20240117182541.211125-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240117182541.211125-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240117182541.211125-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") Cc: ivan.malov@oktetlabs.ru Signed-off-by: Stephen Hemminger Acked-by: Tyler Retzlaff Reviewed-by: Andrew Rybchenko --- drivers/net/sfc/sfc_ef100_tx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/sfc/sfc_ef100_tx.c b/drivers/net/sfc/sfc_ef100_tx.c index 1b6374775f07..c49d004113d3 100644 --- a/drivers/net/sfc/sfc_ef100_tx.c +++ b/drivers/net/sfc/sfc_ef100_tx.c @@ -26,7 +26,6 @@ #include "sfc_ef100.h" #include "sfc_nic_dma_dp.h" - #define sfc_ef100_tx_err(_txq, ...) \ SFC_DP_LOG(SFC_KVARG_DATAPATH_EF100, ERR, &(_txq)->dp.dpq, __VA_ARGS__) @@ -563,8 +562,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 Wed Jan 17 18:19: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: 135936 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 DF490438E4; Wed, 17 Jan 2024 19:26:18 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 33BA840EE4; Wed, 17 Jan 2024 19:25:59 +0100 (CET) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mails.dpdk.org (Postfix) with ESMTP id 3C20C40E8A for ; Wed, 17 Jan 2024 19:25:55 +0100 (CET) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1d5ece717aeso14283315ad.1 for ; Wed, 17 Jan 2024 10:25:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705515954; x=1706120754; 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=qcapsTAS2FrBqtvBRyu1/qQWJzr7RLLy4mS98JGu2bE=; b=ogQ0oPpnjLJSCaj43afXL6oNaBnS3R99jcnEhMJei/sLq/29FyC/P+rQ4sX8Z8y388 1Lt09b1KjITXGl/wAESv+X6k4I+F/poqzELf8KpzK2LdT1PZeiK6ZTXk34QLWnc0ECrh sj+B4iUs4CdFaRtf3VsOcvSWDf4itnH/DRrIc1E0JxL4yZX5EUZUN0UEye8sVRBiDm8O 7tecTS7vEDTuZ79C7ib9fddynI2Alrl2We3BkZLfBNU8SDkNz6vehthp+AzSMD2ANnNZ 90toJ8JWMiT4RmM4GYWn8HNRNhxqVIRWzNdNSrLhnPPVKtaVaQg9cAlF5CHXJt5A7mKh Z1dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705515954; x=1706120754; 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=qcapsTAS2FrBqtvBRyu1/qQWJzr7RLLy4mS98JGu2bE=; b=YYhbZx551Tmu1QxeeuzBmikHIHewQX6m8bpc0rAfvXSO7hR/baitHHkp3VNsOvaV1n krA5GoGPlk0nER/wm208ZzMzWlxXkPuJjXITuhWR303fMqWId9+ftpEvdgrawkqBscfK sIQNnWlrZSY71pMmUGe3kcQ2nt4wiLja/IxWNKYS0UeDpzD1KIzr9m5cpBTmcKyK7K9w 0JF0Clj7k6rc6/AH8f9PJaVfBbg/E51nXyYrJfGQbt1Ex4AIGJCcX4DzDOFlWQMvepuc RcM9pr9NSeqTI90Ym3d18ftaVZ2u55/7lA5exTnV4CbYoT1k7UyXFyvmCUnc1tiY0B8C uLQg== X-Gm-Message-State: AOJu0YyGZhfN+6WsGn4uG5B7qb64QdE/tSlaBgxficVA/O9Sp5mTa479 zTSZKYdvtKIvvJ2ITuVSdrbQVT/D5SxR6F0nsucepZb8knUjGw== X-Google-Smtp-Source: AGHT+IEV7BNDwQEAqqWAujDI98vNhOckBaPN2OPYV3PeRZzcWtnowmu8q8wxuhtdCF8U4Ge9aAgzRg== X-Received: by 2002:a17:90b:3e87:b0:28c:7ca2:ee49 with SMTP id rj7-20020a17090b3e8700b0028c7ca2ee49mr5012604pjb.54.1705515954485; Wed, 17 Jan 2024 10:25:54 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id qj15-20020a17090b28cf00b0028ce507cd7dsm14334124pjb.55.2024.01.17.10.25.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 10:25:54 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Yuying Zhang , Beilei Xing , Bruce Richardson , Konstantin Ananyev Subject: [PATCH v4 4/6] net/i40e: avoid using const variable in assertion Date: Wed, 17 Jan 2024 10:19:58 -0800 Message-ID: <20240117182541.211125-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240117182541.211125-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240117182541.211125-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 Wed Jan 17 18:19:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 135937 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 89535438E4; Wed, 17 Jan 2024 19:26:27 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 96A15410E7; Wed, 17 Jan 2024 19:26:00 +0100 (CET) Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by mails.dpdk.org (Postfix) with ESMTP id 0594640ED0 for ; Wed, 17 Jan 2024 19:25:56 +0100 (CET) Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-28e85db00d1so1343679a91.2 for ; Wed, 17 Jan 2024 10:25:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705515955; x=1706120755; 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=VyJal8XhPWE5yAA11itU4Xb2rs4pO/W30a6Xj/Y2gnM=; b=mCaFga5HEMu98rsodBzDcVyuxitUMi/+pyy2JYCkq6kKLB8514PAxf8vrZK6mWlixI RDDlBPymrk3QMx/mLr5hW3moM5fn/Ogq33nAyK/cHR2eZTQRvEb1vc8xpRAQu8RrxOCP MKvap4wqo0rzYmpSH/Fijc3DNSN2T5GnYi4UiyvBhA78LD4MDEJTmzHmkgSZnuQ8AmvE omoPrt63i1gS+9dn9HNCiRN3GXdnZkF/g4Hd49IJ2Qh9uhe7OREryp0jezO5zNAT9KNc yWuge/zprRc/303vUck+VUNT/g/GjFu9N6ewV+OAJ39KHroNSl8JmesoW1eE+i+uGgAC 6VtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705515955; x=1706120755; 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=VyJal8XhPWE5yAA11itU4Xb2rs4pO/W30a6Xj/Y2gnM=; b=IvgWqxbDY5/4Gwx4cfuigpGBQXB0/31suycEMF4K0sbidzEGl3omXWclE2St2xftAH rrPAYc6Mknzs0zp13oRBQgSgTDRfzU7Jaf6IcWvZN255DSrL/zfC85sqXKbahpwYEzsM IcRj4yHJylC3Ex4KoV/REXsgX8SXY6DgmbmmuIpZRZ8VCr6Kz/QBwgOcU+Hj11XAn9a4 xSW9fKCHyA9Kv76JWuxHiWbVOVsGQZwpciTm+zeO8Z+DQfn/I2aAFj1ZlYEDDOE8BOpT SjVos0nuwt1k1bZRATStscjgI86Nmajs2KKG2Z30GXOIbzKy46mXfc/OmsV3F776hU2J zA7w== X-Gm-Message-State: AOJu0YzAg4+oZ2XkZvF6NwSKj/MIKkEFveWy8p5c8lrH69IYeSo7IatP R6S3/BDSNU84FsxJdDqb4hY3HZKLYrzkOWObKuVmqHTnn5GGZQ== X-Google-Smtp-Source: AGHT+IHgX3dC+CixunQBXOPSgeH3Q/nmsVKGQ0CXZ6fj85gpSDN4hpMncP4SR5PJ1LSsAjjA39JVIg== X-Received: by 2002:a17:90a:850c:b0:28e:8093:2764 with SMTP id l12-20020a17090a850c00b0028e80932764mr2009113pjn.1.1705515955313; Wed, 17 Jan 2024 10:25:55 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id qj15-20020a17090b28cf00b0028ce507cd7dsm14334124pjb.55.2024.01.17.10.25.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 10:25:55 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Dariusz Sosnowski , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad , Andrew Rybchenko , =?utf-8?q?Morten_Br=C3=B8?= =?utf-8?q?rup?= Subject: [PATCH v4 5/6] mempool: avoid floating point expression in static assertion Date: Wed, 17 Jan 2024 10:19:59 -0800 Message-ID: <20240117182541.211125-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240117182541.211125-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240117182541.211125-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: Morten Brørup Acked-by: Konstantin Ananyev Reviewed-by: Andrew Rybchenko --- 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..7d972b6d927c 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 Wed Jan 17 18:20: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: 135938 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 12D76438E4; Wed, 17 Jan 2024 19:26:34 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9B0AE410F2; Wed, 17 Jan 2024 19:26:01 +0100 (CET) Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) by mails.dpdk.org (Postfix) with ESMTP id EEF0140ED6 for ; Wed, 17 Jan 2024 19:25:56 +0100 (CET) Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-28beb1d946fso9473224a91.0 for ; Wed, 17 Jan 2024 10:25:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1705515956; x=1706120756; 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=bOrbVpKEVbKkOmwo3x2yeTW4pbaRRg4gumE9fvaTD5Y=; b=hlzDTNAYStYelqGnecTwGccQORb4KNHuja06RK4imr2E80ChnkUpFuegj1ngqwuFCX qAP25O7G10clFSiRk047vk5Ov1Qcs6yecAZioFftWvPo0ocSdGtN5Qtadcey7CNrgZYk 6+sUL9+Vz6JatZmldSEsIKyfVJO36yavg5NpHF03cO8HsAghrlyN7KZyar3UTC+xNA3d 4hfJ36OqcTpk2up7doA7AXx3WyLo4bSG0y+jBSZ7keQ1tUyUr37vd4NrRZ9sWGGSNYlT 8dKV8L5dNhrvAuJF0bv4vWsmTUbGQjsdXf+HQcgVtyIQA25z4Kv6wWPGFX0LVuvWttxd U+Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705515956; x=1706120756; 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=bOrbVpKEVbKkOmwo3x2yeTW4pbaRRg4gumE9fvaTD5Y=; b=bJs78/HovRazhHNKFNwsHf+AoKlhoq67REOoE2+Evey78Cr4mBkSzrSJXKHvrObBQL JxhLaeMy135cG3+9IbJRxPeoDJY7t+3kT7+853E1L70zbE1R8O1CDtZtP5pSr3Qy9nV7 drnN6gETDI4zgRXA03a6z2bcnoqFNTB3cXo5fujqoCtNavt/ZRrypv8EildkdrgSkshi EW2o7lbDJ8rP6YECMBQjia+4WwxPCifE927kRZ8Ml50nAjKuhrxCcI0672beuiB/bJLp EVDUd4bHsUSLo/9aoJSlQTcsNLsaI+4Q4j2V0nCPGFSgoKnG2k+S0/yiIx1QVB1dfrb8 jheA== X-Gm-Message-State: AOJu0YzIQy1mrZ0+0rjFPJsCLP4mEGEpO4qq9V8hx40aaTpTtHf3Vtz6 LCtIAyLAFY7TCeMyqYWnAb0LSgZLBiGr1ojVUJOX4QUOcT4X4Q== X-Google-Smtp-Source: AGHT+IEriSuYz4Z9bYU/UJsLnd/rN2JcvdjZvVA4ZstxOuzmb2smRaWk0C2XOlKK+KC2kFaZQUM10Q== X-Received: by 2002:a17:90b:8d5:b0:28e:7528:3d4c with SMTP id ds21-20020a17090b08d500b0028e75283d4cmr2497386pjb.55.1705515956188; Wed, 17 Jan 2024 10:25:56 -0800 (PST) Received: from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id qj15-20020a17090b28cf00b0028ce507cd7dsm14334124pjb.55.2024.01.17.10.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 10:25:55 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , =?utf-8?q?Morten_Br?= =?utf-8?q?=C3=B8rup?= , Tyler Retzlaff , Andrew Rybchenko Subject: [PATCH v4 6/6] eal: replace out of bounds VLA with static_assert Date: Wed, 17 Jan 2024 10:20:00 -0800 Message-ID: <20240117182541.211125-7-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240117182541.211125-1-stephen@networkplumber.org> References: <20231111172153.57461-1-stephen@networkplumber.org> <20240117182541.211125-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(). Need to add brackets {} around the static_assert() to workaround a bug in clang. Clang was not handling static_assert() in a switch case properly. Signed-off-by: Stephen Hemminger Acked-by: Morten Brørup Acked-by: Tyler Retzlaff Acked-by: Andrew Rybchenko --- lib/eal/include/rte_common.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h index 33680e818bfb..f63119b444fa 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 @@ -495,7 +496,7 @@ rte_is_aligned(const void * const __rte_restrict ptr, const unsigned int align) /** * Triggers an error at compilation time if the condition is true. */ -#define RTE_BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) +#define RTE_BUILD_BUG_ON(condition) { static_assert(!(condition), #condition); } /*********** Cache line related macros ********/