From patchwork Wed Nov 7 06:59:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 47915 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 792A82862; Wed, 7 Nov 2018 07:59:07 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0076.outbound.protection.outlook.com [104.47.41.76]) by dpdk.org (Postfix) with ESMTP id 2767B1BE0 for ; Wed, 7 Nov 2018 07:59:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QpbgJmgg95me+uo9mV1h9QkjK823xbTxx504qYjDfgY=; b=KPPRxRE0Tzl22JGtsWS6f8yFcGIfm1lpKd8KmQhDpEH2mMuo7S4szrZFqeMAc8FEbUZrEFNJiSch+PDGNKxDZZkycWLpllX2nhfutj2ZAEne1KdIdoZ4txyWIJh+QJVhcpnSWe2VWMM5olA6YO6wGH0LCuOb7PXJSLj9nSJ95Ak= Received: from BYAPR07MB4997.namprd07.prod.outlook.com (52.135.238.214) by BYAPR07MB5080.namprd07.prod.outlook.com (20.176.254.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.33; Wed, 7 Nov 2018 06:59:03 +0000 Received: from BYAPR07MB4997.namprd07.prod.outlook.com ([fe80::2d56:eab:242f:fdfc]) by BYAPR07MB4997.namprd07.prod.outlook.com ([fe80::2d56:eab:242f:fdfc%3]) with mapi id 15.20.1294.034; Wed, 7 Nov 2018 06:59:03 +0000 From: Jerin Jacob To: "dev@dpdk.org" CC: "thomas@monjalon.net" , "sthemmin@microsoft.com" , "shaopeng.he@intel.com" , "Jacob, Jerin" Thread-Topic: [dpdk-dev] [PATCH v2 1/2] eal: introduce rte version of fls Thread-Index: AQHUdmdeTP7wYurd902jLmSYivVLcw== Date: Wed, 7 Nov 2018 06:59:03 +0000 Message-ID: <20181107065833.16756-1-jerin.jacob@caviumnetworks.com> References: <20181106114435.14770-1-jerin.jacob@caviumnetworks.com> In-Reply-To: <20181106114435.14770-1-jerin.jacob@caviumnetworks.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [106.200.201.67] x-clientproxiedby: SG2PR06CA0203.apcprd06.prod.outlook.com (2603:1096:4:1::35) To BYAPR07MB4997.namprd07.prod.outlook.com (2603:10b6:a03:5b::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BYAPR07MB5080; 6:poEs+OTIXsKgM8O/I6BF1qHbi8aXZ0D5xTiiYS/setnT9CtU69Kedc9OMegM9TXxP2i4RVjvR+9bSjnrdjjxXC5yPJWmjpxM6PyOAkN3/vRfeUbOzLjotsKqOlsMRL0rk1RSIFPSoSHT7HBSpfwq6GQmo0CClr0rcKHgmXC2jKBnJtaj0/CHSbSiq3Z4kJ7fyc58Lpft+DXJMPPn9MLpixWJS6WZ3G/3Q9sMe9U9LizGkAT5r1Jcy43qmH8KLMZZtDNwVOMOeB03ucDcCjjcCXQ9K6kO8z7ZS1xMgUbEjKYvZK7RCHsnebZEiwemawevI4JzNXO37hzyZBypZ3FMYgASEVva6A1Mx9SwjSP+7nf5oovulze73tcuvpNkwHT7Q3Bjjbay7Sye/IoNJxhdwi/rxExquTwlEjLv1UnWNWd0sjadb8xk95CRp4xmzw9L57EJBnU3P1X1Zakgpe7g0Q==; 5:FWPMi6yGzJqHi/hCtfcrWlriyPTEvM/Gz+AS+d/4vB/HCU7xACAfgM9aOIlX2ZhV5JAWevT0aLjQcBcRqStidLzviyZxnEWuvwBlfbqreRR1I0V/axFaK3ICKGKesPAkPFh3gLmnQExEWPeLcC0omsZAzoeCGFGtWQXJyZiqCJo=; 7:TlXhcn+i3oxLW653u6V6c8K5iHeIVkOv9lvd0lOPLE4xW9vFjGAXWcAVWzJQaySzR1BoyYhSTwIkg6MejCZiU+dX9Gc4QXaobYmMNA6zay09XyE9I85pvdmeCadA79sTp6W3NOmwgi+s0pbvrInJ9A== x-ms-office365-filtering-correlation-id: e6e5afea-6568-4d4e-f414-08d6447e8055 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR07MB5080; x-ms-traffictypediagnostic: BYAPR07MB5080: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231382)(944501410)(52105095)(3002001)(10201501046)(93006095)(148016)(149066)(150057)(6041310)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:BYAPR07MB5080; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB5080; x-forefront-prvs: 08497C3D99 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(366004)(346002)(376002)(189003)(199004)(1076002)(256004)(446003)(486006)(6116002)(4326008)(6916009)(6486002)(3846002)(2351001)(97736004)(53936002)(52116002)(25786009)(6512007)(105586002)(6436002)(71190400001)(71200400001)(107886003)(76176011)(14444005)(1730700003)(54906003)(575784001)(81166006)(26005)(316002)(8936002)(81156014)(7736002)(1857600001)(5640700003)(42882007)(6506007)(305945005)(106356001)(8676002)(186003)(36756003)(2900100001)(386003)(102836004)(5660300001)(2616005)(478600001)(72206003)(11346002)(68736007)(99286004)(2906002)(14454004)(476003)(66066001)(2501003); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB5080; H:BYAPR07MB4997.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 8p9eQdkx1iKu3HkD/9OUCAb61fyhDqnykaBFTc32x3oE4iDgYacJKKtvkq1ihKYUeXbGI2v7euKuC6sIwe5OQtEDqZ3VofzDHI7JwTZEXLh9+7fxmT1x1XCEDq8nrxUfvNZd6HCYyerc32epnshfz/GqomcgdplXlGjeceC36Ub7CHFv9rZNNMzMo4Yzmduo/S3GUappHcp2/W+VPsXYa5zMEL3dGlU7sg8AlnvthBK53iISRcg6xV/vCMAE7hYvfGJyWR1fbOJr9hj6ajhCdIPkjwzfocv3ZBRj5nBIpWPQ9RtPh99a2vVZ0hy4e+/cW9IPwLfeonYOoq1QBRArkRNkALYf9Cn34HcEFjfXYTA= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6e5afea-6568-4d4e-f414-08d6447e8055 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2018 06:59:03.4742 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB5080 Subject: [dpdk-dev] [PATCH v2 1/2] eal: introduce rte version of fls X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The function returns the last (most-significant) bit set. Added unit testcase to verify rte_fls_u32(). Signed-off-by: Jerin Jacob --- v2: - Introduce rte_fls_u32() --- lib/librte_eal/common/include/rte_common.h | 19 +++++++++++++ test/test/test_common.c | 32 ++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h index cba7bbc1d..87f0f6302 100644 --- a/lib/librte_eal/common/include/rte_common.h +++ b/lib/librte_eal/common/include/rte_common.h @@ -473,6 +473,25 @@ rte_log2_u32(uint32_t v) return rte_bsf32(v); } + +/** + * Return the last (most-significant) bit set. + * + * @note The last (most significant) bit is at position 32. + * @note rte_fls_u32(0) = 0, rte_fls_u32(1) = 1, rte_fls_u32(0x80000000) = 32 + * + * @param x + * The input parameter. + * @return + * The last (most-significant) bit set, or 0 if the input is 0. + */ +static inline int +rte_fls_u32(uint32_t x) +{ + return (x == 0) ? 0 : 32 - __builtin_clz(x); +} + + #ifndef offsetof /** Return the offset of a field in a structure. */ #define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER) diff --git a/test/test/test_common.c b/test/test/test_common.c index 7a67e458e..c6d17baae 100644 --- a/test/test/test_common.c +++ b/test/test/test_common.c @@ -188,6 +188,37 @@ test_log2(void) return 0; } +static int +test_fls(void) +{ + struct fls_test_vector { + uint32_t arg; + int rc; + }; + int expected, rc; + uint32_t i, arg; + + const struct fls_test_vector test[] = { + {0x0, 0}, + {0x1, 1}, + {0x4000, 15}, + {0x80000000, 32}, + }; + + for (i = 0; i < RTE_DIM(test); i++) { + arg = test[i].arg; + rc = rte_fls_u32(arg); + expected = test[i].rc; + if (rc != expected) { + printf("Wrong rte_fls_u32(0x%x) rc=%d, expected=%d\n", + arg, rc, expected); + return TEST_FAILED; + } + } + + return 0; +} + static int test_common(void) { @@ -196,6 +227,7 @@ test_common(void) ret |= test_macros(0); ret |= test_misc(); ret |= test_log2(); + ret |= test_fls(); return ret; } From patchwork Wed Nov 7 06:59:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 47916 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A6E274C8C; Wed, 7 Nov 2018 07:59:10 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0070.outbound.protection.outlook.com [104.47.41.70]) by dpdk.org (Postfix) with ESMTP id DE72A34F3; Wed, 7 Nov 2018 07:59:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jvthk2biH3f+dPdp9mjEvzHYekmQxTatY4XrII8Yjig=; b=gYnPVq9aLNrCGv7ix6gm6b21g9AwM7xBLmXgef0mdq5bSAlxMqvZAOQLw0iIS+2TmIqWfbFY+vIjTp852D27mcaceEgW/59XaGEhnUWLmkVgpzSV+w4e4ie9/lzt5botvkmeMrXtEdyPXqfxAZoKtSr962ZRts41IlVaqKUPBVc= Received: from BYAPR07MB4997.namprd07.prod.outlook.com (52.135.238.214) by BYAPR07MB5080.namprd07.prod.outlook.com (20.176.254.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.33; Wed, 7 Nov 2018 06:59:06 +0000 Received: from BYAPR07MB4997.namprd07.prod.outlook.com ([fe80::2d56:eab:242f:fdfc]) by BYAPR07MB4997.namprd07.prod.outlook.com ([fe80::2d56:eab:242f:fdfc%3]) with mapi id 15.20.1294.034; Wed, 7 Nov 2018 06:59:06 +0000 From: Jerin Jacob To: "dev@dpdk.org" , Qi Zhang , Xiao Wang CC: "thomas@monjalon.net" , "sthemmin@microsoft.com" , "shaopeng.he@intel.com" , "Jacob, Jerin" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 2/2] eal: fix build issue Thread-Index: AQHUdmdgQHr3RZEcdk2B4JEtwIjozg== Date: Wed, 7 Nov 2018 06:59:06 +0000 Message-ID: <20181107065833.16756-2-jerin.jacob@caviumnetworks.com> References: <20181106114435.14770-1-jerin.jacob@caviumnetworks.com> <20181107065833.16756-1-jerin.jacob@caviumnetworks.com> In-Reply-To: <20181107065833.16756-1-jerin.jacob@caviumnetworks.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [106.200.201.67] x-clientproxiedby: SG2PR06CA0203.apcprd06.prod.outlook.com (2603:1096:4:1::35) To BYAPR07MB4997.namprd07.prod.outlook.com (2603:10b6:a03:5b::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BYAPR07MB5080; 6:ngYG83YFN1TpFZKMOZ/ohHt7foYu48LrFCjTwvGf2m+vpevpPdEWYGj6uKOBk4r3bj/r+q2/kbZwYQE481ix3tJ+oyJeoGUr77ZO7LoaCBGtSSJKXoiCfACIMMgjo2yXaR4NG2hXTkQef1sPGCvn0QtJHJgL/JJWFFBcQQlPs7UJSgRT/pzZkC6KLbtju2lpqw8GZBPYK4EtgZ2qeQZR5CSOE0OaQe2+5jOxCcpb1JiN9OlNZsHOGj6YHHe3UR1UrMaArVjLRcOLMEyhC06Fg/fipUgmNc2qBoPd1nVpKV8/wMQLSjwXBUMMxPXy4bi0U8D4rurP0L935xU4z/9F6sSFSHBNMrcwQlTg1L87KC3/QrUgNmSIQuxlSuvqhlIM4RrmgJ49W8g7lv1690KODfNSzFOdNaZcvm8vx5n+egH6RVlWjOCmI7iuCPEzQPN+4wGCCgmByuwt81OHm5D8gw==; 5:vdm2Su5n3+U5sdqwPya+29cddLyoUKspfFhr56I814iks2FLIZ/pi5KXQRbqlHi+CCem4/PpJc/ZYmSli/DbGX7oBI8ZbU/LxoGOlELynEKPvVRni1YqALXIadr1ULLF3lsNYB8m+Fv++Cp/Hy8cV4rDIrwKcDPaBqwPiTXX3E0=; 7:aj309mpcyOCIfglctY/whDHQRGpK/NjAHcGff4p02HeIdXgCujbg+mFouAWT6qPg01Ybpaty6VHS+II4jXiJDCsDJNyvBFkE1eacIa+5kgDTVgQWIQ1xuBFVZzm3ZtKEg1WrRbEvrT7nilzkoGyUtQ== x-ms-office365-filtering-correlation-id: a33e6b7b-dbc5-462d-ee30-08d6447e826b x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR07MB5080; x-ms-traffictypediagnostic: BYAPR07MB5080: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231382)(944501410)(52105095)(3002001)(10201501046)(93006095)(148016)(149066)(150057)(6041310)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:BYAPR07MB5080; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB5080; x-forefront-prvs: 08497C3D99 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(366004)(346002)(376002)(189003)(199004)(1076002)(256004)(446003)(486006)(6116002)(4326008)(6486002)(3846002)(97736004)(53936002)(52116002)(25786009)(6512007)(6306002)(105586002)(6436002)(71190400001)(71200400001)(76176011)(54906003)(575784001)(81166006)(26005)(316002)(8936002)(81156014)(110136005)(7736002)(1857600001)(42882007)(6506007)(305945005)(106356001)(8676002)(186003)(36756003)(2900100001)(386003)(102836004)(5660300001)(2616005)(478600001)(72206003)(966005)(11346002)(68736007)(99286004)(2906002)(14454004)(476003)(66066001)(2501003); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB5080; H:BYAPR07MB4997.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: hlkJXq2QGQsdfsxXUWNGWUIfvsWIQdHHUwupe0BMuXMXG2zThe9sDPZaapn8LQ+2ngn019sQzC3dSHUbwk4zj9Glsv4fD8fEGw4cg+MTUb5fMnwZ8j59q+kWTm7ssqlTmlqZ74Ytg6LeNvjemW+rC2U/imKXWy+cOYp+dX9e5ToaF54Palgx8VcjaUSjAjgZO9ixBrYGpgk/eshVOK9oVehybB0kxQKoaOo3X/8ZPZGsuCEPCoCMyiVyLsqCcU9QnyviO22pp44CiyXnKJGwpNYgn7EiD1cHm08RAsTn1ugRzLJDTFLdXU87V7VywBxNGLs2kIon5ttYYrWpOuAJ6XSO6AGm/pgokclkrqJTeBM= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <34A4C073F642674B9E37461DB94F112A@namprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-Network-Message-Id: a33e6b7b-dbc5-462d-ee30-08d6447e826b X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2018 06:59:06.7355 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB5080 Subject: [dpdk-dev] [PATCH v2 2/2] eal: fix build issue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Some toolchain has fls() definition in string.h as argument type int, which is conflicting uint32_t argument type. /export/dpdk.org/lib/librte_eal/common/rte_reciprocal.c:47:19: error: conflicting types for ‘fls’ static inline int fls(uint32_t x) ^~~ /opt/marvell-tools-201/aarch64-marvell-elf/include/strings.h:59:6: note: previous declaration of ‘fls’ was here int fls(int) __pure2; FreeBSD string.h also has fls() with argument as int type. https://www.freebsd.org/cgi/man.cgi?query=fls&sektion=3 Fixing the conflict by using rte version of fls. Fixes: ffe3ec811ef5 ("sched: introduce reciprocal divide") Fixes: faf2b25c9f80 ("fm10k: support VMDQ in multi-queue configuration") Cc: stable@dpdk.org Suggested-by: Thomas Monjalon Signed-off-by: Jerin Jacob --- v2: - Introduce and use rte version of fls(Thomas Monjalon) --- drivers/net/fm10k/fm10k_ethdev.c | 11 +++-------- lib/librte_eal/common/rte_reciprocal.c | 17 +---------------- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index c852022dd..85fb6c5cb 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c @@ -464,11 +464,6 @@ fm10k_dev_configure(struct rte_eth_dev *dev) return 0; } -/* fls = find last set bit = 32 minus the number of leading zeros */ -#ifndef fls -#define fls(x) (((x) == 0) ? 0 : (32 - __builtin_clz((x)))) -#endif - static void fm10k_dev_vmdq_rx_configure(struct rte_eth_dev *dev) { @@ -1030,8 +1025,8 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev) macvlan = FM10K_DEV_PRIVATE_TO_MACVLAN(dev->data->dev_private); nb_queue_pools = macvlan->nb_queue_pools; - pool_len = nb_queue_pools ? fls(nb_queue_pools - 1) : 0; - rss_len = fls(dev->data->nb_rx_queues - 1) - pool_len; + pool_len = nb_queue_pools ? rte_fls_u32(nb_queue_pools - 1) : 0; + rss_len = rte_fls_u32(dev->data->nb_rx_queues - 1) - pool_len; /* GLORT 0x0-0x3F are used by PF and VMDQ, 0x40-0x7F used by FD */ dglortdec = (rss_len << FM10K_DGLORTDEC_RSSLENGTH_SHIFT) | pool_len; @@ -1042,7 +1037,7 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev) FM10K_WRITE_REG(hw, FM10K_DGLORTDEC(0), dglortdec); /* Flow Director configurations, only queue number is valid. */ - dglortdec = fls(dev->data->nb_rx_queues - 1); + dglortdec = rte_fls_u32(dev->data->nb_rx_queues - 1); dglortmask = (GLORT_FD_MASK << FM10K_DGLORTMAP_MASK_SHIFT) | (hw->mac.dglort_map + GLORT_FD_Q_BASE); FM10K_WRITE_REG(hw, FM10K_DGLORTMAP(1), dglortmask); diff --git a/lib/librte_eal/common/rte_reciprocal.c b/lib/librte_eal/common/rte_reciprocal.c index d81b11db6..f017d0c28 100644 --- a/lib/librte_eal/common/rte_reciprocal.c +++ b/lib/librte_eal/common/rte_reciprocal.c @@ -41,28 +41,13 @@ #include "rte_reciprocal.h" -/* find largest set bit. - * portable and slow but does not matter for this usage. - */ -static inline int fls(uint32_t x) -{ - int b; - - for (b = 31; b >= 0; --b) { - if (x & (1u << b)) - return b + 1; - } - - return 0; -} - struct rte_reciprocal rte_reciprocal_value(uint32_t d) { struct rte_reciprocal R; uint64_t m; int l; - l = fls(d - 1); + l = rte_fls_u32(d - 1); m = ((1ULL << 32) * ((1ULL << l) - d)); m /= d;