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;