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 F17A645A48; Fri, 27 Sep 2024 23:39:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E05ED40294; Fri, 27 Sep 2024 23:39:46 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2064.outbound.protection.outlook.com [40.107.244.64]) by mails.dpdk.org (Postfix) with ESMTP id 5AED840156 for ; Fri, 27 Sep 2024 23:39:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iqgSofmsdnkVUawS2NXmmup2owbO7JtzkAkgCsSO3kNDcL6CxTTjH7pWPcgXV/bVFdpIlL8XsDBD1ARkW/1I0Al4nzuCv2F9DDHo4M93zLKMlxUXlM0+Heos35/5n03AfYC8/ICK1ntvlVdZQz2AA/MVRQ+K/NKtaCeBf83NkoIWplx0wl0oo5LlPxXDWp4yBjBzJ9Vyu0jr2s9bprDqpRpG8Uy4SuP9XwXLoozrWnAjr5D+wdzWauCiuI1daE5NkMaQGsNZn1SEO/bToCRyPnTVQfU53dbFkE2snKxBp7TsKNExOx+qRk20uQchF/HA5jIK+jVWZVoYpkU/beCMRA== 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=Urn5ws4iYfypI9Y65nQOCLea+izXrUaqg7uSkDw3BBM=; b=WvKmmeKenG0hmVt2p8bIyd+lC0G0cP93SfBQ1dlEtuZGzGRJ1zVmzpQZfT3ScURBCmQH/Qv1plA4ReYN/yJMd4p3LtzQLTbv/i+LtDrhH4LU7gIiixFVmar/te+ZJt0bwhjJjWvCNeD1W2pKI/9LU+RfGGsbbA8SLdUDCIqvXC6TSm7ZU0ofCqiCN2RUtvK2NV2H2MkUq2CwWbsJ6ilvtnizoJLhi7EosURjvbf0OpOD7lkwEDsYkHMIc1RElSc90AJloI+Zwop3GwKeiJxupFVEZ9elr7hd4fXy/KfhieFNu3WyldUj3VyOVk8/vACoDQApr/O2gJ+S34m8JyGjQw== 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=Urn5ws4iYfypI9Y65nQOCLea+izXrUaqg7uSkDw3BBM=; b=FyKqU5C79wgQ1qDg8/CvI2LnHsh5ObJil1v/EFi9lofwZlHUi29peSkUjf9hPRhWILYOSLDw03BoVTNzL0NY128bqSVeDPHUqNS1rLoav01mD0E+Yw3bEugDymLQFKfMd6QeCRUNzO6CmlzmIIX8oy7uiQYBlTvNWbzNW3dwlrI= 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 SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7982.25; Fri, 27 Sep 2024 21:39:40 +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; Fri, 27 Sep 2024 21:39:40 +0000 Message-ID: <6a99d1a7-2d27-4476-938a-a121adbe9f24@amd.com> Date: Fri, 27 Sep 2024 22:39:35 +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> <30e72a96-0eec-41d1-b232-a7b559a419f6@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: LO4P123CA0642.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:296::11) To SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ2PR12MB8830:EE_ X-MS-Office365-Filtering-Correlation-Id: aa5bec59-899a-41dc-eda6-08dcdf3ce49a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eEY1UGFrMUE3SU1wRnVoYndjU09JZFl5WmRqSWtvZEQ4WlJpN0ErQ1IralRp?= =?utf-8?B?eDlKbmhkZ01WVFRHSEc5WEVpM1BLZ1NBdDBNekVGYlJROENQdTNjaEFaaS90?= =?utf-8?B?dklCb1k1QklYSUo2VHI1Rm9IQnlrQVg2MHpKcWxoREZLNlZoOWVpU1Q2VHBx?= =?utf-8?B?TVJScHU1NnkwakpWWWFjeHF2NnIrdkxLR2lBRkdJYlhyRnUrVHE2WjhVY1RP?= =?utf-8?B?S2lqVktGMFJvazIvZEFnbnBTTXhRRG1zL1hyTGZOSVlMTG5kalY1VzRVYmxQ?= =?utf-8?B?bldoRnVrNUdoR0U0MkQxZ0M2NmkrTk5DTjI2d2FMNEZWaFB1Wkg3VVJlYWEx?= =?utf-8?B?OTZ4TlB4aEdoQ2tDZ3JIZEkxWnF2eERUNFYxWS92ME5weVB3dWtKNFpRdVVk?= =?utf-8?B?ZWw0bnVKdDZWanRzSEYwdks2dkc5RmtCQlJwMHJldnZCVHEyVGVCL3h2TElV?= =?utf-8?B?ckRYZXhuYk56NjRyWnlhQzVBay8vRW1oWW1CdzVESWI0YU5GbEx1emNZRHg1?= =?utf-8?B?QzQyR2dXNWh5d0xrUjFQQXFWMkhjMll4SmJjbVlQaHBlU1krVTdVV2hyZ2I3?= =?utf-8?B?dW1QQWZEdkRKNFZrbVFGVng4UlNKOTFzQ2JlM0VGNmRzWEV0YUtMc3gyZHVX?= =?utf-8?B?YUVUa01LZllWYW12VzZMTWFPanJwMVlDajdVV2l0YTVlSFpXWldkNkpucFll?= =?utf-8?B?OWxaNWtWQmVPUUpsdWRYTm52Mzh5WU1pQ1BkeFlCbHNrN3daMmdxZy9KQ1Br?= =?utf-8?B?MjBkeDdMT2RNL1ZMYkFEVjVEL0c4UCsvM2pXaFNkMUUzZCtncis1SWo0MHUv?= =?utf-8?B?Sjg5Z0lVRFdBNUpXa2x3VkhyU25LdHpzODZ2QUtxRUJFTmFTQTVoaDNKR3Jp?= =?utf-8?B?bXNTam5tMGpyOTRwRFpHcjBtRnRZVTFuSEk5RGE2ZVM4V3YvZTB5WDRlUUs5?= =?utf-8?B?dTZJWFZEWVNJdzVQTVZnTzFMeFBmYWl0anlSeUt1U0xXVXJOKzRMNEhWWmtj?= =?utf-8?B?Uzdic1BlbkFOZDh3Tndwc3hjM2x1ZEd1VXRKMzdHbGpxWW9wUXovRWdwQlcx?= =?utf-8?B?aFh4Z3p3UkpzTFIvRGNiZEd3TDFKLzBSVzJjSEMvdm51NU5tZExsTlE3dTlx?= =?utf-8?B?Z04zbDlReUFGNVd6WitiQmhnWmhRQVVuUVpYQXZRYXRoZkgvTnBGWi9QSGQ5?= =?utf-8?B?RGJCWGlCU3YwczFtbGJKTk5tbjN2QjVRYTBlR200UDh2SnJrQXgyYVJNMzNT?= =?utf-8?B?Q1p2cVNNbHFYc2N0U3BSSVVPd2FoVHlJVlo5bmpYUFo1Ulo4ZlZqOWN4ZUUy?= =?utf-8?B?ak51ODMybzMvUVNxbWhXSVdYRmtZRFlpb0J0cGwzMGhCdGF1Q3Ryd0h1UW54?= =?utf-8?B?UFZ6UGhOZnZKTDQrK0dHdXYrWThSNDhML2hQTVZnYTBXWDNmMmpSSFpzV2Fx?= =?utf-8?B?a2UwMVRqdFFmalV5SnFkOEJaZ0hmem5GZWcwVUVkVDJvMjFqQ2F3R0N4VDkx?= =?utf-8?B?TVZSTnZ1UWU3cVJkTFcrclpvbEI1TWlxOGtpdUtUSDBMUUJnWmlReDhDQTBC?= =?utf-8?B?REVaWkhvNkdXNmlEQW56WVFNS0hvdkl4QzVTUkVwL3oyaXFNMXNabEpQSGlw?= =?utf-8?B?eFV5RXJ5R3BBNEN3dEhyQThlQnUxU21ZNkFEcHlFbFJ0VDRZZytTVW5INWVT?= =?utf-8?B?NkNhYUIraE43M0lXcUIxbW0zT0xWYXh3aUovSkxNZWxhTk52bk5DeEJnPT0=?= 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)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OTZRQm01SEdmYTd3UXhuRFJISkJqMU9KK2ZKUitWZWVmN05xU0lXZ0E2akho?= =?utf-8?B?TzJrZ0R5TmYzM2l3MjJvNmxHRTN0N2UrSWdkdGxySk5CWE9odUdJVjJQemRV?= =?utf-8?B?OTVjSlpha0IwSmNTOHRmRFNqdW1wc3kvRWd3Tm9qV1V0bG52ZURXNWwwcTMx?= =?utf-8?B?TW9PYzJkb2Y1bnE0VWorTStNUjBZd1M2bWpFWHFtZHBKcVNjcExOcThsdDVU?= =?utf-8?B?Zi95S20vSXE3TzBEV1hsZGxGUjNaa2ZBTElCMzdwZmtPU2dZcm1hK1hNOWF4?= =?utf-8?B?WnhPOStWWTliSHRWSXl4OE9FYUFEUElQdEI2Ujg1aGx1c0M2N3MxeDNraXF6?= =?utf-8?B?NzdRSEpPUWd3UFFRMGFZNEpTSmk0QkdKSytFQTZiQitBOHBxU01hNVBBazVQ?= =?utf-8?B?REdCTXZGdUxzVjNxaHRkbUlUZ000VDZRTzQ5RUhsbTlsNnZDY0d1cTgrbGJ5?= =?utf-8?B?NHJFWllUaC9VdEQ5VThPS3piNlVtMGlLamJyOEc5b1dRUHJ0ekNoWE1JbnZQ?= =?utf-8?B?UU1oYnZYWjRlZ1loVVEyanVSVEVXa0Q2ZFp4YVlaZ0lZaWlzeW0ya2pBbUR5?= =?utf-8?B?aFp1WGR5WUVudndYNm5uVldWUjQ1ei9JYXVDZTJ5Nk5mTk01YWlsR2h4NnA5?= =?utf-8?B?UXJKMHhmMjNTUXQ0b1lLTGRHRERrZldUTlBsY0NROFFLK3JEMmZhbFlYd2lj?= =?utf-8?B?RnJuUTdtM0QwaWdBbDB5VkFIVXJTWnl0Y1RLLzlXcitYOVF2OFNkczZQR2N5?= =?utf-8?B?QmFHMlI3OUJqVzJsMlR6elN3SkdpU1MwbmphQ09ZeXNocHJGaDNCUDlXWVV0?= =?utf-8?B?Y0JmTkxoT2RwZ1RIRjJONm52bkpkWm5oaDVkc2hPdmI2K2tCZnQ3bHBVWTNJ?= =?utf-8?B?bFFHTkpPOGxXRHIzMVM1UVY3Q0pwNXo4VXl4UGlRZUFpTjU4R2NJRlFzcmtB?= =?utf-8?B?N3NqQm8zVE1lcmIvcFRTQ1o4QStGVkJqSktOY2dpTEMrZ3E1SGlRZ0FOaEIw?= =?utf-8?B?Q1Z4N3piT0xQMGxIeGpKc0xhK1N5NmtPRUpCSXp6MS9aZGdhNnlRdHdzWGJZ?= =?utf-8?B?bWQ4VVhLb1BwSWN6T0xHZnNzSkZTZmNlQ0hlUmpRQXdhOVhCczhiUUl0MTEv?= =?utf-8?B?MWxuMm41WndvT29SUEZkSS9JNVJhZHJXbmxQRFE4dlVqUjYzaW1oYW45Z1dU?= =?utf-8?B?eVBUUzVLTlBUOVJDY3FKYzFhd00vVGJNakgya2x6OGRCSUthYlVEY05qbVoz?= =?utf-8?B?b1gyeVh1Z0FMc0hZd3ByZG5BdEY2R2lzR0NqS0lFL25SUnpyclFVZDZaWnIz?= =?utf-8?B?azJjYWFEVkQyV0VkZnZtKzBjRTgzMEo4ejhuVGMvYjRreGd6MWFGbG1panpt?= =?utf-8?B?SGVocmpTdkVyZWVNMXZ2V0ExdHppVlFxakJLRUdXLzFjUnl6eDFXUTBqY0VC?= =?utf-8?B?NmUxMjNDVUlYOTBtdXcrODJYWFU4L0pyY2o3SmI1RmtUUWsrK1Z5TFJDaEQr?= =?utf-8?B?K3IvN0RjSW45dE1lV0gxem5heXRHTURRYXBFVWFpNmQ3LzIrTnJ2cEZCWG9p?= =?utf-8?B?WU9kK3RVQ2o0cGpadncvSForZjNJazVxcm9uZWpHcTQ5c1loL1RjYTlQcFdG?= =?utf-8?B?VndhVVhBdjBHblJSY1FQQmxtbVIxQ1pSdHh4VTdaZkNhWVl3dG8vV2lWbkFp?= =?utf-8?B?SnJab1pRTXJtdXlaT2taZkxNZlBycmhFYXVuczZqYmFycXcydHlIQjNPV252?= =?utf-8?B?V1NsSUdKaW8rK1phM0toZXl6NkdWbjBvTTJwcEZUaXVMcitXbEFHNEZlM2g4?= =?utf-8?B?MHh2b2RldU1PRGtGU2NkVVNLWmJtSmNkTFA1SllxUnFPOEFqUjdqR1N1enpR?= =?utf-8?B?N0ZZd3J5ZGZLcUhHRW9qOStMblhiS0NnR1d6VE1aZFJoR0Q4Ylp5TGJlY0hO?= =?utf-8?B?OFZyeTBhc1hmcGpjdTM2OFZjSXI0S1FienBEV2UwU1FLY3laOE1lVFU4VFda?= =?utf-8?B?S1F6MmdXU0J0RXBEYlZOS0tpbFQxKzNHUWMvT0toSU1QTWdFNldlMFNMYWZI?= =?utf-8?B?OXY0eEw1QzM4MW9kMGhGaVVxM21nMjdPWWdlTXlHejRSTGd2WHBvWjhSWmdB?= =?utf-8?Q?SIuQf7FIIr/VBz86OcO0pzWXN?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa5bec59-899a-41dc-eda6-08dcdf3ce49a X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8830.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2024 21:39:40.8279 (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: iBmYTWvS4Ilf2QOaFzqpJgli9qqqPOZQmzPS8BLyUzyJpLEUxMHSP2RItpYVy6Ly X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8830 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/27/2024 11:46 AM, Meade, Niall wrote: >> 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: > > Yes, while it is a simpler solution there is still potential for an overflow if nb_max > is equal to 0. If nb_max is 0 while nb_desc is UINT16_MAX, UINT16_MAX will be > passed to the align macro resulting in an overflow again. > ack >> >> ``` >> 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. > > Yes, good idea! I'll add an example to the commit log for clarity. > -------------------------------------------------------------- > Intel Research and Development Ireland Limited > Registered in Ireland > Registered Office: Collinstown Industrial Park, Leixlip, County Kildare > Registered Number: 308263 > > > This e-mail and any attachments may contain confidential material for the sole > use of the intended recipient(s). Any review or distribution by others is > strictly prohibited. If you are not the intended recipient, please contact the > sender and delete all copies. >