From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 16CC6A04DB; Thu, 15 Oct 2020 18:16:13 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E6E671DB20; Thu, 15 Oct 2020 18:16:11 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 160E51DA5D for ; Thu, 15 Oct 2020 18:16:09 +0200 (CEST) IronPort-SDR: 0DCc7UOWNpaB3FFuiRfWmV3P5dnFWBtuuFI7EKGkblveH9x8d+Cy76+bF+3f9xbu1EqUinR8Nj lV2sh7AMQquA== X-IronPort-AV: E=McAfee;i="6000,8403,9775"; a="163767623" X-IronPort-AV: E=Sophos;i="5.77,379,1596524400"; d="scan'208";a="163767623" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2020 09:16:07 -0700 IronPort-SDR: gYtes8c11wZoNyn7B0SDakyT2Yzsf0whzYCvaQK3TT5dXmYYiK2Yhtj+iL2HhfFK0tn5+eFC2h IjefcLLnoevg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,379,1596524400"; d="scan'208";a="357775763" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga007.jf.intel.com with ESMTP; 15 Oct 2020 09:16:07 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.1713.5; Thu, 15 Oct 2020 09:16:07 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.1713.5; Thu, 15 Oct 2020 09:16:06 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.1713.5 via Frontend Transport; Thu, 15 Oct 2020 09:16:06 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.108) 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.1713.5; Thu, 15 Oct 2020 09:16:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y6EH+bB4X/a6MXm5SunbHbcjI/RhVqveBNihq50N1DoJ1cC2dA+nmzfuUPWZeT+bbdejKxnddvCp9Is004QVsEeyw39yIgtje0HaXzs1vFtftvkZD8U6kN1g82ykel6KqHOz6Se/0w7q3pIDaY2AcpUQaPZoBJ5o5zbjmx4QqUuYj1A0Dc3HiNIAnG2CN8VN+X71ELd+ftY1uKxT+DdNge0xzKEsvJHjr7CLTSZgFVGo3GRbkzad+TmRDUrCJsd4XKePCuf6pwbqnPpqAM3owUJtq2U3VeSkddswyrZxN+0w+FM1DwtMfq/LDXJ/u1pMmY2rglJLphaZwZGpyCK0eQ== 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-SenderADCheck; bh=z+gAKpYLbd0aV/HvQ4rFcN/+H2J23OWLnDWGI80wVwA=; b=QD1MfdzV5QdZNuBG+Rl2fzfl2L/vVpWb/nmCgUyJHV5qqw0d/cPS446imvlL5MLGt74lhcidbhkZW7WtzqGIUEX/ftiDDJc2jDS6K0vQMIJyvuE75O0vlzRoIHchMuyOB1Ln7fT6ztsr9/5NcKqWTrulcFJ2z25kNDZCkpP1CaMN9T8zkNzfYxDhzdjKcELrKhv/x/C1xK+UIcm9T1bXFtjztz/u1qaupJTvK4s10Bx7ppf3qoehr0SZropZ/s3zSxMdggCimpvENas1Y4KSgoawAToUenleiG/5RqS9wRg8iylC/46m0x+AT4aNKR+RU6usA/zNmZRNh7l0dyzMGA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z+gAKpYLbd0aV/HvQ4rFcN/+H2J23OWLnDWGI80wVwA=; b=fY+QvV+ObxpiIbD48H/CQ19fIIMwpC+f3hGcI9G3GIPQkEDNbkUsAZm6+NDYAYjv3NgD+yo9HlhBCFzQc3b7ywCdSz8X2mDfgjkm39Jb5onrM4J6Bcs/Xf+qgE2XwQcad5Oic0jVe2ESP68h2elrVfYIS9vKkbEuNgI6QSiO3U4= Received: from BYAPR11MB3301.namprd11.prod.outlook.com (2603:10b6:a03:7f::26) by BYAPR11MB2918.namprd11.prod.outlook.com (2603:10b6:a03:92::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.24; Thu, 15 Oct 2020 16:16:03 +0000 Received: from BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f5a4:3f6b:ade3:296b]) by BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f5a4:3f6b:ade3:296b%3]) with mapi id 15.20.3477.021; Thu, 15 Oct 2020 16:16:03 +0000 From: "Ananyev, Konstantin" To: "Hu, Jiayu" , yang_y_yi CC: "dev@dpdk.org" , "olivier.matz@6wind.com" , "thomas@monjalon.net" , "yangyi01@inspur.com" Thread-Topic: Re:RE: [PATCH] gso: fix free issue of mbuf gso segments attach to Thread-Index: AQHWnrL85KBHJVyvm02xWITKaS0ypKmVJ4OAgACCzBCAAKMIAIAAIGYAgACLbLCAAS2VgIAAt6cA Date: Thu, 15 Oct 2020 16:16:03 +0000 Message-ID: References: <20201010031020.349516-1-yang_y_yi@163.com> <43f71e6c9d2f4d5ba3ab56a921c5912d@intel.com> <6167423037704e3382f85275be79de30@intel.com> <9239b2e.2116.17525095531.Coremail.yang_y_yi@163.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [46.7.39.127] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f19f2e82-b3b0-44fa-5f0a-08d871259ce8 x-ms-traffictypediagnostic: BYAPR11MB2918: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: l5JaXZyibX/fdj3NIKCYUW0jXt3TNfkdkwdearj2q/6cw8jZKNYyxutFecCyw7ybRAC/R1YMGX/lokernNxhhhU/BLKlpFFHR5BcIXrBBkKRamOmQmwIA3MJLxRNz3J1CzsGeHTGA0EchVogVNLYPiI7oIARLq8QjsOQhRBnJBEEpUBVfiQpQf83t9qUMN2zw4CGYz7vkl9w1Xkg4WJqc/ESsQiPWmOtZaVLHjBo0Alh8QqqBlBuNhNbRWg1McP9g9wh1k1rTHkNtZbEA0elRbJEuHoTEdEe9o3k4zqFcF5HkeSEKVkg4q5W5Ii6iH+mqK2V7/cVGHi/PLU4ecv5gQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3301.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(346002)(366004)(376002)(396003)(54906003)(186003)(110136005)(316002)(71200400001)(9686003)(8936002)(52536014)(55016002)(7696005)(8676002)(86362001)(5660300002)(33656002)(66946007)(76116006)(478600001)(26005)(66476007)(66556008)(66446008)(64756008)(2906002)(53546011)(4326008)(6506007)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: TWxPuZmsVzvFazRWNFWCAhafY9/EwbBOrjt4AeoI7lrcNogtwBQwcUi15KQNmtcgpzI7z2BNRax6GO9d8Uz/LJ+tsWs1/Mm6M1vBKNOG7/u4IeY40YPR9aibbHULQpPXhXpXh0x7cCjPWU9k79tz6Gzz7+TrhyzNVrW87JwzY+wXtMKTEXfRTgpiF04XtQj9h+JHAeX04EU3uu8ECTe0DlaQ59H4B2nR759HuA1+5xZ+GzUIW3+qlbp24Kt0A8OHnD/d3SF98o4gNk/3aokDFzE+aVhJPu1qS57FU4npCXhLeBqorHBoAvQeyQeGKH4PLdfen9VlQTYHNy5scmqrj5+ZhGTpAVfVR9bW9MCCDRRDxvJ7s+Geb/X3uEEI0dfGAuUG7VN0bPXSJP/CE8Yj9CUvQ7NIAZPJKiJTsU98zhACTpH+E4VVcs8jWE/V5GabULhhzInENZiHZRULmL69HAZsjhL7KTqVvM+PLCrzrBoLAO7HBd9h6AX4fxsAelV0PUbBcEBMIcfMV2mLOQ9Z8s0TMGpAcgcSHOoZIOPBUYrxrX+477lIhOOYvSjvR7ChJp7+7Vv5FWyxykKqcxl8aJBtGH3eFsi97IB06uz0ri/SvmzNcwLBVwmcSGigMkevm8F/YKmxSkC/G7bXYP121A== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3301.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f19f2e82-b3b0-44fa-5f0a-08d871259ce8 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2020 16:16:03.1479 (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: GzzYe8lQXu9/G1Gb278HyaSlr+I7niSwS4BhF2sHyHFmmjF7SG2saTlQZoTIjUJGvYiFQOW7Q3Hbh4ONrt8mf6JXA57aSJ//SMSoMXSk3CQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2918 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] gso: fix free issue of mbuf gso segments attach to X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" >=20 > > -----Original Message----- > > From: Ananyev, Konstantin > > Sent: Wednesday, October 14, 2020 8:06 PM > > To: yang_y_yi ; Hu, Jiayu > > Cc: dev@dpdk.org; olivier.matz@6wind.com; thomas@monjalon.net; > > yangyi01@inspur.com > > Subject: RE: Re:RE: [PATCH] gso: fix free issue of mbuf gso segments at= tach to > > > > > > > From: yang_y_yi > > > Sent: Wednesday, October 14, 2020 3:56 AM > > > To: Hu, Jiayu > > > Cc: Ananyev, Konstantin ; dev@dpdk.org; > > olivier.matz@6wind.com; thomas@monjalon.net; > > > yangyi01@inspur.com > > > Subject: Re:RE: [PATCH] gso: fix free issue of mbuf gso segments atta= ch to > > > > > > I think it isn't a good idea to free it in rte_gso_segment, maybe app= lication > > will continue to use this pkt for other purpose, rte_gso_segment > > > can't make decision for application without any notice, it is better = to return > > this decision right backt to application. > > > > > > > I think, if user wants to keep original packet, he can always call > > rte_pktmbuf_refcnt_update(pkt, 1) > > just before calling gso function. > > > > Also, as I remember in some cases it is not safe to do free() for input= packet > > (as pkt_out[] can contain input pkt itself). Would it also be user resp= onsibility > > to determine > > such situations? >=20 > In what case will pkt_out[] contain the input pkt? Can you give an exampl= e? As I can read the code, whenever gso code decides that no segmentation is not really needed, or it is not capable of doing it properly. Let say: gso_tcp4_segment(struct rte_mbuf *pkt, uint16_t gso_size, uint8_t ipid_delta, struct rte_mempool *direct_pool, struct rte_mempool *indirect_pool, struct rte_mbuf **pkts_out, uint16_t nb_pkts_out) { ... /* Don't process the fragmented packet */ ipv4_hdr =3D (struct rte_ipv4_hdr *)(rte_pktmbuf_mtod(pkt, char *) = + pkt->l2_len); frag_off =3D rte_be_to_cpu_16(ipv4_hdr->fragment_offset); if (unlikely(IS_FRAGMENTED(frag_off))) { pkts_out[0] =3D pkt; return 1; } /* Don't process the packet without data */ hdr_offset =3D pkt->l2_len + pkt->l3_len + pkt->l4_len; if (unlikely(hdr_offset >=3D pkt->pkt_len)) { pkts_out[0] =3D pkt; return 1; } That's why in rte_gso_segment() we update refcnt only when ret > 1.=20 =09