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 234AA45587; Thu, 4 Jul 2024 11:23:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A2B4E410F1; Thu, 4 Jul 2024 11:23:10 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2081.outbound.protection.outlook.com [40.107.236.81]) by mails.dpdk.org (Postfix) with ESMTP id 09A8E4025C for ; Thu, 4 Jul 2024 11:23:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AyDuwHNJXHVxXmyIQHu1ZNsgJ88cPg0K+5xQIYkBz5FdZwyuXsc9BYv1CGpgokPLppqYQj5AXhpP6svqsQMBZkOuOb6F1nUkuK4Z8uvmn9b3GA+QLlnW6rOU0skgttZ6x77CFtNrYMLP1S4xGGHBuvb2bRN2OutWMNR4gKY7j7j4lcjqX0ouuEdvrtf9/M1qRxbnFPy8J4N/qnmnS4VcbV2hNPT5tCrtIyMqKP3bYyq4G2EWio7jGGXT4Y72Q/kVFAiS89WohZRPIqCdV1vYUnsmsVGjUPWOGNPw5cGZ3nmieVurZvGHrKWg7006YSJx08rC0xdf5w0JTcB6G7a8Ng== 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=+WI/j1ojm9lMxleWH7zBWiTWaNTuzSgriTCgWMryg4E=; b=SoJBokuJTK4xeWXzyg3DS7q13u6obbPiNFMvl44WZAf2tCr9rA/3l9hVHdLHz+NtaO7nGispaO8VSIJjo61g1GNUveLicTasXJihydmAtADLv3lhU9Xid0HGwZHZW1Yqio5d5xiuuYAPOw/+luHNtIjacfHtxda+tETHNmuLSj14+Czvex1istkfUPXuotlvyMn73/Ljqz3+PDa/bWO3SgjA3YdVAbplpdsNqsFA1SqP0xFAHv4GLiPozKYiakY7oG7DyJbjiECSUa/kBO06bQB6qPiYVzozS58+ArwRpqmJRasuY//GY+TcXLgnS0TR/nbPh8GsOv0378m2oc/f0Q== 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=+WI/j1ojm9lMxleWH7zBWiTWaNTuzSgriTCgWMryg4E=; b=vf+AluEELarIiyUB/l3HxRI09afqTVoFfwMBAczG3dSh6Z4h/vhXkhpfhQflYJ4mF6/IOvC+jB0D4C2udBsKBqZTx1ZemMdjFxspfP0LrRrtRKXLKrcubQ9DjKTM8DEVhiJZ4JvBo1x51gJMYfrBqB14e64ib2Yg5BKZUpMNkSk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.26; Thu, 4 Jul 2024 09:23:06 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::ebfb:2f9f:f9ca:82cd]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::ebfb:2f9f:f9ca:82cd%4]) with mapi id 15.20.7741.017; Thu, 4 Jul 2024 09:23:05 +0000 Message-ID: <0f149663-a2bd-4553-938e-de9e87cf6adb@amd.com> Date: Thu, 4 Jul 2024 10:22:23 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 2/4] gro: remove use of VLAs To: Konstantin Ananyev , Konstantin Ananyev , "dev@dpdk.org" Cc: "hujiayu.hu@foxmail.com" , "roretzla@linux.microsoft.com" , "bruce.richardson@intel.com" , "anatoly.burakov@intel.com" , "vladimir.medvedkin@intel.com" , "kumaraparamesh92@gmail.com" References: <20240523162604.2600-1-konstantin.v.ananyev@yandex.ru> <20240523162604.2600-3-konstantin.v.ananyev@yandex.ru> 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: 7bit X-ClientProxiedBy: LO4P123CA0495.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1ab::14) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|LV2PR12MB5869:EE_ X-MS-Office365-Filtering-Correlation-Id: b3082add-55d0-42f1-60a7-08dc9c0ae911 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?M2FOeUpNZG5Nc0Vvdzk1Z1A1WlVkc0cycmRVeitLZnRnT3B6dVNKakwramlw?= =?utf-8?B?OVJORzZUaG44d21mL1owTC9TTHlaUXRSTEZra2hzL0R4ZHlhN3hWUEM0MzZG?= =?utf-8?B?YWpSNnFMQno5QWE2YWZCb2lXYlU0NlNid2IwUWQxRUZSV1liMER5MWNxSk5M?= =?utf-8?B?UmdoUXlra21pRkthUGUvR2dDNS9zQ3ZrRE5IbzRSNE1lREZteXFUV1VmbWtX?= =?utf-8?B?VXY4OTNiZW9wM3RuL0FQKytUYUlTWWtRa01nbFBBdzRzSGZYZlR5NjNGWWNj?= =?utf-8?B?YnR3NUVKakg2VHJ0SlJQbmVKaUo4NG9DdWVxcVFKdVYyeXpEUk91LzlLZzRZ?= =?utf-8?B?NFg1S2NzcFJWTi9FOVFZK0ZpUmZ4VW1JOGRnUFVNTC9XTnE0TWUyVFYrVHp2?= =?utf-8?B?a0NFTE4vTmVmclR2dGNKZU1ubVNFUU8rSlZnOE8xSzRkdjdVTzJuYzBlNXZk?= =?utf-8?B?WEFDWUxNVUVtdkVLU0NpVTVsWU5PWGRXMzBrcWo5eFdhQ0ZVcjFPb2NqcENs?= =?utf-8?B?MFFvWTNYaVdQMWFtTEMySERvdnRuWmVuTWJCS29KbjgwSnZFZHNxeWE2c2hs?= =?utf-8?B?QzkzTjZuWHVQazhJK0RzaldZdUNJTks3a20xZmpnKzJyZS8veTRaQzUvdXhV?= =?utf-8?B?MkExU0dJQlQwSGx3YlZvWGQzL3ByTmxGN0J3Sys5UjBMZmdqQnoxbFdwbzFF?= =?utf-8?B?Y1BUSHBKdmRrbDFOUDVpcElsT242b0NpYTkwbmRsUWFOQSswbGtOK3cwb2Ev?= =?utf-8?B?UXZnT0RENFVSdkp4dnBnM0FOTnJCQzI5UmNqVCs1cUNBbFg5WUpHSUVTQjNN?= =?utf-8?B?SjE5Nk0vUDBvRUdTN2Zkbk5kTW5vM2wxaFd1NlFYYnREdWNxR3hIenV1cVBp?= =?utf-8?B?NzN6Ty8vMWlxQTVLWjNtN0RhZ21PR0NBZTZ6cjZXV216M29odFk2ZFRTeDAy?= =?utf-8?B?aUVFWVVtYVUxVzEwcVpwNTFKKzhMbEpvelljdzliWVdtS3R6TmNFa2VHek5H?= =?utf-8?B?aW1NUWFrSkx3NXdzZWRMWHBQcjc4d1BDTUdISXNzMExxOEhRMjRqQ1c1cVZQ?= =?utf-8?B?YkVXVDVmQVFiS1I3OXRhOStVdDRLcWJ2RFZIUTB4Zk1Nc1JPT2NaMmlkcHJw?= =?utf-8?B?N08vNW1ZR0RtS3J3WmdhNHAyYjdFM3hIa3VQREUxWktkVTRtVm0wM2N3YmFT?= =?utf-8?B?aHJNQ2hKZ0dkeXdPZE5RRDMveFRyeHF1QXJja2VuM1R6OUE4V3p0eGp1Wmsr?= =?utf-8?B?UkFBa1pnUHhONjJhMmFGM3g0KzR5YjZXbzl0VTZzMmlzNXcvVk1nRGtWdngr?= =?utf-8?B?b1ZEUVJIcGFsZ3B1bkl4dWM5c1A3bHlYSG03dHRzMlZONWVQK1BDb083THdj?= =?utf-8?B?UFN4RG1ZODZtRll0c3RmRVF6SjJOUnlwK015K2tySW54dFdUc2NWTEJsaDlx?= =?utf-8?B?VllMaDBnaFdUWVUrdHpucFMzK3orbzlkMllFTEs3SExpZVFBNHgxaVhsWHg1?= =?utf-8?B?bGJFOEtrQVVxYjNweS95OTZ5REZSbHd1NUNqeWRmdnFiWjVRNGhwN0FTeGRq?= =?utf-8?B?L1hVTU1GWmovZ2FVcjcrcWY0anlkMFRIMjdXZUtXTGJzcmFaeVNyZjl6alV5?= =?utf-8?B?V2cwNURDZ1ZqakErZU4rNmxYaVAwRjNTelNJVjRjdS9wQnVMbU5vQjJGMEJj?= =?utf-8?B?VDNiQ3pzWklna0ZHNkZzTXVQZlhQTDVhR1QyK2srSFdna3dCNmdZb1FGYm1X?= =?utf-8?B?bmFpV1MrbmhFb1k3MGtUVGVmcnRzbzdDV1NObllpMVlNcWpJRjRaMkQrOHZZ?= =?utf-8?B?TzhVTHN2RmwzWEM5VU41QT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.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?ZlpRdkpGNXY2UXNic201TkJ5MDgrcHhrbjdxb2VwNlgvN2UvYzRCMzBSdEwv?= =?utf-8?B?Qm1GZHVaRjZ1RVJjV1UyeXZYSUxzRWlWSTN5SnhCSGZrT3NIajFMTWE1ZjZE?= =?utf-8?B?Vml3NjNGaWJYWnBpcGUwd3V6RUpGTzFuZE9WaWNtOXR3M1hhdTR6K2phaU5D?= =?utf-8?B?cCtCY3haa1JaZDh4Y2kxVHExeGlNOG5ITkQ5MXh6NWNPUk9oVEdUN2hRRWFx?= =?utf-8?B?MFNGcnJvUzl5UllnTkJqN1ZXbkZPanljUXE5QVRzN25oNW9CQUUxM0F4ekdx?= =?utf-8?B?OWpQT3B6N1FPeU1mcUxoRjlUaXRrNWIxajBwRGZXSnd4V1NUbDJpUnhYKzZC?= =?utf-8?B?OGYyUXdPWkRWUm85OG5SaTdjc2hQMVZYSGdBdW5lWGFEOHg2TUw2NmE0OUNi?= =?utf-8?B?M0h2THQ1bk1WWnlFSEtKN0tadG91aEhIRU0vVlZWNktJS2dEZjdBS0ZMbnI2?= =?utf-8?B?NS8wV2lTY09nTFhEYTdSMHFJbjEyMGFHdkZqTjJiRm9OQU9mY3FTdFduZVp2?= =?utf-8?B?bHpZVEo1UDhUMUY3azNEa0ZHeGp5K1lrZXRsUVlabTQ0bzJUUjdEWlhzMGJU?= =?utf-8?B?c1AxNnFCTVNWcXZxOUhoQjNYR2lHVWtZdlArZVFtc2p3NG96WFNkRm81VkFo?= =?utf-8?B?WCt4cytHcHlBVlltSUd4Q2xSSjM1akRqTnZDaGpaTFcxWEplMUU0S2NaUGgv?= =?utf-8?B?S3ZXSUtFcWFqckVtVGRNLy9mVjRPWFJKNEZzLysyS3QvWDZCQ0RwNk12cGQ5?= =?utf-8?B?bXJxYWl6SDZROXluWVRoQlJJRm1nMjZ5MDJYTVJvY2tCdmx2V25WRkY0TGVh?= =?utf-8?B?RVVJb3FNUFg3SnhkT1JnSHd0cEp6dHFlNlhmZlJVV0IwaW0wK2ZqQUFoeHBs?= =?utf-8?B?NTE2bnc0SXBHZC9Ra2NOQW1kZzVnc24xcHhpcWd6TkE0MC9qUTRYMWYreTNC?= =?utf-8?B?WlNYZzdYcVZvdFNSY1pIRXVvbnJ1OTdLL1pvOWZrVEs0bGNoNXdKd1B2b1kr?= =?utf-8?B?Tys5TkxvZW9hYTUwWmE0M2t1MENSYUJrbDVwLy9iekd3M1VjQUtFTERXRFpX?= =?utf-8?B?NlNXeGJDZFF0U1h2YlFTQndBbFJqVGpDYlhzZnV6c3JsLzIxOWZTWlpmOG4w?= =?utf-8?B?S2RRejhMV0ZMVFhwb2p2M3JLR01NUXZrOHNmUHFNN1ArOHZidGlhTkpwTTlM?= =?utf-8?B?UGRYTjk4M2hIRDhqUHlqY1NSam5UZjJURk9OalpKM2pPeVZ4cTVweUVhUERW?= =?utf-8?B?N21oa0dVa3NGR0hKdG5SMmlmdGdYZlVleGlqRmI5ZUtPQWtVVWxCQXBVN1Fu?= =?utf-8?B?d2NrWDZGWk95Z2pJOXRrVmR5UTRwYXU4TEtJVWl6RWlCMWpxM0RVaStKbi9w?= =?utf-8?B?SnRrZ3hvb1dxNGhTcDF5aTRmQytoL2h4cWU2MmhMY2NITC9TeDUwekVleUhn?= =?utf-8?B?aWJjYjRpRmZzY2htTUtqRWt3MVVMdU5XYzVha2dTbXN6WEVKTllTbGJPRmlR?= =?utf-8?B?STRCVVlra0s5U2UvVklIVFU2ZjFpTjU0cThvYjRNeEgyaFEvVnBweUlsVEMy?= =?utf-8?B?R0QxczB6bGNuQWx3N2g3eXJ6aEo4dnlkeDN1ZFVTZklLeDNVd081U25IYUVp?= =?utf-8?B?RUZ2Q2JYdk5zSExFOFczV25uMHl2YUFkUWNHcGEzSTd4bi8wMzNGQUhxTWl2?= =?utf-8?B?aGkrelRSQjVGVENYY29laEZjOHc1SGl5aGpMR1Jtb2FLSnhBY0JsYXAyVVV4?= =?utf-8?B?b2ljK3JLS0VFOFpMMXUwNWNHMGRGWVZFRWZFak5odmtYbVU4eEtUdzI0eFhy?= =?utf-8?B?ZWdZY2tIUHErTitVWk1DVWhZU3ZkdDAyVEJaK1pUR21pWHFLWUNsMDFvL0Zo?= =?utf-8?B?MEpIdFd6Q3Z3MGpxd0MwaURNRWRpaEM0dTVXSjlpYXRtRjRaSWhRc1EyMmw0?= =?utf-8?B?THlMbjB6WXE2YmRDTHMrZTcybDhUQS9PU3dpa1BZNFdFNjYxVDJmSVJzYjNq?= =?utf-8?B?NThqbGxNYVNmMS9YVUZtQ3J3bHBYWG5RVzVHeTRQU0xHWDJTd3NEVVA3bHJh?= =?utf-8?B?TTZ3aU5BcnQrZk15Z3FKL2JnT3dBaWdPSkV6SWFmNDdzaW04UEEwR0M0UFVq?= =?utf-8?Q?H1pxBl5L3yOuyTO6v4XrM40Sp?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3082add-55d0-42f1-60a7-08dc9c0ae911 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 09:23:05.5576 (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: Xgle/e0uuNThDcbQGe56glQoIiGIO/sMJisJgENfv4lhwYrZS1Y29j33uNmAO9L6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5869 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 6/28/2024 1:57 PM, Konstantin Ananyev wrote: > >>>> On 5/23/2024 5:26 PM, Konstantin Ananyev wrote: >>>>> From: Konstantin Ananyev >>>>> >>>>> ../lib/gro/rte_gro.c:182:34: warning: variable length array used [-Wvla] >>>>> ../lib/gro/rte_gro.c:363:34: warning: variable length array used [-Wvla] >>>>> >>>>> In both cases the pattern is the same: we use unprocess_pkts[nb_pkts] to >>>>> collect un-used by GRO packets, and then copy them to the start of >>>>> input/output pkts[] array. >>>>> In both cases, we can safely copy pkts[i] into already >>>>> processed entry at the same array, i.e. into pkts[unprocess_num]. >>>>> Such change eliminates need of temporary VLA: unprocess_pkts[nb_pkts]. >>>>> >>>>> Signed-off-by: Konstantin Ananyev >>>>> --- >>>>> lib/gro/rte_gro.c | 40 ++++++++++++++-------------------------- >>>>> 1 file changed, 14 insertions(+), 26 deletions(-) >>>>> >>>>> diff --git a/lib/gro/rte_gro.c b/lib/gro/rte_gro.c >>>>> index db86117609..6d5aadf32a 100644 >>>>> --- a/lib/gro/rte_gro.c >>>>> +++ b/lib/gro/rte_gro.c >>>>> @@ -179,7 +179,6 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, >>>>> struct gro_vxlan_udp4_item vxlan_udp_items[RTE_GRO_MAX_BURST_ITEM_NUM] >>>>> = {{{0}} }; >>>>> >>>>> - struct rte_mbuf *unprocess_pkts[nb_pkts]; >>>>> uint32_t item_num; >>>>> int32_t ret; >>>>> uint16_t i, unprocess_num = 0, nb_after_gro = nb_pkts; >>>>> @@ -275,7 +274,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, >>>>> /* Merge successfully */ >>>>> nb_after_gro--; >>>>> else if (ret < 0) >>>>> - unprocess_pkts[unprocess_num++] = pkts[i]; >>>>> + pkts[unprocess_num++] = pkts[i]; >>>>> } else if (IS_IPV4_VXLAN_UDP4_PKT(pkts[i]->packet_type) && >>>>> do_vxlan_udp_gro) { >>>>> ret = gro_vxlan_udp4_reassemble(pkts[i], >>>>> @@ -284,7 +283,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, >>>>> /* Merge successfully */ >>>>> nb_after_gro--; >>>>> else if (ret < 0) >>>>> - unprocess_pkts[unprocess_num++] = pkts[i]; >>>>> + pkts[unprocess_num++] = pkts[i]; >>>>> } else if (IS_IPV4_TCP_PKT(pkts[i]->packet_type) && >>>>> do_tcp4_gro) { >>>>> ret = gro_tcp4_reassemble(pkts[i], &tcp_tbl, 0); >>>>> @@ -292,7 +291,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, >>>>> /* merge successfully */ >>>>> nb_after_gro--; >>>>> else if (ret < 0) >>>>> - unprocess_pkts[unprocess_num++] = pkts[i]; >>>>> + pkts[unprocess_num++] = pkts[i]; >>>>> } else if (IS_IPV4_UDP_PKT(pkts[i]->packet_type) && >>>>> do_udp4_gro) { >>>>> ret = gro_udp4_reassemble(pkts[i], &udp_tbl, 0); >>>>> @@ -300,7 +299,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, >>>>> /* merge successfully */ >>>>> nb_after_gro--; >>>>> else if (ret < 0) >>>>> - unprocess_pkts[unprocess_num++] = pkts[i]; >>>>> + pkts[unprocess_num++] = pkts[i]; >>>>> } else if (IS_IPV6_TCP_PKT(pkts[i]->packet_type) && >>>>> do_tcp6_gro) { >>>>> ret = gro_tcp6_reassemble(pkts[i], &tcp6_tbl, 0); >>>>> @@ -308,21 +307,15 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, >>>>> /* merge successfully */ >>>>> nb_after_gro--; >>>>> else if (ret < 0) >>>>> - unprocess_pkts[unprocess_num++] = pkts[i]; >>>>> + pkts[unprocess_num++] = pkts[i]; >>>>> } else >>>>> - unprocess_pkts[unprocess_num++] = pkts[i]; >>>>> + pkts[unprocess_num++] = pkts[i]; >>>>> } >>>>> >>>>> if ((nb_after_gro < nb_pkts) >>>>> || (unprocess_num < nb_pkts)) { >>>>> - i = 0; >>>>> - /* Copy unprocessed packets */ >>>>> - if (unprocess_num > 0) { >>>>> - memcpy(&pkts[i], unprocess_pkts, >>>>> - sizeof(struct rte_mbuf *) * >>>>> - unprocess_num); >>>>> - i = unprocess_num; >>>>> - } >>>>> + >>>>> + i = unprocess_num; >>>>> >>>>> /* Flush all packets from the tables */ >>>>> if (do_vxlan_tcp_gro) { >>>>> >>>> >>>> ack to re-use 'pkts[]' buffer for unprocessed packets, that should work. >>>> >>>> But as a more general GRO question, above 'rte_gro_reassemble_burst()' >>>> functions seems returns 'nb_after_gro' and as far as I can see that >>>> amount of mbufs sits in the 'pkts[]'. >>>> When packets flushed from tables, flushed packets are replaced to >>>> 'pkts[]' but still 'nb_after_gro' returned, there is no way for >>>> application to know that more than 'nb_after_gro' mbufs available in the >>>> 'pkts[]'. Shouldn't return value increased per flushed packet? >>>> >>>> Ahh, I can see it was the case before, but it is updated (perhaps >>>> broken) in commit: >>>> 74080d7dcf31 ("gro: support IPv6 for TCP") >>> >>> Actually my first thought was - we should return 'I' here. >>> but then looking at the code more carefully, I realized that it is correct: >>> nb_after_gro - would contain valid number of packets >>> (at least I wasn't able to find a case when it wouldn't). >>> Though yeh, it wasn't very obvious for me at first place, so might be >>> extra comment wouldn't hurt here. >>> >> >> In first half of the function, 'nb_after_gro' is number of packets not >> assembled and decided to pass back to user via 'pkts' buffer. >> >> In second half, timed out packets are decided to turn back to user >> (flushed), as they are not reassembled, and these packets are added to >> 'pkts' array for user, but 'nb_after_gro' not increased. So how user can >> know about it? >> >> Basically, I think we should return 'i', what am I missing, can you >> please detail? > > Actually, as I understand the logic is different from what you described above. > At the start nb_after_gro equals to total number of input packets: > nb_after_gro = nb_pkts; > Then later, for each packet that was merged with some other packet it decrements: > ret = gro_..._reassemble(pkts[i], ...); > if (ret > 0) > /* Merge successfully */ > nb_after_gro--; > > So at the end nb_after_gro contains number of input packets minus number > of packets that were merged. > We have same understanding up to this point, this is what I described as 'first half of the function' above. My concern is about the flushing timed out packets. They are copied back to 'pkts' array, but 'nb_after_gro' is not updated for these packets. What is the purpose of copying packets back to 'pkts' array? > Which, as I undersrand should be equal to 'I' value. > So, no change here is necessary, I think. > Except probably some extra comment to avoid confusion. > > >