From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6379342B22; Tue, 16 May 2023 15:49:24 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3C4D541141; Tue, 16 May 2023 15:49:24 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 71038410EE; Tue, 16 May 2023 15:49:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684244962; x=1715780962; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=PHiW4i+yEzUbvNnQjB1Pr9irRRuYrwBRwrvpYCw+0vI=; b=Z43kU62bmwbPL+ZafkfG/Z0RorNl+Ap9feRj3BLdsQyzVn4Zcg8oLFUP JVGX83+Xxj4Na1GvkosIJakaE/pQR+eIUTw5F/woU7D3VKMQFSCKDvtQA tIgoon3+k/xFOJKvFpXdxyq5zW60OuxmxxrPrzUYi6oxgaUHOrTOOZsxZ WuTu/nFYtJNev9Sf5iyPVCB3pnqo3zRbF958YOKmn71JJR97k+brlCSkd wetIGUmGSXGBw5CVNj5KK8fe41q9/kmVvL99cPFKrNs5DyZ/zqO16rM5e 9dkhwfur5stOevcTat9NlJT1Pb6+Po8M30tMrARZiI+Zst8Bezfd9CYiY A==; X-IronPort-AV: E=McAfee;i="6600,9927,10711"; a="437822060" X-IronPort-AV: E=Sophos;i="5.99,278,1677571200"; d="scan'208";a="437822060" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 May 2023 06:49:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10711"; a="701352854" X-IronPort-AV: E=Sophos;i="5.99,278,1677571200"; d="scan'208";a="701352854" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga002.jf.intel.com with ESMTP; 16 May 2023 06:49:18 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 16 May 2023 06:49:12 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 16 May 2023 06:49:12 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 16 May 2023 06:49:12 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 16 May 2023 06:49:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NFxlT2ou69Dk1JaeT7CcYl96pxMIuQ7v+IlLGU9e4LVzn9gLSehckDm2CPbC7UR8q1i+iQAEFGrdUp0XXGjDHeRCq8UH4H6z2uUozAAu13bMjnly7BQGWz4SY9CoMlTqH0V8GAI2lKV5N7nxUQiphjDwMWoMGNoWILS3Ebq2RjhOFFIwXcqWqy+W6NuP095+oD8jwQxPSg/6wIuWdLD1vnHg9zpEFTjVD5tdORWYyn6ynkp0TaTVhs41D/5WolIvynRu3Kdzt4RfFiphGtIhQxNb/JkYTG72MKiMLl1U/hEb1hHPAK++pFrK1xcnHPppPhujVZdp3zTfUd8M7OzAkg== 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=NbLG7vYEuyGzvpH5rARl3y+RrYqbqkKfgVg2eBzlV9I=; b=FgjIcenUZZlrWwiLaHVkp6eQyRkL1wOdweVnmyT8ftMG43ntFkz+VG/XVOlge56ALtSRrQE3iy4LCdr/8w2c1t6fZkt2DFXkQh7Y9zZAB8QVu2j2BB2UseRHIP2PqjpNixK0OUeN9BiP007tb7gm+bgGlKTPMhlQ/B5O/o/bj3eH0Tm9XPRYeoFH6zSBLn7uV89nBJF0htFVDpZj4Ge0ykki72ECHv8a6rfu6QQTfWu1RHbZNdWiTXi6qVYfM8zozu3JQHoJAfiWzRXgLRjeBkfUfdObehzXIGbWKBH500flpFJ4FLJxc02E6pX1ud+rvdddR6JS2Oxea0zvdJp+Bg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB6502.namprd11.prod.outlook.com (2603:10b6:8:89::7) by MW3PR11MB4634.namprd11.prod.outlook.com (2603:10b6:303:54::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Tue, 16 May 2023 13:49:10 +0000 Received: from DM4PR11MB6502.namprd11.prod.outlook.com ([fe80::49c0:aa4c:e5b4:e718]) by DM4PR11MB6502.namprd11.prod.outlook.com ([fe80::49c0:aa4c:e5b4:e718%5]) with mapi id 15.20.6387.033; Tue, 16 May 2023 13:49:10 +0000 Message-ID: Date: Tue, 16 May 2023 14:49:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.11.0 Subject: Re: [PATCH 1/2] Memory Allocation: Fixes ms_idx jump (lookahead) during find_next_n() in fb_array library Content-Language: en-US To: Vipin P R CC: , References: <1673615325-20624-1-git-send-email-vipinp@vmware.com> <1673615325-20624-2-git-send-email-vipinp@vmware.com> From: "Burakov, Anatoly" In-Reply-To: <1673615325-20624-2-git-send-email-vipinp@vmware.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0189.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:311::15) To DM4PR11MB6502.namprd11.prod.outlook.com (2603:10b6:8:89::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB6502:EE_|MW3PR11MB4634:EE_ X-MS-Office365-Filtering-Correlation-Id: 49b7299b-64df-4339-5143-08db56145315 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tUYgj0Oh7KVtp273oGwuDOY52FfJ5zaWfTSAbk9Hngcs4dyY/z9pBleGwL1hXgLnfNowtm3+R/ge0jM1vBC6pTylF6UmQL+eSBgQL1DzILV2jgQsKLxkrFYWt2zyrIAcQwQGOufl78TTlDUf7mWcrmUTQ1X2ujpXsy5154SvMu6QSag738O+SR0Ns4BH+5qOzqrNLBMXYmEuRaDMHAPfCLipw6TR7SedPxQaTboCzohMMZTlvVptTJtaR7pdEkARTWS1RbpUDEhGnVhYQRR4nmpLKbNdZM9lnY3sFNmdNTU28NITf9R9R5ahdnoEqDDZOWTRwM9S5nkyCWfwto8qGusSU/Iev8KcSnXX+kLTDSr+vR4t7/tXdeLLyKCAZBxcCjPGkYYO6dTTrNRgHt2XTJohRiptdGFC8bPPu+MXwkNyhobVDEr8InyEYjfJOnH9dc/EMjX/rCrpNBKAwPsX7z5t5FKv/Md3vWD7PC/6/74jOZJLgV0FrtSwKxUYgOVXfk3DIiSrQD02LlJNhfFctNjGojZQAq0F02/sQwXisbmVjAYTbJq4sbuGIXhapyVMHLES4WYtuNsngBFTo8aENoW21JaI2lMjXh+x4gWyR90XJL+XDxpl4uZPWO+rFNV4IVLEWnyFvdu1T/tXtNrE0g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB6502.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(366004)(396003)(376002)(136003)(39860400002)(451199021)(8936002)(5660300002)(8676002)(31696002)(83380400001)(2616005)(26005)(6512007)(6506007)(53546011)(82960400001)(38100700002)(186003)(478600001)(6666004)(6486002)(41300700001)(316002)(66556008)(66946007)(66476007)(86362001)(6916009)(4326008)(36756003)(31686004)(2906002)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MW5MQ2QvQUo2cnBBNUZjTXNTcjZ1bFpmNThZV21JL1drekV6ekNPbUhRZVN2?= =?utf-8?B?RHp0ZW45djhlQ0tVTjN2MGl4SUEzckF1bEJzM3RIb1Z0TUpHVWFHY0sydVBm?= =?utf-8?B?OEk5N1FtZHcySit0eC9kL281Z2c1dTkrUnFpWjVOVjVKMlpzSWhVQlptek5m?= =?utf-8?B?Vlp5NTNMa2c2WWhOcTJiNGdxNnFGbUs4RXBFdVhNbkJZakhTS1hYV0dITEV0?= =?utf-8?B?YXZCNmZSbzZxOXZ5OXpDckZHSHd3Nmh6ZU50eU1XNjA4elZ5d0N4MXN3ZjNE?= =?utf-8?B?UUR1MlFWUTNuZm9NamJ1b29kVjY2dy9wQk1vZkpKc1dFb3dCdXduZFVOOTE1?= =?utf-8?B?b3NGOCtmV1hHanBaOXVRQ0taMHY2emVXUWJjTnJtQk5vRXdPRU55NTZhazZX?= =?utf-8?B?bVZyRFAvd3FXWGZkTHRNNWlJN253emRiTGhuS2VBYWV5dU1vSmR4YWJHSmZR?= =?utf-8?B?UlpKUm0yT1VzZ2pRam93ZnFpVERPUGRLOFY1SVZxNzB1dW1UalA4NVJJV2kx?= =?utf-8?B?K0lGYVRYWXZLWlhSZWlGaDN1VTRITHM0TjhnQnFGN0UvSkduM1VRNWg3ZVgz?= =?utf-8?B?U2RVWVRuT0ZiTEVwVkpseDNlNnM2R0RpK2h0Q0d1aFBsMjdsUm5DUGI2MEl2?= =?utf-8?B?M0pKWWY5SE5lMUNQMjJJdE9od092N1NUaE5zVlNUOVp4eUd0ZEhPVDJ2QkdW?= =?utf-8?B?NEE4WWpNM1k3bjFEczVWcHZEeDk5azdWM2I3YnplOTRaR1hiQkdsRHduY3RG?= =?utf-8?B?QzRwa0ZnNi9zaVcvZUtMa3U4bnRQU1NOQUQ5NXFRbFQzd3ZXVnVQbkp2blds?= =?utf-8?B?Vms4dWpaOFVHckFFbkZpZVdwYzhDMXV4dTQwSlJpcDdRc0xQcXNHdnFqeTE4?= =?utf-8?B?TmtZYXZXUFZSYml0QUNDVks5NVd3aTY3V0hnRGdoSjArcFJGTFdLQUFLVDRl?= =?utf-8?B?RDhEenZ3ZEorMHFDOHpUZHoyRm5iUjUxdFMwMDlxYkQzNDNlL2NFQTJtRzJK?= =?utf-8?B?N2N0RkpLcHRaTWlXQmd6UzdvUG9PeUhTV1pkU3QxWERiMFBsZjRGcE56Ykx0?= =?utf-8?B?RUZhQU1KdCtuZzJmc29seTlBQTRxckdEcmxaUWNhc2RhQjljQ01QdEVDKzRH?= =?utf-8?B?WGdNRVZyNk9XV09iS0pXR0NOTDgzeHh6bGxVbEZpVzFUYVcvOTk3clc5aHhi?= =?utf-8?B?bm5DY015TnorTGZWVFJLL2t3dFRRcURGUTdOVDlsYTNublVpb1hLdlQ1WVZO?= =?utf-8?B?LzJNVnJSWk9oYmFUMzlMbWE0VTdLdlFVcldPMFhwSThldDB6TU9ydHo2T0tp?= =?utf-8?B?OWdBMlpzUzBuQ04vZ2Q5N0lGdVFzdEl3dlZQSFJlUEhReGlmUmlJcER3Z3dO?= =?utf-8?B?b2hEeCtjeENEV0VBL2dvSm9XZnBqcjVlZG50NHRyVUtvQkVtWDAybmtmUHc3?= =?utf-8?B?ZXIvV3pJdU9lb0VMNTl0aVE3dGNBMm1UdDFWc1ZKOUkyc0xQbXpsZUk2VGZP?= =?utf-8?B?RTdYK3lHd0NGTG1DeERUTzFvZHdpUlhhZXZlSksxUURzeHpCY2JqZ2ZtL2Yr?= =?utf-8?B?MHg5YXdMRUJ2VlBoK1BCRnE5TGsyelVCa2tMV0ZUS2VLcU41cW5PS3NIdGVF?= =?utf-8?B?Q1BiaHpweElBQnNRcWl5YXFIVkx1Mm5HUDQzcWltYWtnbEVFM3BhNUpKSHEx?= =?utf-8?B?RVN2MXRhZVFzcy9rYmZxSjJsNS9qZ00wdU1nS2hiYzBwVjhqVWNxYnBubzky?= =?utf-8?B?L3BYczRoRjhyT0s5OFpOQkFJM1QwK2ljU1hYV1N3anpUM2doMFBkMmhUNzlq?= =?utf-8?B?ZHE5eDQwSjVYSnNMcFB4aWFEbGkxOWkzandPZkN6bDJSanRRbFZ5VytuNUky?= =?utf-8?B?MnNCSXZPYXh2Sk90RGM3RjdKaHFlazdpN1pMZjlhc0JBdjB1eW5FOVVZN1hy?= =?utf-8?B?TE91RTdOekJBKytpb2xncXhRWkhiRUZoaC9DbHQyNEFTeFJQYWUzU3UrRW1P?= =?utf-8?B?bFNHalpVb3Q5UlZFOVlicW8rTS9zK3RqdWluUmhkM1hPYkxhM01BUjFXM3p3?= =?utf-8?B?Z2lEQm1qNURESHp0aEZjdFFjME5uU0ZvL0ZkdGRSNUMwNyt5YWpqWk1LOU1l?= =?utf-8?B?TnovZWZHWXV5Rk1OTytEMW1Xc0tYWEhCRGRhS0R3NkplS2M1cGEwUFE5WmRv?= =?utf-8?B?SkE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 49b7299b-64df-4339-5143-08db56145315 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6502.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 13:49:09.9145 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Dfl6WOfhuODNXhX+p+tuh14oj1NtPWTMsMLJA+/1zHgTTH5CrFA9DPZjteG4ca7G4L2DQoc8UqpsHbjRlA4uAfrGuz6Bowf6lOagFbMO/DI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4634 X-OriginatorOrg: intel.com 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 Hi Vipin, Fix looks good, took a while to understand what's going on, but it's a great find! Reviewed-by: Anatoly Burakov Couple of comments below: On 1/13/2023 1:08 PM, Vipin P R wrote: > 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. Technically, while this bug is indeed triggered in legacy mode, it does not in any way depend on it, so I would suggest avoid mentioning it explicitly. Suggested commit message rewording: fbarray: fix incorrect lookahead behavior Currently, whenever last bit of current index mask is set (meaning, there is potentially a run starting at the end of the mask), lookahead loop is entered. In that loop, if the first bit of lookahead index is not set, the lookahead is stopped, and the current lookahead mask index is assigned to current index mask. However, because at that point we are inside a for-loop that increments current index mask after each iteration, this results in additional mask index increment. Fix it to leave current index mask at `lookahead - 1`. Fixes: c44d09811b40 ("eal: add shared indexed file-backed array") Cc: anatoly.burakov@intel.com > > Cc: stable@dpdk.org > > Signed-off-by: Vipin P R > Acked-by: Kumara Parameshwaran > --- > .mailmap | 1 + > lib/eal/common/eal_common_fbarray.c | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/.mailmap b/.mailmap > index 75884b6..3707bf5 100644 > --- a/.mailmap > +++ b/.mailmap > @@ -1391,6 +1391,7 @@ Vincent Guo > Vincent Jardin > Vincent Li > Vincent S. Cojot > +Vipin P R > Vipin Varghese > Vipul Ashri > Vishal Kulkarni > diff --git a/lib/eal/common/eal_common_fbarray.c b/lib/eal/common/eal_common_fbarray.c > index f11f879..551bd87 100644 > --- a/lib/eal/common/eal_common_fbarray.c > +++ b/lib/eal/common/eal_common_fbarray.c > @@ -236,7 +236,7 @@ find_next_n(const struct rte_fbarray *arr, unsigned int start, unsigned int n, > * as well, so skip that on next iteration. > */ > ignore_msk = ~((1ULL << need) - 1); > - msk_idx = lookahead_idx; > + msk_idx = lookahead_idx - 1; > break; > } > -- Thanks, Anatoly