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 B8726A0597; Thu, 9 Apr 2020 04:44:32 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B75C11C0CE; Thu, 9 Apr 2020 04:44:31 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 5313A1C0CD for ; Thu, 9 Apr 2020 04:44:30 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0392fTNf005778; Wed, 8 Apr 2020 19:44:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=uYrdcoDWyale7HSm6PumIkQnHkiT6IIy7Jydkw/04eo=; b=RZnijjydyC9w1ji7Tb2Gn4yXOlaCG9tYyVAXVQm7RXLLeS7UDgfezRW24wVIyUxHPhES 6abD5Lw8SOF5WYHC3l+DemnHRYmPqSYgf/CCTwN8im6D7uFa1CmaXJzSbqqg1oD+xbNi PcYAn1T7XiNnWdsM1RQHoF+oJnILpGQHubsMNx2QhZflsx4490jFAfcvapFqwz5riYNa cycrUPQivNgaOnB6Ov66TXTD8IHMAlv5Ti7vxmkxZfwWI9SaMX4cjlZdc4M8vgfDfUK+ LFfRaVwaYMBcEYZSzm64XWajYY3D5z/JPOOzAUS1fHqgN5E103ptyoB+mGFqI4fXAYWA uQ== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 3091jwe7qn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 08 Apr 2020 19:44:29 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 8 Apr 2020 19:44:28 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.171) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 8 Apr 2020 19:44:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aGM43GRAns63rGyQBxR/eoATb+fxQLIUDsEDi6LaovNB9ndKRqCEQHjyM7z3dIccD02B+ySKh94EygYaH/URXfw6j3W9JbP/WIOOljBzvqC9llnIQg6NaUk/HhHyWnVNA/rpkr8GLmlep28PHj9D6W/DrQ4ktjNrym48uHEwSRm/HH17u4qCyW3RiUrFVVmr/bEswMjaAILHBaH1nOevSMixLOAa9w3jbRJPhYVc3jbiZn3VjWLHmyuNpckHIPd967hbZxdK5cB8PJKS96KNf/ibEyfTPXpKIIYD4shY5WfYyWGtI8eINql0ocsGDFeGE5hvEOmfVKCvu2ifJ4Oq6w== 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=uYrdcoDWyale7HSm6PumIkQnHkiT6IIy7Jydkw/04eo=; b=STSJvaRt87Ffe3n/67WqKF66Zi9Ys1YARuf0oy+gJSfD7qPYdGqvCji1rAeglSIaa9OtwmvyG/V2bZMuEj1vt36V+7DaIKtKSUsEzh9A6oVX22BNzg0wfbfFBm2+DYTL1cHEC2YL1doU2qn8hLtOL5wf3pKoMo4Bp1GzJynbr37mb9BuoxRRrvhxn4ugbXuYBWYS+o2LNj7x5w47b0rKul6lYBDC4fyRc4+GKaM/gQv/bz4uJd7vp+9AgeFd1tiXo3D8emyWRpYFqk3ZuMurK5v6Is2P1VnuhCau21zvcVnfAgcLAQ9vp6tAHtcvGmmimueStC4U9fZDt/Zk5EqhDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uYrdcoDWyale7HSm6PumIkQnHkiT6IIy7Jydkw/04eo=; b=kmbRlp3DGB0iWYPLvjkWjDfUjImLBiPLwlzfKbJS2MUDIhEBtLYI54vMgQ4JBEY21BlEB3+T/XP4zzNM71eAAA/28bxvwGXXVXVNMU6zBPrhpHnJiKJV9bi1yZb+cAjzy16deypysnVUXEF/hGRe7+pkoNbootTEYNc8JXKXau8= Received: from BYAPR18MB2965.namprd18.prod.outlook.com (2603:10b6:a03:10c::30) by BYASPR01MB0014.namprd18.prod.outlook.com (2603:10b6:a03:51::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.15; Thu, 9 Apr 2020 02:44:26 +0000 Received: from BYAPR18MB2965.namprd18.prod.outlook.com ([fe80::44a0:144:aca8:b52]) by BYAPR18MB2965.namprd18.prod.outlook.com ([fe80::44a0:144:aca8:b52%7]) with mapi id 15.20.2900.015; Thu, 9 Apr 2020 02:44:26 +0000 From: Kiran Kumar Kokkilagadda To: Andrzej Ostruszka , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v4 06/29] graph: populate fastpath memory for graph reel Thread-Index: AQHWCygaP/yWNpAJN0O3yLUdouCDBqhvgF0AgACQwVA= Date: Thu, 9 Apr 2020 02:44:26 +0000 Message-ID: References: <20200331192945.2466880-1-jerinj@marvell.com> <20200405085613.1336841-1-jerinj@marvell.com> <20200405085613.1336841-7-jerinj@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [49.205.220.58] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 940f764e-eaa7-4190-cbd2-08d7dc2feb72 x-ms-traffictypediagnostic: BYASPR01MB0014: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0368E78B5B x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR18MB2965.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(136003)(396003)(39850400004)(366004)(346002)(376002)(64756008)(52536014)(66476007)(316002)(76116006)(55016002)(66446008)(66556008)(66946007)(8936002)(71200400001)(478600001)(33656002)(26005)(2906002)(9686003)(8676002)(81156014)(53546011)(6506007)(5660300002)(110136005)(81166007)(186003)(7696005)(86362001); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sIlGtHutFJKuKDE0g46SJz9Zcvuyf6U/oGkJ0XbxPxhLIATgStpPsLlJPIvrjtJ8O9r+APkqcbgJ5WdDMb+aohgMp8SRFeRc10H+xOFyNTyleneo9PF66bU+zBZVGTQBub5Ycfabx/mFzp80b3yxPaxwJfD6B3noFSqtrDEws3T8+wfh6qRs5fpXAK8KmDmGYr1yHJ8gfc15JMn10pEagIF9MlrJNUfm+3re2mXUn8Ng7q9KIlynYu7QdlbVayn1q37tPK6hJ6nA3DgpuMaibHxpg00CWVr8vtVVoYGah1L/V7/4Y9GpEBQ5gq3SOJT+5olMa+Z45gUUTZLTthRt8Dn0EEE39uXizPcWIpyo1PcO7jVhm5gXStIskKJiGT2S6tqW/oFWJrh9AR9zHRyDnbzYwsONFyKRiMj/WU16KBkrzr53nbrjDHa4i+zD//l9 x-ms-exchange-antispam-messagedata: wJYWx6hyackaA87kLF2ENIlYpI4AWzMCEpLWi9BhtYasv5M7SmrTiqFZV56u6NMSHIZ0+JzAke8EPgsOL0/Yv+bkENRkHGIZDwSZ86VJ87QLGZ8PQdILQZ8AYC8MkdxEBPn7zAMyooc9u3KlAFKoFg== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 940f764e-eaa7-4190-cbd2-08d7dc2feb72 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2020 02:44:26.6258 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: lUqaY5KPbHVA3AwohUrcoJHYlE8TyFTjYxMAMNX+c0gmi65UlvqjYIlpAspaPm8YKg/WGe0V2bndojhqqpplXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYASPR01MB0014 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-08_09:2020-04-07, 2020-04-08 signatures=0 Subject: Re: [dpdk-dev] [PATCH v4 06/29] graph: populate fastpath memory for graph reel 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IDxkZXYtYm91bmNl c0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIEFuZHJ6ZWogT3N0cnVzemthDQo+IFNlbnQ6IFdlZG5l c2RheSwgQXByaWwgOCwgMjAyMCAxMTowMCBQTQ0KPiBUbzogZGV2QGRwZGsub3JnDQo+IFN1Ympl Y3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NCAwNi8yOV0gZ3JhcGg6IHBvcHVsYXRlIGZhc3Rw YXRoIG1lbW9yeSBmb3INCj4gZ3JhcGggcmVlbA0KPiANCj4gT24gNC81LzIwIDEwOjU1IEFNLCBq ZXJpbmpAbWFydmVsbC5jb20gd3JvdGU6DQo+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluakBt YXJ2ZWxsLmNvbT4NCj4gWy4uLl0NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ncmFwaC9n cmFwaF9wb3B1bGF0ZS5jDQo+ID4gYi9saWIvbGlicnRlX2dyYXBoL2dyYXBoX3BvcHVsYXRlLmMN Cj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMC4uMDkzNTEyZWZh DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2xpYi9saWJydGVfZ3JhcGgvZ3JhcGhfcG9w dWxhdGUuYw0KPiA+IEBAIC0wLDAgKzEsMjM0IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiArICogQ29weXJpZ2h0KEMpIDIwMjAgTWFydmVsbCBJ bnRlcm5hdGlvbmFsIEx0ZC4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8Zm5tYXRj aC5oPg0KPiA+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPHJ0 ZV9jb21tb24uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9lcnJuby5oPg0KPiA+ICsjaW5jbHVkZSA8 cnRlX21hbGxvYy5oPg0KPiA+ICsjaW5jbHVkZSA8cnRlX21lbXpvbmUuaD4NCj4gPiArDQo+ID4g KyNpbmNsdWRlICJncmFwaF9wcml2YXRlLmgiDQo+ID4gKw0KPiA+ICtzdGF0aWMgc2l6ZV90DQo+ ID4gK2dyYXBoX2ZwX21lbV9jYWxjX3NpemUoc3RydWN0IGdyYXBoICpncmFwaCkgew0KPiA+ICsJ c3RydWN0IGdyYXBoX25vZGUgKmdyYXBoX25vZGU7DQo+ID4gKwlydGVfbm9kZV90IHZhbDsNCj4g PiArCXNpemVfdCBzejsNCj4gPiArDQo+ID4gKwkvKiBHcmFwaCBoZWFkZXIgKi8NCj4gPiArCXN6 ID0gc2l6ZW9mKHN0cnVjdCBydGVfZ3JhcGgpOw0KPiA+ICsJLyogU291cmNlIG5vZGVzIGxpc3Qg Ki8NCj4gPiArCXN6ICs9IHNpemVvZihydGVfZ3JhcGhfb2ZmX3QpICogZ3JhcGgtPnNyY19ub2Rl X2NvdW50Ow0KPiA+ICsJLyogQ2lyY3VsYXIgYnVmZmVyIGZvciBwZW5kaW5nIHN0cmVhbXMgb2Yg c2l6ZSBudW1iZXIgb2Ygbm9kZXMgKi8NCj4gPiArCXZhbCA9IHJ0ZV9hbGlnbjMycG93MihncmFw aC0+bm9kZV9jb3VudCAqIHNpemVvZihydGVfZ3JhcGhfb2ZmX3QpKTsNCj4gPiArCXN6ID0gUlRF X0FMSUdOKHN6LCB2YWwpOw0KPiA+ICsJZ3JhcGgtPmNpcl9zdGFydCA9IHN6Ow0KPiA+ICsJZ3Jh cGgtPmNpcl9tYXNrID0gcnRlX2FsaWduMzJwb3cyKGdyYXBoLT5ub2RlX2NvdW50KSAtIDE7DQo+ ID4gKwlzeiArPSB2YWw7DQo+IA0KPiBBcmVuJ3QgaGVyZSBzb3VyY2Ugbm9kZXMgY291bnRlZCB0 d2ljZT8gIEknbSB0cnlpbmcgbm93IHRvIHdyYXAgbXkgaGVhZA0KPiBhcm91bmQgaG93IHRoaXMg YWxsIGlzIHN0cnVjdHVyZWQgYW5kIGxhaWQgb3V0IGluIG1lbW9yeSAodGh1cyB0aGUgc2xvd2Rv d24gaW4NCj4gcmV2aWV3KSBzbyBJIGFtIG1vc3QgcHJvYmFibHkgbWlzc2luZyBzb21ldGhpbmcg aGVyZS4NCj4gDQoNClllcywgd2UgYXJlIGNvdW50aW5nIHNvdXJjZSBub2RlcyBvZmZzZXQsIDIg dGltZXMgaW4gdGhlIGNpcmN1bGFyIGJ1ZmZlci4gSW4gZmFjdCBpbnRlbnRpb25hbGx5IHdlIGFy ZSBhbGxvY2F0aW5nIHRoZSBjaXJjdWxhciBidWZmZXIgbW9yZSB0aGFuIHRoZSByZXF1aXJlZCBz aXplIChydGVfYWxpZ24zMnBvdzIpLg0KQnkgYWxsb2NhdGluZyBjaXJjdWxhciBidWZmZXIgd2l0 aCBtb3JlIHNpemUsIGF0IGxlYXN0IGluIHNvbWUgY2FzZXMgd2UgY2FuIGF2b2lkIHdyYXBhcm91 bmQuDQpMZXQgbWUgdHJ5IHRvIGV4cGxhaW4gaG93IHRoaXMgbWVtb3J5IHJlZWwgYW5kIGdyYXBo IHdhbGsgd29ya3MuDQpUaGlzIGlzIGhvdyBtZW1vcnkgcmVlbCBsb29rcyBsaWtlLg0KDQoxLiBH cmFwaF9oZWFkZXItLS0+IDIuIEZFTkNFIC0tLT4gMy4gW0dyYXBoIHdhbGsgYWx3YXlzIHN0YXJ0 cyBmcm9tIGhlcmVdIG1lbW9yeSBmb3Igc291cmNlIG5vZGUgb2JqZWN0IG9mZnNldHMgLS0tPiA0 LiBbY2lyY3VsYXIgYnVmZmVyIHN0YXJ0c10gZW5xdWV1ZWQgbm9kZSBvYmplY3Qgb2Zmc2V0IFsg Y2lyY3VsYXIgYnVmZmVyIGVuZF0gLS0+IDUuIEZFTkNFIC0tLT4gNi4gTWVtb3J5IGZvciBOb2Rl IG9iamVjdHMNCg0KMyBhbmQgNCB3aWxsIGhhdmUgdGhlIG9mZnNldCBvZiB0aGVpciBjb3JyZXNw b25kaW5nIG5vZGUgb2JqZWN0IGluIHRoZSA2Lg0KDQpJbml0aWFsbHkgYmVmb3JlIGdyYXBoIHdh bGsgc3RhcnQgd2Ugd2lsbCBwb3B1bGF0ZSB0aGUgMyAoc2VlIGdyYXBoX3NyY19ub2Rlc19wb3B1 bGF0ZSkgYW5kIHdoZW4gdGhlIGdyYXBoIHdhbGsgc3RhcnQgZmlyc3Qgd2Ugd2lsbCBnbyBvdmVy IDMgYW5kIGJhc2VkIG9uIHRoZSBlbnF1ZXVlcyAsIHdlIHdpbGwgcG9wdWxhdGUgdGhlIDQgYW5k IHRoaXMgaXMgd2hlcmUgd2UgYXJlIGNyZWF0aW5nIGNpcmNsZSAod2Ugd2lsbCBiZSBrZWVwIHdh bGtpbmcgaW4gNCB0aWxsIHRoZXJlIGFyZSBubyBtb3JlIGVucXVldWVzKS4gU28sIGNpcmN1bGFy IGJ1ZmZlciBpcyBhY3R1YWxseSB3YWxrIHRoZSBzb3VyY2Ugbm9kZXMgZmlyc3QgdGhlbiB3aWxs IGNyZWF0ZSBjaXJjbGUgZm9yIGVucXVldWVkIG5vZGVzICg0KS4NCg0KICANCj4gPiArCS8qIEZl bmNlICovDQo+ID4gKwlzeiArPSBzaXplb2YoUlRFX0dSQVBIX0ZFTkNFKTsNCj4gPiArCXN6ID0g UlRFX0FMSUdOKHN6LCBSVEVfQ0FDSEVfTElORV9TSVpFKTsNCj4gPiArCWdyYXBoLT5ub2Rlc19z dGFydCA9IHN6Ow0KPiA+ICsJLyogRm9yIDAuLk4gbm9kZSBvYmplY3RzIHdpdGggZmVuY2UgKi8N Cj4gPiArCVNUQUlMUV9GT1JFQUNIKGdyYXBoX25vZGUsICZncmFwaC0+bm9kZV9saXN0LCBuZXh0 KSB7DQo+ID4gKwkJc3ogPSBSVEVfQUxJR04oc3osIFJURV9DQUNIRV9MSU5FX1NJWkUpOw0KPiA+ ICsJCXN6ICs9IHNpemVvZihzdHJ1Y3QgcnRlX25vZGUpOw0KPiA+ICsJCS8qIFBvaW50ZXIgdG8g bmV4dCBub2RlcyhlZGdlcykgKi8NCj4gPiArCQlzeiArPSBzaXplb2Yoc3RydWN0IHJ0ZV9ub2Rl ICopICogZ3JhcGhfbm9kZS0+bm9kZS0+bmJfZWRnZXM7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJ Z3JhcGgtPm1lbV9zeiA9IHN6Ow0KPiA+ICsJcmV0dXJuIHN6Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgdm9pZA0KPiA+ICtncmFwaF9oZWFkZXJfcG9wbHVhdGUoc3RydWN0IGdyYXBoICpf Z3JhcGgpIHsNCj4gPiArCXN0cnVjdCBydGVfZ3JhcGggKmdyYXBoID0gX2dyYXBoLT5ncmFwaDsN Cj4gPiArDQo+ID4gKwlncmFwaC0+dGFpbCA9IDA7DQo+ID4gKwlncmFwaC0+aGVhZCA9IChpbnQz Ml90KS1fZ3JhcGgtPnNyY19ub2RlX2NvdW50Ow0KPiA+ICsJZ3JhcGgtPmNpcl9tYXNrID0gX2dy YXBoLT5jaXJfbWFzazsNCj4gPiArCWdyYXBoLT5uYl9ub2RlcyA9IF9ncmFwaC0+bm9kZV9jb3Vu dDsNCj4gPiArCWdyYXBoLT5jaXJfc3RhcnQgPSBSVEVfUFRSX0FERChncmFwaCwgX2dyYXBoLT5j aXJfc3RhcnQpOw0KPiA+ICsJZ3JhcGgtPm5vZGVzX3N0YXJ0ID0gX2dyYXBoLT5ub2Rlc19zdGFy dDsNCj4gPiArCWdyYXBoLT5zb2NrZXQgPSBfZ3JhcGgtPnNvY2tldDsNCj4gPiArCWdyYXBoLT5p ZCA9IF9ncmFwaC0+aWQ7DQo+ID4gKwltZW1jcHkoZ3JhcGgtPm5hbWUsIF9ncmFwaC0+bmFtZSwg UlRFX0dSQVBIX05BTUVTSVpFKTsNCj4gDQo+IEFzIEkndmUgbWVudGlvbmVkIGFib3ZlIEknbSBs ZWFybmluZyB0aGUgc3RydWN0dXJlIG9mIHRoZSBsaWIvbWVtb3J5IHNvIHF1aWNrDQo+IHF1ZXN0 aW9uIGhlcmUuICBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgcnRlX2dyYXBoIGlzIGEgInZpZXcg b2YgdGhlICdzdHJ1Y3QNCj4gZ3JhcGgnIHN1ZmZpY2llbnQgZm9yIHdvcmtlciIgc28gZG9lcyBp dCBuZWVkIGJvdGggaWQgJiBuYW1lPyAgQm90aCBvZiB0aGVtDQo+IHNlZW1zIHRvIGJlIHVzZWQg aW4gZXJyb3Igb3IgZHVtcC9kZWJ1ZyBwYXRocy4gIEl0IHByb2JhYmx5IGRvZXNuJ3QgbWF0dGVy IChlLmcuDQo+IGZvciBwZXJmb3JtYW5jZSkgLSBqdXN0IGFza2luZyBiZWNhdXNlICdpZCcgc2Vl bXMgdG8gYmUgdXNlZCBvbmx5IGluIG9uZSBwbGFjZQ0KPiAod2hlcmUgbmFtZSBjb3VsZCByZXBs YWNlIGl0IHByb2JhYmx5KS4NCj4gDQoNClVzZXIgd2lsbCBoYXZlIGFjY2VzcyB0byB0aGUgbm9k ZSBpbmZvIGJvdGggd2F5cyB1c2luZyBlaXRoZXIgbmFtZSBvciBJRC4gVGhlc2UgYXJlIHVzZWQg aW4gc2xvdyBwYXRoLiANCkl0IGlzIHVwIHRvIHRoZSB1c2VyIGhvdyBoZSB3YW50cyB0byB1c2Ug aXQuICANCg0KDQo+ID4gKwlncmFwaC0+ZmVuY2UgPSBSVEVfR1JBUEhfRkVOQ0U7DQo+ID4gK30N Cj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkDQo+ID4gK2dyYXBoX25vZGVzX3BvcHVsYXRlKHN0cnVj dCBncmFwaCAqX2dyYXBoKSB7DQo+ID4gKwlydGVfZ3JhcGhfb2ZmX3Qgb2ZmID0gX2dyYXBoLT5u b2Rlc19zdGFydDsNCj4gPiArCXN0cnVjdCBydGVfZ3JhcGggKmdyYXBoID0gX2dyYXBoLT5ncmFw aDsNCj4gPiArCXN0cnVjdCBncmFwaF9ub2RlICpncmFwaF9ub2RlOw0KPiA+ICsJcnRlX2VkZ2Vf dCBjb3VudCwgbmJfZWRnZXM7DQo+ID4gKwljb25zdCBjaGFyICpwYXJlbnQ7DQo+ID4gKwlydGVf bm9kZV90IHBpZDsNCj4gPiArDQo+ID4gKwlTVEFJTFFfRk9SRUFDSChncmFwaF9ub2RlLCAmX2dy YXBoLT5ub2RlX2xpc3QsIG5leHQpIHsNCj4gPiArCQlzdHJ1Y3QgcnRlX25vZGUgKm5vZGUgPSBS VEVfUFRSX0FERChncmFwaCwgb2ZmKTsNCj4gPiArCQltZW1zZXQobm9kZSwgMCwgc2l6ZW9mKCpu b2RlKSk7DQo+ID4gKwkJbm9kZS0+ZmVuY2UgPSBSVEVfR1JBUEhfRkVOQ0U7DQo+ID4gKwkJbm9k ZS0+b2ZmID0gb2ZmOw0KPiA+ICsJCW5vZGUtPnByb2Nlc3MgPSBncmFwaF9ub2RlLT5ub2RlLT5w cm9jZXNzOw0KPiA+ICsJCW1lbWNweShub2RlLT5uYW1lLCBncmFwaF9ub2RlLT5ub2RlLT5uYW1l LA0KPiBSVEVfR1JBUEhfTkFNRVNJWkUpOw0KPiA+ICsJCXBpZCA9IGdyYXBoX25vZGUtPm5vZGUt PnBhcmVudF9pZDsNCj4gPiArCQlpZiAocGlkICE9IFJURV9OT0RFX0lEX0lOVkFMSUQpIHsgLyog Q2xvbmVkIG5vZGUgKi8NCj4gPiArCQkJcGFyZW50ID0gcnRlX25vZGVfaWRfdG9fbmFtZShwaWQp Ow0KPiA+ICsJCQltZW1jcHkobm9kZS0+cGFyZW50LCBwYXJlbnQsDQo+IFJURV9HUkFQSF9OQU1F U0laRSk7DQo+ID4gKwkJfQ0KPiA+ICsJCW5vZGUtPmlkID0gZ3JhcGhfbm9kZS0+bm9kZS0+aWQ7 DQo+ID4gKwkJbm9kZS0+cGFyZW50X2lkID0gcGlkOw0KPiA+ICsJCW5iX2VkZ2VzID0gZ3JhcGhf bm9kZS0+bm9kZS0+bmJfZWRnZXM7DQo+ID4gKwkJbm9kZS0+bmJfZWRnZXMgPSBuYl9lZGdlczsN Cj4gPiArCQlvZmYgKz0gc2l6ZW9mKHN0cnVjdCBydGVfbm9kZSk7DQo+ID4gKwkJLyogQ29weSB0 aGUgbmFtZSBpbiBmaXJzdCBwYXNzIHRvIHJlcGxhY2Ugd2l0aCBydGVfbm9kZSogbGF0ZXIqLw0K PiA+ICsJCWZvciAoY291bnQgPSAwOyBjb3VudCA8IG5iX2VkZ2VzOyBjb3VudCsrKQ0KPiA+ICsJ CQlub2RlLT5ub2Rlc1tjb3VudF0gPSAoc3RydWN0IHJ0ZV9ub2RlICopJmdyYXBoX25vZGUNCj4g PiArCQkJCQkJICAgICAtPmFkamFjZW5jeV9saXN0W2NvdW50XQ0KPiA+ICsJCQkJCQkgICAgIC0+ bm9kZS0+bmFtZVswXTsNCj4gDQo+IEknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgd2hhdCBpcyBn b2luZyBoZXJlLiAgUGxlYXNlIHNlZSBiZWxvdyAuLi4NCg0KDQpTZWUgYmVsb3cuDQoNCj4gDQo+ ID4gKw0KPiA+ICsJCW9mZiArPSBzaXplb2Yoc3RydWN0IHJ0ZV9ub2RlICopICogbmJfZWRnZXM7 DQo+ID4gKwkJb2ZmID0gUlRFX0FMSUdOKG9mZiwgUlRFX0NBQ0hFX0xJTkVfU0laRSk7DQo+ID4g KwkJbm9kZS0+bmV4dCA9IG9mZjsNCj4gPiArCQlfX3J0ZV9ub2RlX3N0cmVhbV9hbGxvYyhncmFw aCwgbm9kZSk7DQo+ID4gKwl9DQo+ID4gK30NCj4gWy4uLl0NCj4gPiArc3RhdGljIGludA0KPiA+ ICtncmFwaF9ub2RlX25leHRzX3BvcHVsYXRlKHN0cnVjdCBncmFwaCAqX2dyYXBoKSB7DQo+ID4g KwlydGVfbm9kZV90IGNvdW50LCB2YWw7DQo+ID4gKwlydGVfZ3JhcGhfb2ZmX3Qgb2ZmOw0KPiA+ ICsJc3RydWN0IHJ0ZV9ub2RlICpub2RlOw0KPiA+ICsJY29uc3Qgc3RydWN0IHJ0ZV9ncmFwaCAq Z3JhcGggPSBfZ3JhcGgtPmdyYXBoOw0KPiA+ICsJY29uc3QgY2hhciAqbmFtZTsNCj4gPiArDQo+ ID4gKwlydGVfZ3JhcGhfZm9yZWFjaF9ub2RlKGNvdW50LCBvZmYsIGdyYXBoLCBub2RlKSB7DQo+ ID4gKwkJZm9yICh2YWwgPSAwOyB2YWwgPCBub2RlLT5uYl9lZGdlczsgdmFsKyspIHsNCj4gPiAr CQkJbmFtZSA9IChjb25zdCBjaGFyICopbm9kZS0+bm9kZXNbdmFsXTsNCj4gPiArCQkJbm9kZS0+ bm9kZXNbdmFsXSA9IGdyYXBoX25vZGVfbmFtZV90b19wdHIoZ3JhcGgsDQo+IG5hbWUpOw0KPiAN Cj4gLi4uIElzIGl0IHNvIHRoYXQgZHVyaW5nIG5vZGUgdGhlIGZpcnN0IGxvb3AgYWJvdmUgc29t ZSBub2RlIG1pZ2h0IHJlZmVyIChieSBuYW1lKQ0KPiB0byBvdGhlciBub2RlIHRoYXQgaXMgbm90 IHlldCAicmVnaXN0ZXJlZCIgc28gaW5zdGVhZCBvZiBzdG9yaW5nIHJ0ZV9ub2RlIHBvaW50ZXIN Cj4geW91IHN0b3JlZCBhY3R1YWxseSBwb2ludGVyIHRvIG5hbWUgd2hpY2ggeW91IG5vdyB1cGRh dGUgdG8gcHJvcGVyIHJ0ZV9ub2RlPw0KDQpFeGFjdGx5LCBpdCBpcyBiZWNhdXNlIG5leHQgbm9k ZXMgYXJlIGJhc2VkIG9uIG5hbWUgbm90IGJhc2VkIG9uIElELiBBbGwgd2UgbmVlZCBpcyB1c2Vy IGhhcyB0byBjcmVhdGUgYWxsIHRoZSBub2RlcyBiZWZvcmUgZ3JhcGggY3JlYXRlLiBTbywgdGhh dCBhdCB0aGUgdGltZSBvZiBncmFwaCBjcmVhdGUgd2Ugd2lsbCB0YWtlIGNhcmUgb2YgbGlua2lu ZyB0aGUgYWN0dWFsIG5vZGVzIGJhc2VkIG9uIG5hbWUuDQoNCj4gDQo+ID4gKwkJCWlmIChub2Rl LT5ub2Rlc1t2YWxdID09IE5VTEwpDQo+ID4gKwkJCQlTRVRfRVJSX0pNUChFSU5WQUwsIGZhaWws ICIlcyBub3QgZm91bmQiLA0KPiBuYW1lKTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsJcmV0dXJuIDA7DQo+ID4gK2ZhaWw6DQo+ID4gKwlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAr fQ0KPiBbLi4uXQ0KPiANCj4gV2l0aCByZWdhcmRzDQo+IEFuZHJ6ZWogT3N0cnVzemthDQo=