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 AF69145A01; Fri, 27 Sep 2024 01:52:06 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6146F400EF; Fri, 27 Sep 2024 01:52:05 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2065.outbound.protection.outlook.com [40.107.243.65]) by mails.dpdk.org (Postfix) with ESMTP id 6DAC74003C for ; Fri, 27 Sep 2024 01:52:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oYQYaIuXNMXUiuGa2Yw9Hiyo7qojexnQxN91etDTRV86+9kGnjhFSmT57eTiKZaLjvSXx3B+Fze90U3rE+43rU+aFblwDSjDHweoxutMoNt01kfwDHGf0FwjZy1ZOQ8wONIy+fHniAoqySg3AfzV5TMbrncMQRrKUMlf2LYPfccUqQQlFgwojeJgsGdZLnQ7p2WRzPZLeB4O/6vgLV0pvS0qx8F+SKB4BGT6F10CNIzxUHlWSzS2rRJm6AKlzMpRv3Hg3D3Jn354iCGen1Kt7bHowgmlFcvZwSlkqKlhHCy25IqACvMjCR2aBdCaOxBnpUP+noFSkd1UmHsmfV216A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=8FwvMT/Nkw9YKqupxtfzaattb+dM2m9WcmG9i2CvIJM=; b=D3gnNq3+wdvCdM0au5c7k+UvSWhv253RdG/0yOMS788HL2sWTURgRTwYtyGtKBwB+cLur2mP4IWP2UF/itH9psSiC7EeVXYa/VQF0pvZonpOXfl7wCouj97IiiGBi+15WKrFcxJIlCVh1u3r8ZQm55eGL7QaoB1woqd5ZFLfHrXl3wwDQTyp4UkzrdeGym0rzLy/ITug7bKHQEBMSSe9TLNcLtz0A/Rjg1Fg8eq7T31dPWoSDESHDYvro+DghHxULzaPhqp5ipis1Jf4EN5BGw2YUrLVtp6DW9r7QV/hoyPBbzDnW1sZUnpie3M4tcjn72I9rsnkTV11NM3EqGUhIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8FwvMT/Nkw9YKqupxtfzaattb+dM2m9WcmG9i2CvIJM=; b=SDEpcY+kXOoshVK7IlB4F932z8mJAVlp9mqnnrwyINR9qbcBHOPR0Ce0eF8ijUDFBHKDiWhwgBQtTHGqzSSdiKNsL76Zev8YZQdb9LsTy2Z0hpeHafWdqmlvk/hZuUpzhdmX2EfPx5C0hwvelmYhwOSuunaE62LPPvdmY37okQA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9) by SN7PR12MB6791.namprd12.prod.outlook.com (2603:10b6:806:268::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8005.22; Thu, 26 Sep 2024 23:52:01 +0000 Received: from SJ2PR12MB8830.namprd12.prod.outlook.com ([fe80::c3eb:df02:eaa9:2055]) by SJ2PR12MB8830.namprd12.prod.outlook.com ([fe80::c3eb:df02:eaa9:2055%4]) with mapi id 15.20.7982.022; Thu, 26 Sep 2024 23:52:00 +0000 Message-ID: <30e72a96-0eec-41d1-b232-a7b559a419f6@amd.com> Date: Fri, 27 Sep 2024 00:51:55 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1] ethdev: fix int overflow in descriptor count logic To: "Meade, Niall" , "andrew.rybchenko@oktetlabs.ru" Cc: "dev@dpdk.org" , "thomas@monjalon.net" , "roman.zhukov@arknetworks.am" References: <20240923092601.728817-1-niall.meade@intel.com> <461501aa-9483-49b1-b244-60c2719878f9@amd.com> Content-Language: en-US From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@amd.com; keydata= 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 8Zk= In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P265CA0212.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::12) To SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ2PR12MB8830:EE_|SN7PR12MB6791:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ac5ff1a-01db-4b63-8ff8-08dcde8636d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?YlZOWUJHT0hMcHNFNGNXVUVoYkFUQmowM2pLY1FvL2w2SEQ2SWtNQTJicjNS?= =?utf-8?B?K25EQ09heVFvc2JzZ1pZMWQzSFh2QWJZSUlRN3R2eU0wRGg2Z3RkSi84S2V6?= =?utf-8?B?ZGNURXFvSXJrd2t6aDhvaE5JNWRpRDhsQjlCNHE5SGZWSnZBV2s1SVhjTEJU?= =?utf-8?B?aGxTME9Jb2EyaHdqVURldFg4THlCRWJPaEkydW40bCtBWWJJSnlyY1FrUXRl?= =?utf-8?B?ZFdicWM1Q2RSL0ZFVUFzSjNvQmNodVFGWHVvNEExZyswbzVxclMwZ3pKQ1Vq?= =?utf-8?B?aUtla095N2UwSnorcU8xU1dpRUpxZDhqV0w4Zk84TERYM0NLWUpVRnU3QjBq?= =?utf-8?B?Z0thVk5HdERxa3F3VXl6cm1HNHJaT1dsR0RPQjlIWnFoNzV2M1o5c1RQWXMx?= =?utf-8?B?ZEZsMkxLUklWOTErVWRZZFJxeUNHMVZuWDFoMGxhbFBVQXhDdThuTVFGVWRP?= =?utf-8?B?N2dwS0Z5ZUQ3QWhpVlFzdDdkNWlJWjViTTk1M2JYSHlYR2VDSm50VWtsaTZZ?= =?utf-8?B?MWFjb1JPUG9GS2lQbmxNbm1wd3cxcTNhd3VXOWJsS2YrWUtoaVRYbU5yV2dG?= =?utf-8?B?YUR5Q3JlNFBVL2xXL0c2QmVaWFd2dytCMkJyaU8raGZsQjA4NXNhVW05NWcx?= =?utf-8?B?M0J6RE9DWVB2Y2NtVnlEM3dSSVB5MUk0ZlArVDI4YnozV1JHbVJiSythQTJY?= =?utf-8?B?bjMySFo0Mm10c1lhSmVIZW4xUnc1MURxOW16eTRINHVZOFBOekhJZ08za0h5?= =?utf-8?B?V1JZeEp5ak5vSEd0ZHlJVXNJNjQ2MloyNDRmaVhXTUpGV1hQdjJmazZtSDFu?= =?utf-8?B?S3hucVN1R2RTdmNBSHBOd3FHWFF1TlQ4VFI0cWZTRzJ4SUFKa0lFQXNpMndN?= =?utf-8?B?b2ZTeG1qYm95K1lCTUhwV3pmSlB6YjQ3aUQ4Ym8xaDE5YnBNUFNyamhKbHFJ?= =?utf-8?B?em9ZdWkwRGtIM2V2L0MzM2w4OHJoelJWS204c2dOd2JjYm14NElwRzI1OGx2?= =?utf-8?B?ZnJma0RQeE9nYnhEanJKV0l5SjhTbllkdkZ2dFd1ZUhXK0t4Q0lKQ1VmWTZu?= =?utf-8?B?OG8xMUxOQnliUU8zN05HMEZLREp5Q1h3STNOeHFCcThHak9wVGcwbEl0NXBS?= =?utf-8?B?LzhXc2trVUJWdzVWdnFJY3NpaVJDZWtQemtJMEJlQi9ycmxRN2tsdjN0T1ZU?= =?utf-8?B?eVVSekNjQmV4Mk84MElleUVrNVRrQkYyL05jTUpwREJNYVM5Y0k2Ukh4QjRW?= =?utf-8?B?dDI0bkVJODd6NTNhTkZ0S2VBSllzRU94b1NyUU9IeWJpY3hHOWVJdkx1eEg4?= =?utf-8?B?Q0I0ZXdIS3VBRkxNMFNjazZwYWhGVlFCaVFaRDYwc3FCOEI0QWpXeG1RWFcx?= =?utf-8?B?Znd5Yk9VelZHWFhDWWFBL1dDekxQYk44a2RUblFjbFFMU2dBWmszUXpqTDlF?= =?utf-8?B?RlViVjFVVEl6NGFsNEQ3QVhMeE1GMW5GcFNaVCtqeWVKNE8zZm5DZHFZdWNT?= =?utf-8?B?TjloZCtMSGI1WWZOc0RzdjNneTJvVmo1ejIwWkZmM0dKbVJremRlTEc1QzIv?= =?utf-8?B?YTBIamQ2eW1IdDdlVGExcGdyUmE4M3JXNXBIeDR1OU5CWHA1NVlSTkxWMTc2?= =?utf-8?B?VHcxOWMxbnR6ZTliSWgzdUxKQ21IdzNrOHp0b2ZDSFMwTytPMVdYa0doYU80?= =?utf-8?B?TnFoeEFrNWd2R2I5VUF5RVpFT1ArRFRWRWlIM2NjWTBkUGZsWlhTcUxJdmxa?= =?utf-8?B?SEpBM1dWaWFzVzI4K3laTXJDdlBNSTVReEg0TExYN0JGMTRSdDg5bHM2eW80?= =?utf-8?B?bmkrSG5HbDY4K2FuMjJPZz09?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ2PR12MB8830.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?enRRRDVicFI2R0F3NEZsRWE4dGhhVEY4UElab1p3aDNvWWM4cTVFR09FWGFn?= =?utf-8?B?Yk96UDVTY2IraC8rbHR4SGYvOXQ0b3dBb1lwNDhCc01UNEJRN1JjT3pWa0RR?= =?utf-8?B?QzEyUlFUWW5JZWFPTC93dlVyMUJVdEVkSDZVY3UvWnhsQjZFckRIYXBKcHJs?= =?utf-8?B?Um5TRDIvY05nNWRXNWltOVZUMW4xNmFZY0JQZGZQelJyUk1mcnFnano3UnhX?= =?utf-8?B?MnQ3dXRxT2F0QVdSZmx4cmh2aHpwZG1GdUlFRDd3NjAwcjVmSXdUeERyQ1lt?= =?utf-8?B?RExUN2JJOVN4SklMcjdnVDBSaXVsb29TSEtKRVE3aVE3SWp6UC9PZkRhY01s?= =?utf-8?B?TmdiZmxPeWZ4SXRncnp6UTBIM3UxRWpoallTc1FUWFZuT202b1N1QVpGQXAv?= =?utf-8?B?WnJmSFhlYnRjUmFYSGxsV3Y4RmhYRXFuOEhuRWdKN3UxRTZQMWEwQTZPbGJv?= =?utf-8?B?a1FMaDVCcjFCVWZYSHNtMCswbWYwUkk3VG5GNndjbGtGSHZPUXVnNzlKYmR1?= =?utf-8?B?ekpJTEtMTWRRd1VlY1h2SFVBK1RoUHFnWmtTaWVQVExGb013NnJUTVlOZ28v?= =?utf-8?B?YUs4Si9LTEUrZWJobmw0emh6Nko3QTBhM3ZYM2k1QmREOUpOWkxUUUtPYThh?= =?utf-8?B?ZkxQdFZOTVdDMVVwekNDMVJXVzgrRnJ2aWppVFpCN3NzMGRad2RtTmxFTVFE?= =?utf-8?B?V0NrWUxlWHNlQjE0eEdQQzVqZXV3dDh2YlBnaS81RWVPc2FBQzBhN0xmanlL?= =?utf-8?B?c1FaalRZMG5MbkFjZWR5NTNFYm5RaHA3TG81MlFHMnZRT3BVYlFvK1ZteWxj?= =?utf-8?B?dFFxajF1amVKbGhBYXJmZzdhZVUxR0FudTdabE1ndzdkQUFRWVE2bTVxMW5N?= =?utf-8?B?bndxbnJvVFBxa3ZnM0hvSzNHTmRTekgvMThCWkJWWXFmNzJQR1R2c1RTY1oy?= =?utf-8?B?eUF6OGkvZXlHanJBbXVtdEZjbHFkdUlML3d0OVR2N0U0MDhpRWo4WTN1bnZZ?= =?utf-8?B?ZmRFNzZTVy94enp1aHpqOERQZ2tOeEdJNnJDaXVkT3VaZjFUNUljdjRBOFBq?= =?utf-8?B?YVFER2lTcllTQWs4dzhHaDJodWZBRjh5VnNjbHM1Ni9hajJhNmFnMHpyZTht?= =?utf-8?B?SWRUeC8ydzhvQjBzTjVQZW9uTmJlcGd0RmhaWVdRbTF4WmZoWTJQUUJmOHky?= =?utf-8?B?QWVkUVdWTUpqelQ4Mkd6bWdPMFA0VlF3a2EwdElDbytpUWVNVmVQRkl0SGFh?= =?utf-8?B?aVFvRjZuYjQzbEN6Nk9jSi94SDZybVhLWG9mZEJpaVJ4bEtsZHlFbVRZa25p?= =?utf-8?B?eGtuNldqTXJpZ0RRWFVPTTZKK2M5ekVZUG1Dbm9sdkFSeWlGVk44UUdlRTRx?= =?utf-8?B?SjY2bVFWaUY0VmFrSDBTNStaZGNUSS9VSWl5NVZGN29ibG5YMHlCSFladHpQ?= =?utf-8?B?blFIb0hreStFdW95M2ZNdW8rYUJ6RWFlS3ZwQ3pscXRHTVArQzQwUStqSzVM?= =?utf-8?B?SzN5ZHZ6K2VTRTJ6eFR4QmVMSzkvWFRzNURzb2VydTNsZlhYMURJd3FoYUg3?= =?utf-8?B?Nm9CYTVwOTRVWnBpVHY1dlJKTzVRWjIycStXeTlSNXpSMEs1VmxNMWN4Rld2?= =?utf-8?B?WW1TWENWMURQQllvU3RhcUFjQVNSTGppYVh2NXY4WkxTczZCZitnRnJjV3Iw?= =?utf-8?B?RGkxR25VU3B4SnE2WENabHJHZndVaWRHWHU2eE03R2w4N01LOEo4bmZjcVlW?= =?utf-8?B?V1A5UEx3YXVocDhFbk9IY2Q1VCtwL2p5Yys3NkYyRU1Iejg4N29MazZuaTRu?= =?utf-8?B?QzRIWGN0MGZZRDNFcjRhYWR1eFpMU1V1SkhwQTU3Y2I3enBYUyt0cnpobXhC?= =?utf-8?B?bXV2cWZTallZNGcvN1ZtckNtMEpFMXQza3Vkdno3V3BXaWFWNDJhZ3JGZjcv?= =?utf-8?B?ZFVoMXhvb2lvdTIxK2NHd0s1VWdSN1h1L0J6clpwbjdMTFk2SDFFa0VyREd2?= =?utf-8?B?bVJTUkE4VFFaT3dqUlQxSTJ2Z01BVGJsMEJFdmVIeE1sbXdoUDhxeUg1RGpC?= =?utf-8?B?V2w3L1ZKUUpFclpud0Mxd2xqbDRQdy9pOWJqTm15eWJXc3ZFeFBRSUhUV0V0?= =?utf-8?Q?QwCmM8KRRSMKMLiE3QTeQ+Wur?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ac5ff1a-01db-4b63-8ff8-08dcde8636d6 X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8830.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2024 23:52:00.9269 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mzwKhkf+2EIy3b1HG5dHFLQbpCJEE4I8cNi2+Wn2H7iyC71DWC9y7UJ9uMXSWqI7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6791 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 On 9/26/2024 3:03 PM, Meade, Niall wrote: >> From: Ferruh Yigit >> Sent: Thursday, September 26, 2024 12:16 AM >> To: Meade, Niall ; Thomas Monjalon ; Andrew Rybchenko ; Roman Zhukov >> Cc: dev@dpdk.org >> Subject: Re: [PATCH v1] ethdev: fix int overflow in descriptor count logic > >>> The resolution involves upcasting nb_desc to a uint32_t before the >>> RTE_ALIGN_CEIL macro is applied. This change ensures that the subsequent >>> call to RTE_ALIGN_FLOOR(nb_desc + (nb_align - 1), nb_align) does not >>> result in an overflow, as it would when nb_desc is a uint16_t. By using >>> a uint32_t for these operations, the correct behavior is maintained >>> without the risk of overflow. >>> >> >> Hi Niall, > > Hi Ferruh, > >> Thanks for the patch. >> >> For the 'RTE_ALIGN_CEIL(val, align)' macro, 'align' should be power of >> two, as 'desc_lim->nb_align' is uint16_t, max value it can get is 2^15. >> 'val' should be smaller than or equal to 'align', so '*nb_desc' can be >> maximum 2^15. >> >> So RTE_ALIGN_CEIL(2^15-1, 2^15) = 2^15, I think this should work fine >> (although I didn't test). >> >> And even with your uint32_t cast, I think following will fail: >> RTE_ALIGN_CEIL(2^16-1, 2^15) >> (again, not tested). >> > > I tested my code with these values and the behaviour is as expected from > what I can see. > At a high level I ran into this issue when passing uint16_tMAX into > rte_eth_dev_adjust_nb_rx_tx_desc() with the intent of selecting the maximum > ring descriptor size but the minimum was selected. > >> Or maybe I am missing a case, can you please give some actual numbers to >> show the problem and the fix? > > Yes sure! If we take an example of val= (2^16)-1 and align= 32. > RTE_ALIGN_CEIL(val, align) calls RTE_ALIGN_FLOOR(val + align - 1, align). With > val as a uint16_t this subsequent macro call results in a wrap around for val > (originally was the max uint16_t and now we are attempting to add align to > it). The returned value of RTE_ALIGN_CEIL() in this case is 0. This results in > nb_desc being set to 0, and later set to the minimum ring descriptor size for > that NIC with *nb_desc = RTE_MAX(*nb_desc, desc_lim->nb_min). > > While this example is an unreasonably large request for a descriptor ring size, > the expected behaviour would be that the descriptor ring size defaults back to > the maximum possible for that particular NIC, not to the minimum which it > currently does. > By introducing a uint32_t, the wrap around in RTE_ALIGN_FLOOR() is avoided, > keeping the large value of nb_desc_32 which is later set to an appropriate size > in RTE_MIN(*nb_desc_32, desc_lim->nb_max) > I see the problem now, thanks. When value > (2^16 - align), next aligned value is 2^16, which is UINT16_MAX + 1, hence wraps to 0, this is kind of expected. For the relevant code, assuming 'desc_lim->nb_max' & 'desc_lim->nb_min' are already aligned to 'desc_lim->nb_align', following should fix the issue, that seems simpler to me, what do you think: ``` if (desc_lim->nb_max != 0) *nb_desc = RTE_MIN(*nb_desc, desc_lim->nb_max); nb_desc_32 = RTE_MAX(nb_desc_32, desc_lim->nb_min); if (desc_lim->nb_align != 0) *nb_desc = RTE_ALIGN_CEIL(*nb_desc, desc_lim->nb_align); ``` Basically just changing the order of the operations... It is not easy to see the problem, can you please give sample values in the commit log (for '*nb_desc', 'nb_align', 'nb_max' & 'nb_min'), that makes much easier to see why above works.