From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0045.outbound.protection.outlook.com [104.47.36.45]) by dpdk.org (Postfix) with ESMTP id 321605B34 for ; Mon, 24 Sep 2018 17:39:06 +0200 (CEST) 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=pt1XsOi4QhqCEmPinbJQQy3YjA6c34QjQRq3OvHRn74=; b=ecu04fyYxLaufTCcacjbsLf7cY3y3m5wvFqrcy4oe4v5PAR9XpI1iX76UrgCr3QRkdzOYeeOiuJ7KKJJGu/SCBAXTdnlk/qHg1TU9CfMd4M6GNdcGawpXmCY7xk/BUA3Xf/HE7HxL10M0I6mZvHYIfcHGjNDsW1gIi2cQlqsquI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Vivek.Sharma@cavium.com; Received: from dell-e5540.caveonetworks.com (111.93.218.67) by SN6PR07MB5391.namprd07.prod.outlook.com (2603:10b6:805:74::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1164.22; Mon, 24 Sep 2018 15:39:03 +0000 From: Vivek Sharma To: santosh.shukla@cavium.com Cc: vivek.sharma@cavium.com, Vivek Sharma , stable@dpdk.org Date: Mon, 24 Sep 2018 21:08:43 +0530 Message-Id: <1537803523-23347-1-git-send-email-vivek.sharma@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0091.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:1::31) To SN6PR07MB5391.namprd07.prod.outlook.com (2603:10b6:805:74::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5d8b6811-1218-40ea-3cc1-08d62233dc03 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:SN6PR07MB5391; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5391; 3:Q6ZyEwTCPKT1Al/mXFmFAzEXYbvjeayP5cVey8uo6+VsSTzjJddDx/3ZqXZPtBh30cb2P91IBwaWycc9NjDKvV+qmdmkPMOGPiDwHH6UBm1iaQO6jdxk5BqHOIaYK0iejV0yzE8yTF/yImSjcL5mAipk6yCCYftQMqRElOy9VrqnxRO6I/NNqn3At2H/XFhQGuqcvdnSJhADGUjhAGSyClpvgMhzbtAZWBMQQKA5xuqQiwSSSmgWLq63RaFTokDx; 25:drKsm9UUgaLcCj4GJtm1sGbmd0INZ2qkm6uFRDUbeK8ynSnrk9FGP281l/y6wGMOVYCAfkYo5xQeVabh/Lzq/ilLm9xOTzKYvytAzrirLzsMB6sAl/YQSLuLhecC9UM8sJrN1k3+0uPn2JvCLexN6OTZX+bq0dFPRvLiF33g3S3l2xhDlPHVB4LibYowOTl3YzLUiPpndH2R8hBcf68dsUYEhtb5YvJHYfBVTwto2N//z3fsKL7kVav/J977zu9os9ZFP0yFO0ZK7mMsI5g3ZC8ZuzoreKOdC7OEyeiESwMkJXZ11KbgOITswDGAvEnjdpkrp1l6530SnBgUOmoTyw==; 31:WpZ9EsZl1X7igDXzxExkYaMjhPNeTw3DSC+03bPENseYf1LQlQEj1fCDpvBetp5tLeI8Jbea8P9BSIfoOzIpt9f/x7EnkiGFld4rpDjZbYvKeXf4G3X3+7tsh6drIl8UV1U65QPGgkSPajaGYkJUxpBku1Pkf4bL+lWsMGnl6VakBon1wbDy4AUMv14BKsQSKzF9+FZQcEJC4/L/8uELgy2tGBh1asAtxMkw/w7MTHY= X-MS-TrafficTypeDiagnostic: SN6PR07MB5391: X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5391; 20:OczPXuLcz05SVCZvtc+60Gtp8k8ZFsVcGg6pct5a/p4SeNxjnltCF9p7gdSjdH+uMJ8ATnI4JwcyRLeTsh681KscbVXBGVonF61CvIhfuuSfi02KB+j8jora8fl5KOj1HbGBBsB2wa/VydIsHQJuIFAUeE99ZA+vy+8O6aOwkrgUNuL18PRtNazsEZ5cJt+4xNQ+s6lMK9yNlo2WOe+IEkoW/5j4MugXZ5h3ju2PHMEyaEAnOeViYlY0CpppBOd75IYpi7tw1HgedVPTsgI75WLWlDXbSAyJZBTeV1HMPC9KZlJgpgDr4Lw+/ciU8yCKB10hveRGFOVtvi6QzwtXcQSdME+kLhoeaWNCf6PicfI0N7uMLHYietsd/dA3Vn8iSz7beAJIpiSbHmEOeWLUYX5qJIbPe+OQrKoqctzjAoU1KZKnVC54gCm69eBdAY9vp+YVpQuFjl01gwkksRF7NVpj6Fi1TfRqpdPJd7Af6S7QicBcaBZDna2SxXcffkqdlQwBBoITazkcZ+jyQgV2PkV7gGjN9qHP5JpMVYphYID7RjZTorqZ9xPFif6ExtxYpvKp6EhFBsKAJvepPrAbodQjh6pCDtPB64DUp0Lw2cA=; 4:UGUI/1oHovjtWgjbaApNlO0Wl22XZAxYiLFEMbDUq25DPA8HL2RYKGgBMNlBnVKzJsuq+8kF4RfdsTivHrD7/Z6fHtpBQznXX01DawkdeGOvx84EfaNkVAgB6TBDgahThps42wdLUxXdBhc2l1woSFhx5kYP1rBrqJm2KpMVixhBIrfcNWUlpDrW7TSgV8QF8b8jkCnTrntwk/5Yza6qx/S01xm1UyB8CD23l8VwBfM9d//qAefMrddlNt6OVqwmYZu9qbib0lV9LdVbNuhg9w== 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)(10201501046)(3002001)(3231355)(944501410)(52105095)(93006095)(149066)(150027)(6041310)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051); SRVR:SN6PR07MB5391; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB5391; X-Forefront-PRVS: 0805EC9467 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(39860400002)(136003)(396003)(199004)(189003)(36756003)(7736002)(69596002)(51416003)(52116002)(305945005)(6506007)(47776003)(386003)(25786009)(66066001)(5660300001)(34206002)(4326008)(53936002)(2351001)(53416004)(6512007)(2906002)(106356001)(72206003)(105586002)(81156014)(16586007)(486006)(476003)(81166006)(6116002)(97736004)(2616005)(6486002)(956004)(44832011)(50226002)(3846002)(50466002)(16526019)(68736007)(42882007)(478600001)(316002)(5009440100003)(8936002)(6666003)(2361001)(26005)(48376002)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB5391; H:dell-e5540.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN6PR07MB5391; 23:k7wSQt5qH9oUJPnaJpMvOBspwmXq/xuwfjawqpOJx?= =?us-ascii?Q?TAqhY2kCAClzwyfi0AdHvpy+7F/KHIyQ+Zy7qf62zwyrajt+47AGk4AJAxCG?= =?us-ascii?Q?BtEYBy2Tj0cXoBWTxFzljrmVfG8Xd44/l4ystNJzU8ZqFtqbX4Q6kRGRYIKa?= =?us-ascii?Q?HS7SGfzLgfeNWy/YjqKhUdZjWW3uJAtFIUaJMCaw7U18pDWk0Zi51BA2voXn?= =?us-ascii?Q?Yo/dH13MN5jnU+KRwRkMfDx4BcwkKJQ4749H7iEQR3UknD/UEUNLEH9iotb+?= =?us-ascii?Q?Ovqy4Wo7byCrdjGUelFBQ0hq7U+JZrNPcRGR82Af/NEPE+JdtKmRDCH6/2Zp?= =?us-ascii?Q?zEWcaoP0gxC+Uj0eUOW0dAGCWCMxwR5CmlhcH7uL9hQQodCM/jitmKmIFTOe?= =?us-ascii?Q?43mRM2aDb69X6W5CnquZzz4yhte7sdM8KLhk8g6cMwWClJRcaY84gPb2IWzp?= =?us-ascii?Q?pbhW1/KLrMNVepehYWXhH/Ds+nCL3Sk+9ClJVa6P147QP5TlDO6B4pnwAo6s?= =?us-ascii?Q?+GeIU0UbTJt4cKhWNmnufGBcz4t7e/1M+BMqHxD8sNeg+UVbaZxWv7zfmgjy?= =?us-ascii?Q?P0CQ+Lp9yoOWT8nmqoRapd0k/IV2X74eG/EhRpRJr8YAXtEHvJYcQcTOwd+U?= =?us-ascii?Q?YzmDsyy1zcCw3E4qV2TzLDSj9Pz+nalhO6Vm1kf4hsOs36QaDV6aIfs4aulp?= =?us-ascii?Q?sefp+k3ZjF1DRQdHHvXNH+Klt353Z2Mqz0VcdJNpCD/74Xa9I0AQMGK8qZcQ?= =?us-ascii?Q?vI+8xsVnpCTwnvVh492nNvkX1iJc7EKwQCPNJ7vdjvqLmn1dm2zyOEoRMkJp?= =?us-ascii?Q?FsDYiMqDRoVjVOyItFnNM3TnMxbkMF2PTzDII5G6buUQYJYq20gq5fI4Wkf5?= =?us-ascii?Q?nZZoMzSI4s/v7bpwbXAIALJzi1CjC5USYpLu/PmOwIu5FkTJnyCegc8XjS/X?= =?us-ascii?Q?xYp0L8+b0alqHPne8V2nhzHGOuGcIeqFRUNoTNePuuTHLDmVnSsTYAGPsK5q?= =?us-ascii?Q?hkXMp/1yNhcLU8b4ytIle3P4dko1tCo59pUWTss3kvYCXk7yrUk1BIXjO+fm?= =?us-ascii?Q?uJ2r03/X+59suRuu8xs0Ha2nLpBcxtPO18ZEJaSBhy6vtoJ+79okPXpUJ0au?= =?us-ascii?Q?RJivSwLLGB/xjhQ3QBsexLM9Pj2uIeUroopozaBRMYDPhl56ruZCNs4cOrJ9?= =?us-ascii?Q?FZax/KUf+Zus5ccPPxu0AKVVIbSvpBT1IpAyXytI2HOIu7HeTL9qZjh4H0VF?= =?us-ascii?Q?5rr2KCujT4h4nIE2us=3D?= X-Microsoft-Antispam-Message-Info: TtG+/LRO0j29xqRgaAkN7XBMxoLkrTpfFF46O6i9nVubd3XpSb9U+SZpzHyJEhMLYaq2H8pNAw7+AolFQuBZQxxOzUnX4HvDB9ECMkEuW+K3faXtS+w+EGgNYFchdBGZLsgcABcnZE/Q25t+1hhrTRtXCDRIsOH6z1gN3P01kEI8UYo/UMqR+Wz4JifJdYwfm4wLKT/G+NcnOPWtnMg/OKLoYzcQxV6iaRgg4a2v/mxoL3t6MdYsRR5agCnwzBmb2CGyM57GI07vNzL37PCduXpvUDsJ9hb+jpiXSNm3pNPEWsMxaPa9+tjw0y59sg9NwwGbRuuUa1Lqp8vBYYHEkdHen/xjldru6gn5SsBx3GE= X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5391; 6:bbXSsISM9V575Xu2X7FHqAAPfwCEQ67URGvZ0RbgrjQiWJABIoVWiGUI0aTDTM0yCUPdT2mt9u2nlQ1sxMLya3hnYnq9dAunsKHcaIz91Tn5EEZseV/f3x7shQT+HPEdLt3q4c8iBjCF/Vrt9Ysp66U/mTJi/v1hnFk6MwdLGQO9vw1EfOA69Tw1OOTsVq2B3Y9W8Ik/Gs9jWHrf3XnEdosMABgE45c2rekWIk+RV34R9efTGvFchOSKkxRoDDAAHxo5p5g5AWzPTppiPSKNIGSxTtHVcoKytuXHsFBPi7i1DlzD2KhaEz1iD2vVzrV59ghiShZutVsZhQeFqcCpxJiWbDxP0JFfmN7PUruVoyhzDcUp1MlcWP+BUnYPXUqh+3Q7vdhd9GsDIZtL+fy0eC0vOOOVIUGg04BVZs1UuT5vKHhc/wvjQFWbHvyq2ykPzJwxm3JHYIOYz5bQBNjjfA==; 5:FTVxshryQqbTtMc65WjljdVvQIUvb30NMh32CM6wYszjOwrlomXz0iH3HWSyJ3n2ZQeld/V33WEFdLkTE8ZlWIKXm+523Crd+KjV7Fy0p+1JnOBSxftQbyXh/y3DSQSd+2sCbxZWDiwhDhGqZ9jlrKPbhL/bgG6qRDPmepTw6XQ=; 7:ugfkSNCTaEcM3L0avyAzjHf6BUof6N/hW2HhH/+wqWKtATJQFDyUW1QspImGKs9MYmaRtM6L9zSaTvjAqjXPBtAOxO2HHLKqAWEDk67M0wGPpiwDHFqzwAE2JdIHBvJECoc70iq7iQOvkb7xKR+fJMV4rmK1c5mhFDggZAzpjk68EJiq73ZAa+GbxoRxY6KtGkixJmjVybdoVlKN0vMom3XI6kit3k0zLW3906tP8xCoFSVRfvnHMocnpsOeGxiK SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2018 15:39:03.4223 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5d8b6811-1218-40ea-3cc1-08d62233dc03 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB5391 Subject: [dpdk-stable] [PATCH v1] eal: use correct data type for slab operations X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Sep 2018 15:39:06 -0000 Currently, slab operations use unsigned long data type for 64-bit slab related operations. On target 'i686-native-linuxapp-gcc', unsigned long is 32-bit and thus, slab operations breaks on this target. Changing slab operations to use unsigned long long for correct functioning on all targets. Fixes: de3cfa2c9823 ("sched: initial import") Fixes: 693f715da45c ("remove extra parentheses in return statement") CC: stable@dpdk.org Signed-off-by: Vivek Sharma --- lib/librte_eal/common/include/rte_bitmap.h | 14 +++++++------- test/test/test_bitmap.c | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/lib/librte_eal/common/include/rte_bitmap.h b/lib/librte_eal/common/include/rte_bitmap.h index d9facc6..7a36ce7 100644 --- a/lib/librte_eal/common/include/rte_bitmap.h +++ b/lib/librte_eal/common/include/rte_bitmap.h @@ -88,7 +88,7 @@ __rte_bitmap_index1_inc(struct rte_bitmap *bmp) static inline uint64_t __rte_bitmap_mask1_get(struct rte_bitmap *bmp) { - return (~1lu) << bmp->offset1; + return (~1llu) << bmp->offset1; } static inline void @@ -317,7 +317,7 @@ rte_bitmap_get(struct rte_bitmap *bmp, uint32_t pos) index2 = pos >> RTE_BITMAP_SLAB_BIT_SIZE_LOG2; offset2 = pos & RTE_BITMAP_SLAB_BIT_MASK; slab2 = bmp->array2 + index2; - return (*slab2) & (1lu << offset2); + return (*slab2) & (1llu << offset2); } /** @@ -342,8 +342,8 @@ rte_bitmap_set(struct rte_bitmap *bmp, uint32_t pos) slab2 = bmp->array2 + index2; slab1 = bmp->array1 + index1; - *slab2 |= 1lu << offset2; - *slab1 |= 1lu << offset1; + *slab2 |= 1llu << offset2; + *slab1 |= 1llu << offset1; } /** @@ -370,7 +370,7 @@ rte_bitmap_set_slab(struct rte_bitmap *bmp, uint32_t pos, uint64_t slab) slab1 = bmp->array1 + index1; *slab2 |= slab; - *slab1 |= 1lu << offset1; + *slab1 |= 1llu << offset1; } static inline uint64_t @@ -408,7 +408,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos) slab2 = bmp->array2 + index2; /* Return if array2 slab is not all-zeros */ - *slab2 &= ~(1lu << offset2); + *slab2 &= ~(1llu << offset2); if (*slab2){ return; } @@ -424,7 +424,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos) index1 = pos >> (RTE_BITMAP_SLAB_BIT_SIZE_LOG2 + RTE_BITMAP_CL_BIT_SIZE_LOG2); offset1 = (pos >> RTE_BITMAP_CL_BIT_SIZE_LOG2) & RTE_BITMAP_SLAB_BIT_MASK; slab1 = bmp->array1 + index1; - *slab1 &= ~(1lu << offset1); + *slab1 &= ~(1llu << offset1); return; } diff --git a/test/test/test_bitmap.c b/test/test/test_bitmap.c index c3169e9..95c5184 100644 --- a/test/test/test_bitmap.c +++ b/test/test/test_bitmap.c @@ -101,6 +101,7 @@ test_bitmap_slab_set_get(struct rte_bitmap *bmp) static int test_bitmap_set_get_clear(struct rte_bitmap *bmp) { + uint64_t val; int i; rte_bitmap_reset(bmp); @@ -124,6 +125,23 @@ test_bitmap_set_get_clear(struct rte_bitmap *bmp) } } + rte_bitmap_reset(bmp); + + /* Alternate slab set test */ + for (i = 0; i < MAX_BITS; i++) { + if (i % RTE_BITMAP_SLAB_BIT_SIZE) + rte_bitmap_set(bmp, i); + } + + for (i = 0; i < MAX_BITS; i++) { + val = rte_bitmap_get(bmp, i); + if (((i % RTE_BITMAP_SLAB_BIT_SIZE) && !val) || + (!(i % RTE_BITMAP_SLAB_BIT_SIZE) && val)) { + printf("Failed to get set bit.\n"); + return TEST_FAILED; + } + } + return TEST_SUCCESS; } -- 2.7.4