From patchwork Fri Jan 13 13:08:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vipin P R X-Patchwork-Id: 122072 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 DA556423E6; Sun, 15 Jan 2023 21:11:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7D27740156; Sun, 15 Jan 2023 21:11:40 +0100 (CET) Received: from CO1PR02CU001-vft-obe.outbound.protection.outlook.com (mail-westus2azon11011008.outbound.protection.outlook.com [52.101.47.8]) by mails.dpdk.org (Postfix) with ESMTP id DDC0140E03 for ; Fri, 13 Jan 2023 14:09:44 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Il0u3xBvuDJTDKBggQxzo0GC6S4/t9+DA/MVakQ4J2LgYJdFDdqcfvR9FvudR2axYv9ZyHJY5pleK+ODRQjXCucf1r+7pJZahs0SLFQRP4X73yEf0FNbvFqKKu46wjC2Y7eC3vI2VF6B/OpRs7jdztiFIbgJrfq9gCo1etsX6xItCwcoz5uq6tLCGLyjTapEwMYQ+pxla73dKlw5Y9Jp30vqz6gkm1TPKHaFgDsWWzBYhRKBNaAj6faidnOHQwdn6P5QevOdmhg6c0fSzXPou5343rHy0oUUsU/tyL9dr9wAR3+uSIXxi3HABcZxkAiFUUagoaAJX8IXyi61Ga1Y8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5AKURxHMcM/8+VbOssO5ZewU5zPbxvsvnltXx/lZJ28=; b=oNfxzCSfFpc+ZAWXVal5GdJJwcf4PvR2DF4srY7Ml6No8mEkA+yr2SKbImzk+hwGbbQq9A0e8HzQIxpdpB0lHxiTxBLlEPc6lTMep//+Imr0zbXAMf7LTOpYMvmAkxLJRg5k9jxzjWjdHWTUeRdDJQ+LoKlRCLUXhZ1T4j+QEyNjX1geD51LRsDPFlUHBiJIH2NWCxtU09+48koQCTo5RgCbQCXTIZgfkkLT+vulGm4+/D2sIg/vefkL0HYuyvkUzlux8t/dnmcBZjRWwlwTtxaid8UtJq4dgql2Osds84Dm+vB6cWLZWnbfT7SM0F6U0YWKiB5nXOtFdjT5fxfstg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5AKURxHMcM/8+VbOssO5ZewU5zPbxvsvnltXx/lZJ28=; b=MDksTI6v//RNfMdyJUHaIdAB4C8mmn08sRDVS/UC0FCBAO3XnHUxZG8tV4hxNtlj27oC3mb44Bdn8G4j99S5GjkiaPD4BkG7HA8fBO6TWm6iExkW2K7f1WIqVn00N1G6/h7O0U6qs2NIt2yr3VU0CSJx2qfUPt7LZPk+mIIvsoA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; Received: from DM6PR05MB5577.namprd05.prod.outlook.com (2603:10b6:5:c::16) by SN6PR05MB4366.namprd05.prod.outlook.com (2603:10b6:805:2f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Fri, 13 Jan 2023 13:09:38 +0000 Received: from DM6PR05MB5577.namprd05.prod.outlook.com ([fe80::4cbc:cca6:3a16:5023]) by DM6PR05MB5577.namprd05.prod.outlook.com ([fe80::4cbc:cca6:3a16:5023%4]) with mapi id 15.20.5986.018; Fri, 13 Jan 2023 13:09:38 +0000 From: Vipin P R To: anatoly.burakov@intel.com Cc: dev@dpdk.org, Vipin P R Subject: [PATCH 0/2] *** Memory Allocation: Fixes ms_idx jump in fb_array library *** Date: Fri, 13 Jan 2023 13:08:43 +0000 Message-Id: <1673615325-20624-1-git-send-email-vipinp@vmware.com> X-Mailer: git-send-email 2.7.4 X-ClientProxiedBy: SJ0PR13CA0170.namprd13.prod.outlook.com (2603:10b6:a03:2c7::25) To DM6PR05MB5577.namprd05.prod.outlook.com (2603:10b6:5:c::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR05MB5577:EE_|SN6PR05MB4366:EE_ X-MS-Office365-Filtering-Correlation-Id: 737f39dc-6fc9-4402-d195-08daf5676cc9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BEv2MtmxtXmOCexhaNwajB82KW25OfTDp0E4QpPYmKSRzXZNbJv8XiBtFcgcWaCxbfbO35RsJweMEpu8zGQ1dix5yThP1impz8eETfavwm6xGK3TgZN+Rt7pDwUF2+GFJ9VvuC1pS+Vqtr0tUzjvOEDTz57otMMZmhdUYuhbQ9RQ5D/n+5XUZbZivKkSPuGP5nwU6hoqOESQ7JfA8gOJVEesXpTNtMGAzINvIFcGzdudyGbiiHKB5NgbHtaIQsZjWcbtSQJiDTFLImi0Xh518BMu76NM9grlkIeyVUQ+BezijBXi95SzXvYFfwx9VcnxWz36R8AJ4QM12utaujOi2ZGHKvD9S+FL0zR6uGN1Z0IZb2JENxlOq5now/qo4m5oA5z+DreKOvNzsYeThJNlnW5GkmGJFzXFW8jvMH9142u7KYrGqjoObJ9uvWtT1+XvdwoPSY4qw0K50gDCtlnbmUx+nvn62BUSD8jW8DzR9Fkivf1DOYffQSkhqVmIBhpy0t88sfdX3A7wQS0Ek1WX22otnKDkhECbaQRTh5lQpy8jhpGOstM/mVML1gxdOBJ5C2el5IyJJPuwHOEpRe2/PktK6Y/QcsGx++bGiuyrsXl4Z5DiumnIXnrr8Oos0RZiGhsppHk+6L7JMag2jEwy1P4QxXnYsYdIXWxz9ASLFbZI7U9P1KrbZ72VS1U9gKXUpnI3VxdL5XgyKMEVt/NfmA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR05MB5577.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(136003)(366004)(376002)(396003)(39860400002)(451199015)(8936002)(26005)(2906002)(5660300002)(41300700001)(66556008)(52116002)(4326008)(316002)(8676002)(66476007)(6916009)(66946007)(6512007)(38100700002)(2616005)(86362001)(38350700002)(186003)(107886003)(36756003)(83380400001)(6506007)(478600001)(6666004)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ARKqtN48gINNgKOzpcvgiWIg4J0FaWnVHDjkH1I+NqW+Z3VvVFlJhveUdgCrhJdqVNfxiLPK0H/niG9wXllh4eOUsanreXzQHO0OVAToT/Tb2cl80sQvZQOAc2XHRuuvVDMVA7F2kD2Z0AJnXMBtzxeSDIfzqzFum5CToodIwht33mADzjevMNCV9+6AbX1MrmAYxUFzN5VilKLMWzOwpT1z+0im0vGSsfqHOHtOWZDI/HAIex0wO+VhecZWrJ3YHXuKyyGkZRwzAq+RVkAwAv4Xrx2FxF2A9ERV1qzvrKj1tBIUjPpsfJMJmtkuks0v1Cs+CmynbWeX5QRlsVbLTefKrByW0I9IcsAk3wR0pRs4ns407k/claelX1HNT0roGJl7Yle36dxyt9+JvG9Njwwnck1f6Y7jYW0kUArZrZnDOsfemKcTmjbElxBR1eGd86iNLmWKNPqOQzxaVHt2hux+Rxg2+NwamjSVtcmf0VcVNWkUPT0/gc583Nsuz11Ab9LEiCbOjtl3I6akEYta/hDapVcTktQy+wDgE1xdjigxeTMHsnB4tdWBsGYYtZyBpaSM+0l4KeMp4Zr1U3BcJbwimkJ5dujfT9IZ0da5iBWdF05L84KrhOurWyCVMYhctYp6v77FvxD5kCJ9aLg8lXV4lTtlAIPXsxtRlBDTAFFO6pXaFtWR2+Zf9S7j+NxbBXiJ+RyghlajMRHSyvBQIHM2wholk+4Wu1xpLE7m7CZIGRqotsEeLLsNTjZcNvwPKf99flvm6mN5WpXVy+u6ZPvtXS/1MpSbluT6xHE7hRennwyKB0Kti320tgfaZHzpU2z9SJSIKRqYg4x2M5IULUX+6x3lZpmjSebsPdL0XY7ql34mLSfTcHEfoYfi3yqB53Fj1gDVsaDDIlnUz5E6KLT/XkwWSL7yyopwc9pn/GM6jg63+as8HyzCkt4NVOEGd5/TH88EYn1qCs66hAscbF3czckAsOZ2lvUWoCFXUn08nizWJLx1vj904UPmcm1U3zcwqZioFhDTdS5hu7FesFyvumzdoOO1A9yJm3sdldC0jKt5Dnql31Ji/MJkMMAhbK/GFZDd88GgV/yNEEq1ftBzo8EM6JDzBKnpaHacOxMcfQuEYW6VoQ6zQK9z8GSWyKpv1ol4iNJxaAvGtWESGsMoF4F6EmCdEPp9DyuhRPnysI9j15Zp/HObPdar7ccwS85wrbpDoeQ+pbqRnbi4XkgwiGUsjhSx+UVIxSkgZHEF/mMgVjIX+u7AxyNK9KwVDE1ShrUTtYq3exI9hkEBLjUYnW71J1vOIOC4M1lYnAwWzPEy9+9iuuFn2oZwuHkEZNcJ5t8CWhSXYT2/BqnkRV5pOzdfWxoLNG7JPrj8pBuUeYHHE5k3qFOCMh4u+jgmjuiN/fw4t0z6bPpGRseClZAmWkx7cDlaS/Y8urKuJMlFtPEjE8IBRZGXPD4uoCXMpPufSLY4ftAXiKaWIwxnXDCh9a6CcL/6el4kCPU9x0j3Q2U11MBJWcSAWIeV3mhvK0q6F2/VNVb4B/n9aP4w2h7pvEtA8k3pdePGPJWjerehdtxvADFYyOfG1D8H3Qbt X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 737f39dc-6fc9-4402-d195-08daf5676cc9 X-MS-Exchange-CrossTenant-AuthSource: DM6PR05MB5577.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2023 13:09:38.4604 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SWQXVLG+poq53iKzcKsciY5lqdqp4SGMY+ecvTIV8U5sJVjj7ALkOWLHXvkdcROs2Oa8ReKkOz/nf8iJ3EzbIg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB4366 X-Mailman-Approved-At: Sun, 15 Jan 2023 21:11:39 +0100 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 problem : In the legacy mem mode, when the fb_array is being populated, if there are holes in between, the ms_idx could go backward and there will be an overlap of the region starting from the ms_idx returned later. i.e. it's being mapped to two different physical regions in PA space to a contiguous region in VA space. this would result in the allocator assuming that the memory is contiguous even though there is a hole in between. In legacy mem, allocator assumes that PA contiguous are VA contiguous as well. Reason for the ms_idx going back : In the lookahead logic of find_next_n(), if we fail to find contiguous "need" bits, we ignore all masks till the lookahead when we run out of options i.e. the LSB bit is not set or more accurately there are no "need" bits starting from LSB, therefore breaking contiguity. The optimisation is to avoid repeating this operation and therefore we start from msk_idx = lookahead_idx in the next iter.. However, in the outer loop, we increment msk_idx further, resulting in msk_idx = lookahead_idx + 1, thereby inducing a jump. This problem becomes apparent when we have partially filled bits in the lookahead_msk. Further iterations might find the necessary contiguity from such a lookahead, potentially resulting in the returned ms_idx value to be lower for subsequent iterations. The assumption was that ms_idx from rte_fbarray_find_next_n_free() is supposed to be incremental in nature, provided that the value of n is always constant. For a sample input of {1, 1070, 1, 2, 1, 2, 4, 12, 2, 2, 1, 2, 1}, Without the patch : 6358 EAL: ms_idx:1097 6359 EAL: ms_idx:1098 6360 EAL: ms_idx:1099 6361 EAL: ms_idx:1155 6362 EAL: ms_idx:1156 6363 EAL: ms_idx:1158 6364 EAL: ms_idx:1159 6365 EAL: ms_idx:1154 6366 EAL: ms_idx:1161 6367 EAL: ms_idx:1162 6368 EAL: ms_idx:1164 With the patch : 12730 EAL: ms_idx:1096 12731 EAL: ms_idx:1097 12732 EAL: ms_idx:1098 12733 EAL: ms_idx:1099 12734 EAL: ms_idx:1101 12735 EAL: ms_idx:1102 12736 EAL: ms_idx:1104 12737 EAL: ms_idx:1105 12738 EAL: ms_idx:1107 12739 EAL: ms_idx:1109 12740 EAL: ms_idx:1110 12741 EAL: ms_idx:1112 *** Vipin P R (2): Memory Allocation: Fixes ms_idx jump (lookahead) during find_next_n() in fb_array library Memory Allocation: Fixes ms_idx jump (lookbehind) during find_prev_n() in fb_array library .mailmap | 1 + lib/eal/common/eal_common_fbarray.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-)