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 180E743AC7; Fri, 9 Feb 2024 15:44:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E968642E64; Fri, 9 Feb 2024 15:44:00 +0100 (CET) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) by mails.dpdk.org (Postfix) with ESMTP id 8665C40697 for ; Fri, 9 Feb 2024 15:43:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1707489839; x=1739025839; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=SSqXkQippt6auGI0Iu/pSpx45KZMDT5m9a/PpVjBGqE=; b=FtPvtgzNPFQ1zstPQmIC9DMwEB+LqskgQBzZtgBPkgggiMBGtUD0p90S 3ED1Z7Gsr2/wIPv+3Ss5kFLnhLYlEyzIXVpCn7DPuX3FRCxUMA10vXUlh 0Cjgy4PDDm6mhmpuaddrJopbJ6BpFL6FnM8sVpnb2CI4i2jjPXIbAvl+V tSe1cWzmGQ4WkGEjZ4g9vsgb0dZ9RTmso47yjPGS+/YWln7Z7l00IcL8R ASFdvo1Mwm0TWKz0/egflNz2A248yfVxfvK/fMCzpR/MP2jY0s3HJ4fAJ vd0Gycb01dwFdo20gw7hpfkAysbT4viZxif076N0qI9ze4MJ8OyGJUC82 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10979"; a="5289708" X-IronPort-AV: E=Sophos;i="6.05,257,1701158400"; d="scan'208";a="5289708" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2024 06:43:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10979"; a="825154926" X-IronPort-AV: E=Sophos;i="6.05,257,1701158400"; d="scan'208";a="825154926" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 09 Feb 2024 06:43:57 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 9 Feb 2024 06:43:57 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 9 Feb 2024 06:43:57 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Fri, 9 Feb 2024 06:43:56 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LqmNcZ3zWoqvkINruzNgzLSUNwUL8t5A5zmdSUMoDT7SbwpyzAlCgTsAP3snxsRJUTkHaN5hqJ3B6CUGx2GJUu9naOOH3EiiraJ3Ae7AdaduXSKBGUjfn4Mj2B+J7LfHrZxbVBqnN6ISI305B0G4Ev/lyYDiF/bSYjLLN6Ib9HrGctKNF39IJm+nd+yRffw42HJOjTv0FlBdmeewnozi6t5WTEhYkRDySfNWNseK/QX+yuZargogbETJ3kSRwY3+8nLxAvpMOXwNQMK8+jlfHngpU+gtzIMpOR4CvS5VLiXAavXj6gnZVG61hdERUqX0MwtKKUUqEUyp7W8r1C9mtQ== 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=i9hkpr4tbn95IE9UJ8BL3+8gJ2Go1P6sbYTE8QnkEaI=; b=LjJTB2qU3iw+gHK7/7tk1PUsQbajmB0DLc7JxqyMm9rBuLn0QRwU+/ceuQM3bTYuVJ2irIZmaCd0zEpoPkIM6EXE3eXNs3q7IU17K/k/YX5+fvXwpOiqq8d6ESdZXy7pdAAGAFnfLlWOyVMyYV9zqi7TF7CKAMcv921JJ+y92+8xYugtQSvD2Aos2q1s3hiGuKJDlm/pyIlq20fp+HX9RTjQ1TjGh+tC7D4bfQY4hQlrY+WJ+oO6UOYXeG5ZumO8/6pi25MwpdEgpivQXJAF+A8U1CaVJufzc83c/1ubCj6IAdjfnp8XRIWgrLG1LJjpapbt7YhGIikRFo2NLDyu5w== 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 PH7PR11MB6498.namprd11.prod.outlook.com (2603:10b6:510:1f1::21) by BL1PR11MB5978.namprd11.prod.outlook.com (2603:10b6:208:385::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.36; Fri, 9 Feb 2024 14:43:54 +0000 Received: from PH7PR11MB6498.namprd11.prod.outlook.com ([fe80::60f:d984:1a35:2085]) by PH7PR11MB6498.namprd11.prod.outlook.com ([fe80::60f:d984:1a35:2085%4]) with mapi id 15.20.7249.035; Fri, 9 Feb 2024 14:43:54 +0000 Message-ID: Date: Fri, 9 Feb 2024 15:43:47 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v11] net/iavf: add diagnostic support in TX path Content-Language: en-US To: Mingjin Ye , CC: , Yuying Zhang , "Beilei Xing" , Wenjun Wu , Simei Su , Jingjing Wu References: <20240105095830.2402403-1-mingjinx.ye@intel.com> <20240110022555.3084426-1-mingjinx.ye@intel.com> From: "Burakov, Anatoly" In-Reply-To: <20240110022555.3084426-1-mingjinx.ye@intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DBBPR09CA0028.eurprd09.prod.outlook.com (2603:10a6:10:d4::16) To PH7PR11MB6498.namprd11.prod.outlook.com (2603:10b6:510:1f1::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR11MB6498:EE_|BL1PR11MB5978:EE_ X-MS-Office365-Filtering-Correlation-Id: 75b2004a-f6bd-4c64-dbdd-08dc297d8a05 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2VqewWEHFHUAnpFtfCFQd0tytnSop3sTMq1AT+rF9ary9+MFoj+O3UJw+onhZO3lM5k3Jh1RB5waPm4DsH5yCArTxcXieo6l+nYJMxXrkn4T7zvd/xOrEZiweWmjvwiID6ANxCORSElQD00FVgc5uoDpfE4EBWSPa+KWh/olKjsGjD7ATxa9TrdiXLKR2sVsGucZymtlcXCl2X8zujMjEMVK/dsz0R/oANyseL0joCGhKxIpEue5LjWN9wKJa20fuggc1hFgUZI/9syhT3hvxABM841RwVlTg50HSSv/RlO3bJLOFA7pLry+kH8DB7odOjMzj7Y73e8OWVr3bjmPWf99Y47hJCDWBzTF6V2evl4Dnzy4KCcaZLiUx7WAkVw0NaDrnanuRzC1Eo35qIwmUfH36nIL9KCgmjFKuwKRQoAEgRkuL1560eVwDVcpl8f4yGIAM6FKPuDexwqdM2j977qvj02kJDAm2WIvJaiRpeduzQXMa+O9uFnuAfuyoZA98rEu/18vkjG4ZhEbuX6e9Zr2MIicHIoKC2QWexXFVYdxS63nxjcO7sFhIGFpS6Ja X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB6498.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(346002)(396003)(376002)(366004)(136003)(39860400002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(31686004)(38100700002)(82960400001)(6506007)(53546011)(6666004)(83380400001)(41300700001)(26005)(31696002)(6512007)(86362001)(4326008)(2616005)(107886003)(36756003)(8936002)(8676002)(66946007)(2906002)(478600001)(6486002)(5660300002)(54906003)(66476007)(66556008)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VmkxVjNVdEZybCt3bk9yQ1lwQzdYMitpNmtpSi9zSG9uNG10QnRXUmRPazVM?= =?utf-8?B?WkEwaVVKZmxZUEpkRllRemhDSE0wVFFzeWowWno2VDQrR3BxYjJBaCs5ZVdF?= =?utf-8?B?MGlzVGFFS0FqbjJqNE1mSVRRTmlEYzRKNFFFMnFVVkhIditJQ3FHd1N5Vk9F?= =?utf-8?B?VVpvaytZVENkTGFnQUpkVGk0S3JCRGFWZ1NyVEJvcTFBS296UEh4dDJXUW9n?= =?utf-8?B?Q0VKRjAyR0JIZmxQbjRjeTFiM1U0SzVjdVozbTAzVkR6dFRRTlVoTGVpRUNp?= =?utf-8?B?K0VmemliTWsvMGJKM1Y5NDdHdi9EMGg0OWM5ZEtuS1duU1FyYitGY3RRcDRo?= =?utf-8?B?aHd3LzVVazY2SFd4bGNWdWp5MDA0OXIxUE5CZWJWbGxjUnI1Ly9VeG9waW8z?= =?utf-8?B?Y2lYQ1R6MzVLMWhTSFlhUGNUNEJ6ZEIrdVFsaGZORjJXUnhvdEVHNHNVcWRC?= =?utf-8?B?OEZsaVVsVVVIRWJVazFyeTA4bTF0UUxNWXczaUFCNlNrbXNTYlpwRlhvMitC?= =?utf-8?B?d0lVSTdIb1NCMHo5dm9SU1ljVWttNUxyaUVKUWx6TW8vZnFRU3NkODliSi9R?= =?utf-8?B?c3dTaHNuL256VkZMZ1RKK0VxWmhuenl6QzRoUnIydW1BVlVOM3R6d1FSS1RC?= =?utf-8?B?QjZWTCtIMzk4amxyOWJWeEpEL2g1b0F4RDBCcDcyaDF4RTdEZTloYTdONlR4?= =?utf-8?B?VTdRamtCdzU4cTdiODBYZWpFelVmQThGcGdoSjd3dmMxMUVXZmdRSUhCZStp?= =?utf-8?B?dEFuc0hQNnc0K0F3dDIyYWRYQ2lCVWZFWkdORW9EYktpNUxJUzByWXgzZUp6?= =?utf-8?B?dW1UK1hYNnRWOGRKMC9FQktuenlOY3NvZ0hBMjM2SkN0aFhRUXRMWW5kcEZL?= =?utf-8?B?THQzbk9GLzNEdG95NExJbmt5b3JoVGo2ZXZPTXdCeW9xUFBOVURsdlRtbWRH?= =?utf-8?B?OW5jNUdSbDFFcWZCQk13dlFoaDFlRERjQmxKbzB1bzJvbFprMlEwdVgrNW1X?= =?utf-8?B?bGxleEk0Wm55cFRwbGlFVmRDNDR5SHd4SThSU3VVRmdJRFJBa2xMVzVnOW9M?= =?utf-8?B?b1FSK2I3T05TbU9JdURsSk5XeVJZVVlsSkgvcE94NTdPNHVVZ3hOeUU5YUdO?= =?utf-8?B?eHRSeTVhcUNVU1FvQThWMWcvK0VXMlIyaWJ5MFYrUVlrcEdyYk1VbC9kbDhr?= =?utf-8?B?Q0ZmNWpST0RaTHNLdjRxTHlXS0w1NVJBcXRnNm10VmdUcUNPaUxHd3pyWlRV?= =?utf-8?B?Szg0NlFvL2FVZW1KK0dxVXNMRWpjY0NIL0RsUG43QzdJMTBrZkpmejk2aHFN?= =?utf-8?B?VXdyemRrWFRpOXB4TlZIMi9rUitoUkVDUlhweXdtWGdpaVQ2Z2I3OXZGbCtv?= =?utf-8?B?Mkp4dkhCZDFEd3owTHVLYnNCZDhXYnpENFpEN3lReU9Uek5lRXVzWHFaYmFS?= =?utf-8?B?NFRaRUJjMm5xZk9Cd3grZkovWFluZlR6TDYzL0Z2Rkh3bFZPdGl2RkxGS1hy?= =?utf-8?B?OEFnWGQ4WUhOaHdZSThLN3JoOU00VEFZZ2F5ZGFOeVMvQ0V4VlV4VFBGZDJP?= =?utf-8?B?TTE1aHd0bFR4QmFjOEhIa01qb2NaeFZ0NWNxWVBFa3p5Yzc4Z3Jvd2pnVG9y?= =?utf-8?B?cXBPRFdnSS9IMW4zSEN6K04ydmpKcDJrRFN4VmRiNGE0Tzk1Q0NLN0VNaWlU?= =?utf-8?B?ME9Wb0NLR09kbFhmazRvTmlUZlZmYVkvOXRIeUJINUR4UkNSbXJMem8wV1Ro?= =?utf-8?B?NUZkcUVmd2RVL1FtUVdyeGo4M2NmV2ZKQlBrZWhUWjZFMGJjNWpHWC9wNll2?= =?utf-8?B?OUw3cmp6ZWU5c3Fhb1NIVlBDTG5wZjI5ekRoUms0Uy82STFoYkJVbzVHVTFI?= =?utf-8?B?SVhVQmFGVDRhWlNsZkp4bFdESStpd1paa1UvL09XQ0l2ajlteG94RVhCOTBl?= =?utf-8?B?SDFzaDlIVjRaZE02eW9WVWVRSEtYZzRPM3FYVk51N0xVTjI4TGtuQVgwNG56?= =?utf-8?B?RS9VazVISThwY2ZESXhDMVdXb1V1ZGlocjFZUFpYNURpeGVQMkluWHZGWmd5?= =?utf-8?B?MGZ4N1Jjd2VkUGdUUFpJbm15V2ErNjBvM2hwTnlmMmkxeTFoTU9JZy95dEpW?= =?utf-8?B?UUdYSjc0UFpGVVR4NVVlUDRwVzlhYkVOdFNpMENJeTRRa2ZXaStwajIrejNT?= =?utf-8?B?V0E9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 75b2004a-f6bd-4c64-dbdd-08dc297d8a05 X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB6498.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2024 14:43:54.5705 (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: nvb7UqQshUDpH1uSOkExj8oVQQYJwoL/jsnUEvGLNyeMwITisZdtdDYLdzygBh27MpcVZljBP6AjMUfXApnM38GNSrVb/Mxl4M7XpDVGCFk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5978 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 On 1/10/2024 3:25 AM, Mingjin Ye wrote: > Implemented a Tx wrapper to perform a thorough check on mbufs, > categorizing and counting invalid cases by types for diagnostic > purposes. The count of invalid cases is accessible through xstats_get. > > Also, the devarg option "mbuf_check" was introduced to configure the > diagnostic parameters to enable the appropriate diagnostic features. > > supported cases: mbuf, size, segment, offload. > 1. mbuf: check for corrupted mbuf. > 2. size: check min/max packet length according to hw spec. > 3. segment: check number of mbuf segments not exceed hw limitation. > 4. offload: check any unsupported offload flag. > > parameter format: "mbuf_check=" or "mbuf_check=[,]" > eg: dpdk-testpmd -a 0000:81:01.0,mbuf_check=[mbuf,size] -- -i > > Signed-off-by: Mingjin Ye > --- > > diff --git a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst > index ce96c2e1f8..f62bb4233c 100644 > --- a/doc/guides/nics/intel_vf.rst > +++ b/doc/guides/nics/intel_vf.rst > @@ -111,6 +111,17 @@ For more detail on SR-IOV, please refer to the following documents: > by setting the ``devargs`` parameter like ``-a 18:01.0,no-poll-on-link-down=1`` > when IAVF is backed by an Intel\ |reg| E810 device or an Intel\ |reg| 700 Series Ethernet device. > > + When IAVF is backed by an Intel\ |reg| E810 device or an Intel\ |reg| 700 series Ethernet devices. This looks like a duplicate line of the one above it, so probably needs to be removed? > + Set the ``devargs`` parameter ``mbuf_check`` to enable TX diagnostics. For example, > + ``-a 18:01.0,mbuf_check=`` or ``-a 18:01.0,mbuf_check=[,...]``. Also, > + ``xstats_get`` can be used to get the error counts, which are collected in ``tx_mbuf_error_packets`` > + xstats. For example, ``testpmd> show port xstats all``. Supported cases: > + > + * mbuf: Check for corrupted mbuf. > + * size: Check min/max packet length according to hw spec. > + * segment: Check number of mbuf segments not exceed hw limitation. > + * offload: Check any unsupported offload flag. > + > + > + int ret = 0; > + uint64_t *mc_flags = args; > + char *str2 = strdup(value); > + if (str2 == NULL) > + return -1; > + > + str_len = strlen(str2); > + if (str2[0] == '[' && str2[str_len - 1] == ']') { > + if (str_len < 3) { > + ret = -1; > + goto mdd_end; > + } > + valid_len = str_len - 2; > + memmove(str2, str2 + 1, valid_len); > + memset(str2 + valid_len, '\0', 2); > + } I would suggest adding a comment mentioning that we're removing outer square brackets from the value. Even better would be to factor it out into a separate function, so that code for this function is not polluted with implementation details of brackets removal. > + cur = strtok_r(str2, ",", &tmp); > + while (cur != NULL) { > + if (!strcmp(cur, "mbuf")) > + *mc_flags |= IAVF_MBUF_CHECK_F_TX_MBUF; > + else if (!strcmp(cur, "size")) > + *mc_flags |= IAVF_MBUF_CHECK_F_TX_SIZE; > + else if (!strcmp(cur, "segment")) > + *mc_flags |= IAVF_MBUF_CHECK_F_TX_SEGMENT; > + else if (!strcmp(cur, "offload")) > + *mc_flags |= IAVF_MBUF_CHECK_F_TX_OFFLOAD; > + else > + PMD_DRV_LOG(ERR, "Unsupported mdd check type: %s", cur); I suspect 'mdd' is an artifact of earlier versions? What does it mean, and can the error message be made more meaningful? > + cur = strtok_r(NULL, ",", &tmp); > + } > + > +mdd_end: > + free(str2); > + return ret; > +} > + > static int iavf_parse_devargs(struct rte_eth_dev *dev) > { > struct iavf_adapter *ad = > @@ -2344,6 +2411,11 @@ static int iavf_parse_devargs(struct rte_eth_dev *dev) > goto bail; > } > > + } > + } > + > + if (pkt_error) { > + txq->mbuf_errors++; > + good_pkts = idx; > + if (good_pkts == 0) > + return 0; > + } > + > + return iavf_tx_pkt_burst_ops[tx_burst_type](tx_queue, > + tx_pkts, good_pkts); The indentation here is a bit odd. The above suggestions are not blocking, so overall Acked-by: Anatoly Burakov -- Thanks, Anatoly