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 4CF25A04B6; Mon, 12 Oct 2020 22:22:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B86511D9CE; Mon, 12 Oct 2020 22:22:36 +0200 (CEST) Received: from nat-hk.nvidia.com (nat-hk.nvidia.com [203.18.50.4]) by dpdk.org (Postfix) with ESMTP id 6F2B21D9CB for ; Mon, 12 Oct 2020 22:22:34 +0200 (CEST) Received: from HKMAIL103.nvidia.com (Not Verified[10.18.92.9]) by nat-hk.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Tue, 13 Oct 2020 04:22:32 +0800 Received: from HKMAIL103.nvidia.com (10.18.16.12) by HKMAIL103.nvidia.com (10.18.16.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 12 Oct 2020 20:22:30 +0000 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.176) by HKMAIL103.nvidia.com (10.18.16.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Mon, 12 Oct 2020 20:22:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kcIlW0CKPpVpmu60tGZ6VD8ZloaADw4QdJuJU3yBvJE1eNgQ+SLxHfAxTAeASQxiDsnLG8q6eOSTj6tWFCSdeWOBRv8SxWKH0Z4dHvpT2aK1vIRbF0AvXSnNz8mmgTD2tq4WCUKsCXt1JL2Dk0U/HmB6e1fNfQbhfdKH3HAz5CmstiHVW8SHPVqkv45IDCCMiy54nyBdTWLz1Zs9OillKP7kWYu44tZHl2Oz31050hviNd0IVNUBs4kWx0mI7HZp8AfIg/HXO97dgNjap+QoFxHJatFB8taEoHPB7bl8VUgW4ZzYFJEMzBV7QGJuhCl1pH1YQntf+uy/7LUkxPSz0w== 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=Qyf3AJBR6OhIdmw/C53lEVqUVKkZZ6UDvNS7jTAbaZ0=; b=h042wpykbPxz7ysnz8mNKEz2hZFyFwgy18VKeF+czXI52ZggNAkV2xauP6JskSDOB0OJf+Fp3XqWbx1SMBXsmcfmw8Ku6TYx/ILdKsgjkYe9etlK94tZpV185xP7xwNTc59xgvAYtJW67m7L9apCh3sX7eiChaVmDvZsdoqRrhmWbmRfg+5yVy6hvspz7x/DVeG+OjLzFYZRSDIj7pfRbAzX5fcqXfZpei0BBaQagRRu8py/Hnll+IejExaZgUaz/XCRhOL4cQjnrHTQlQ9cpZg5IqM9LO0BV5wACvh1a716ni2Emi7CYbnyHCPD9pLEbqp3H/O+LC5zH4IxQDGRbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from MWHPR12MB1360.namprd12.prod.outlook.com (2603:10b6:300:12::7) by MWHPR12MB1806.namprd12.prod.outlook.com (2603:10b6:300:10d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.23; Mon, 12 Oct 2020 20:22:27 +0000 Received: from MWHPR12MB1360.namprd12.prod.outlook.com ([fe80::711e:ec6f:ba28:d3d0]) by MWHPR12MB1360.namprd12.prod.outlook.com ([fe80::711e:ec6f:ba28:d3d0%5]) with mapi id 15.20.3455.030; Mon, 12 Oct 2020 20:22:26 +0000 From: Slava Ovsiienko To: Andrew Rybchenko , "NBU-Contact-Thomas Monjalon" CC: "dev@dpdk.org" , "stephen@networkplumber.org" , "ferruh.yigit@intel.com" , "olivier.matz@6wind.com" , "jerinjacobk@gmail.com" , "maxime.coquelin@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [dpdk-dev] [PATCH v3 1/9] ethdev: introduce Rx buffer split Thread-Index: AQHWoLRD6ZtbU0K9g0WnG2yXDCqjCamUKsIAgAAG6QCAAAJDAIAAMz4Q Date: Mon, 12 Oct 2020 20:22:26 +0000 Message-ID: References: <1602519585-5194-2-git-send-email-viacheslavo@nvidia.com> <6a04882a-4c4c-b515-9499-2ef7b20e94b2@oktetlabs.ru> <228932926.FOKgLshO0b@thomas> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f028c0a8-3d43-447f-8bac-08d86eec8960 x-ms-traffictypediagnostic: MWHPR12MB1806: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: A21ERKsL6ZDmj+K5A9KhWmXv5bd2exxkLMx5pqe3jZ5lbk1ESFLKUrDvhdhSHDGTWJZlJOvvGcC96qq5qdK0dv244Mm3qCU1ps2nZUuZdTeiw9MLJi/oeQAN5rsmDApDPAyscjMSi52XgO5/DcXe9m+tcvaD2G4bcES1HtZPhT7wwmuJzfy+VFZYNGwcb4WBeYkMYcAt76x+GoyP/EvvRG1/W2H9HFaWpAyJNF6X9QCW1dG+i+RUtQl/Tir68D6iAO1zLuu32oK8Hkrws2H8F+YLrYTzuCcp61rb49cdxprh2w6JXk1gnapxfdcl7Q34/mo86S4QKM5t8sguzgqQug== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR12MB1360.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(366004)(396003)(136003)(39860400002)(2906002)(186003)(316002)(26005)(8936002)(66946007)(76116006)(66556008)(66476007)(64756008)(9686003)(66446008)(53546011)(7696005)(83380400001)(110136005)(54906003)(6506007)(33656002)(8676002)(478600001)(55016002)(4326008)(52536014)(5660300002)(71200400001)(86362001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: w1yspMxOvjAeaeabHiqtF6VbA5PUDIDCciZRbYOemNDFI8Kof+1BKtUb14BHLWAJZMmv9NFFThmXHKf+8uswmwpTznRlHvqrX47kx4TjAw/S+G48SOQ2giK6Ltr4CiWVdJ0v9QqgqBGv4N1jil9WlBFA+gE77uKNUiehsFP07nmUenneu7A5pFaqZeX9Jz2ArhTSldi+zv8JnI+59M9V+5RcGUgDP8GY7F6ESCeJQqRFR5156I9FpCjjScseVGcfY87veqnP8j1mZSDWYOsWSJSqaDg3DIl9l1//iKpSgeeTqvec0s+hTNim72TgoqhX8UW9Gp1ujopzKX8ZR9BY12K6MM7ib2YfN/3OHcg9lNXyYy5TG5S3lM1GfKbG866H+DrsHjLaymvn8S2uE14jZennTb5rKFHvDNkEHj8gQP5AkGL1kpE1HnaxBA4ysqsEKuUaM7Pbaiy+q/Tvmk/vzl17mvemuaNn/atn7X+BoHNhy1yb5Sl7ohIefg8KlB9A/5RVwox79XppUbWJKxwnbTe9iq2+lYrVQN6oDZe905BFCvz4djWjyJ7qSWXKWIkSjwo3CiuOS5V+4Ktue/FZ82ZNxzt7lnjvFaTHNonc9mhjYC26qwWsNATVaKPPbxmbt+hLbWy3ozNm8J2Xu1Cp9Q== 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-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR12MB1360.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f028c0a8-3d43-447f-8bac-08d86eec8960 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2020 20:22:26.6729 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ukKJwGNwqzFSSlMgnSNbycbsDQzburhErtoCfn4iKkzH81pjPKp+k1pv4b5ex4b2zmdfZmUIE25OPaMKA8Nspg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1806 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602534152; bh=Qyf3AJBR6OhIdmw/C53lEVqUVKkZZ6UDvNS7jTAbaZ0=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-microsoft-antispam-prvs:x-ms-oob-tlc-oobclassifiers: x-ms-exchange-senderadcheck:x-microsoft-antispam: x-microsoft-antispam-message-info:x-forefront-antispam-report: x-ms-exchange-antispam-messagedata:x-ms-exchange-transport-forked: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=HrExbMo4Q4BUoOOYrDnIKlwBkZkyt4zTPPtHLwkagIu3Glwv+kxArwGUPTDQDbt3d CFjYMnrD5TrUsMEPkKiuMxbKfDQLc7TK66FXF/kCN/ONcljOQ4BekwAwnkcNjQPdo+ epVgIElThgqpUu/W9kvpRcXlFhE4t29Ux0AKuy5IsHIeaeiVqmm5TWkQkHBJf0Xd5L eiqVbbDUhC2ugY+hwTAkzd1dz7CbMQfON6QIC7TnAqnAOvreUZYimSgBOreT0I6sfO Ct+asjPAZEpOv3lETKIm7jRcNzSBX70JL8HL0Rkpdv4eBw2EEVJt46rLdXx5M1V9OH 7bq27KV4mqB6Q== Subject: Re: [dpdk-dev] [PATCH v3 1/9] ethdev: introduce Rx buffer split 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" SGksIEFuZHJldw0KDQpZb3UgYXJlIHJpZ2h0IC0gdGhlIGNvZGUgZHVwbGljYXRpb24gb2YgcnRl X2V0aF9yeF9xdWV1ZV9zZXR1cCgpIGNvZGUgd2FzIGxhcmdlDQphbmQgaXQgZGlkIG5vdCBsb29r IHdlbGwgaW5kZWVkLg0KDQpJJ3ZlIHVwZGF0ZWQgdGhlIGNvZGUsIG5vdyBydGVfZXRoX3J4X3F1 ZXVlX3NldHVwKCkgYW5kIHJ0ZV9ldGhfcnhzZWdfcXVldWVfc2V0dXAoKQ0Kc2hhcmUgdGhlIHVu ZGVybHlpbmcgaW50ZXJuYWwgcm91dGluZSBfX3J0ZV9ldGhfcnhfcXVldWVfc2V0dXAoKS4NCg0K T2YgY291cnNlLCB0aGVyZSBpcyBzb21lIHJlZmFjdG9yaW5nLCBidXQgaXQgaXMgbWVyZWx5IHN0 cmFpZ2h0Zm9yd2FyZCwgYW5kIEkgaG9wZSB5b3UNCndpbGwgZmluZCBpdCBhY2NlcHRhYmxlLCBw bGVhc2Ugc2VlIHRoZSB2NCBvZiB0aGUgcGF0Y2hzZXQuDQoNCkFzIEkgc2FpZCwgSSBkbyBub3Qg c2VlIHRoZSBkZWNpc2lvbi1tYWtpbmcgY29uIG9yIHBybyBmb3IgdGhlIGNhc2UuDQpBbnl3YXks IGlmIHdlIGRlY2lkZSB0byBtb3ZlIHRoZSBzZWdtZW50IGRlc2NyaXB0aW9ucyB0byB0aGUgY29u ZmlnIHN0cnVjdCAtIHRoZXJlIGlzDQpqdXN0IHNtYWxsIHN0ZXAgcmVtYWluaW5nIG92ZXIgZXhp c3RpbmcgY29kZSB0byBpbXBsZW1lbnQgeW91IHRoYXQgYXBwcm9hY2guDQoNCldpdGggYmVzdCBy ZWdhcmRzLCBTbGF2YQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFu ZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBTZW50OiBN b25kYXksIE9jdG9iZXIgMTIsIDIwMjAgMjA6MTENCj4gVG86IE5CVS1Db250YWN0LVRob21hcyBN b25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IFNsYXZhDQo+IE92c2lpZW5rbyA8dmlhY2hl c2xhdm9AbnZpZGlhLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgc3RlcGhlbkBuZXR3b3JrcGx1 bWJlci5vcmc7IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207DQo+IG9saXZpZXIubWF0ekA2d2luZC5j b207IGplcmluamFjb2JrQGdtYWlsLmNvbTsNCj4gbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207 IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BB VENIIHYzIDEvOV0gZXRoZGV2OiBpbnRyb2R1Y2UgUnggYnVmZmVyIHNwbGl0DQo+IA0KPiBPbiAx MC8xMi8yMCA4OjAzIFBNLCBUaG9tYXMgTW9uamFsb24gd3JvdGU6DQo+ID4gMTIvMTAvMjAyMCAx ODozOCwgQW5kcmV3IFJ5YmNoZW5rbzoNCj4gPj4gT24gMTAvMTIvMjAgNzoxOSBQTSwgVmlhY2hl c2xhdiBPdnNpaWVua28gd3JvdGU6DQo+ID4+PiAgaW50DQo+ID4+PiArcnRlX2V0aF9yeHNlZ19x dWV1ZV9zZXR1cCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCByeF9xdWV1ZV9pZCwNCj4gPj4+ ICsJCQkgIHVpbnQxNl90IG5iX3J4X2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsDQo+ID4+ PiArCQkJICBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgKnJ4X2NvbmYsDQo+ID4+PiArCQkJ ICBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9yeHNlZyAqcnhfc2VnLCB1aW50MTZfdCBuX3NlZykgew0K PiA+Pj4gKwlpbnQgcmV0Ow0KPiA+Pj4gKwl1aW50MTZfdCBzZWdfaWR4Ow0KPiA+Pj4gKwl1aW50 MzJfdCBtYnBfYnVmX3NpemU7DQo+ID4+DQo+ID4+IDxzdGFydC1vZi1kdXA+DQo+ID4+DQo+ID4+ PiArCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ow0KPiA+Pj4gKwlzdHJ1Y3QgcnRlX2V0aF9kZXZf aW5mbyBkZXZfaW5mbzsNCj4gPj4+ICsJc3RydWN0IHJ0ZV9ldGhfcnhjb25mIGxvY2FsX2NvbmY7 DQo+ID4+PiArCXZvaWQgKipyeHE7DQo+ID4+PiArDQo+ID4+PiArCVJURV9FVEhfVkFMSURfUE9S VElEX09SX0VSUl9SRVQocG9ydF9pZCwgLUVJTlZBTCk7DQo+ID4+PiArDQo+ID4+PiArCWRldiA9 ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4+PiArCWlmIChyeF9xdWV1ZV9pZCA+PSBk ZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcykgew0KPiA+Pj4gKwkJUlRFX0VUSERFVl9MT0coRVJSLCAi SW52YWxpZCBSWCBxdWV1ZV9pZD0ldVxuIiwNCj4gcnhfcXVldWVfaWQpOw0KPiA+Pj4gKwkJcmV0 dXJuIC1FSU5WQUw7DQo+ID4+PiArCX0NCj4gPj4NCj4gPj4gPGVuZC1vZi1kdXA+DQo+ID4+DQo+ ID4+PiArDQo+ID4+PiArCWlmIChyeF9zZWcgPT0gTlVMTCkgew0KPiA+Pj4gKwkJUlRFX0VUSERF Vl9MT0coRVJSLCAiSW52YWxpZCBudWxsIGRlc2NyaXB0aW9uIHBvaW50ZXJcbiIpOw0KPiA+Pj4g KwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiArCX0NCj4gPj4+ICsNCj4gPj4+ICsJaWYgKG5fc2Vn ID09IDApIHsNCj4gPj4+ICsJCVJURV9FVEhERVZfTE9HKEVSUiwgIkludmFsaWQgemVybyBkZXNj cmlwdGlvbg0KPiBudW1iZXJcbiIpOw0KPiA+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiAr CX0NCj4gPj4+ICsNCj4gPj4+ICsJUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29w cy0+cnhzZWdfcXVldWVfc2V0dXAsDQo+ID4+PiArLUVOT1RTVVApOw0KPiA+Pj4gKw0KPiA+Pg0K PiA+PiA8c3RhcnQtb2YtZHVwPg0KPiA+Pg0KPiA+Pj4gKwkvKg0KPiA+Pj4gKwkgKiBDaGVjayB0 aGUgc2l6ZSBvZiB0aGUgbWJ1ZiBkYXRhIGJ1ZmZlci4NCj4gPj4+ICsJICogVGhpcyB2YWx1ZSBt dXN0IGJlIHByb3ZpZGVkIGluIHRoZSBwcml2YXRlIGRhdGEgb2YgdGhlIG1lbW9yeQ0KPiBwb29s Lg0KPiA+Pj4gKwkgKiBGaXJzdCBjaGVjayB0aGF0IHRoZSBtZW1vcnkgcG9vbCBoYXMgYSB2YWxp ZCBwcml2YXRlIGRhdGEuDQo+ID4+PiArCSAqLw0KPiA+Pj4gKwlyZXQgPSBydGVfZXRoX2Rldl9p bmZvX2dldChwb3J0X2lkLCAmZGV2X2luZm8pOw0KPiA+Pj4gKwlpZiAocmV0ICE9IDApDQo+ID4+ PiArCQlyZXR1cm4gcmV0Ow0KPiA+Pg0KPiA+PiA8ZW5kLW9mLWR1cD4NCj4gPj4NCj4gPj4+ICsN Cj4gPj4+ICsJZm9yIChzZWdfaWR4ID0gMDsgc2VnX2lkeCA8IG5fc2VnOyBzZWdfaWR4KyspIHsN Cj4gPj4+ICsJCXN0cnVjdCBydGVfbWVtcG9vbCAqbXAgPSByeF9zZWdbc2VnX2lkeF0ubXA7DQo+ ID4+PiArDQo+ID4+PiArCQlpZiAobXAtPnByaXZhdGVfZGF0YV9zaXplIDwNCj4gPj4+ICsJCQkJ c2l6ZW9mKHN0cnVjdCBydGVfcGt0bWJ1Zl9wb29sX3ByaXZhdGUpKSB7DQo+ID4+PiArCQkJUlRF X0VUSERFVl9MT0coRVJSLCAiJXMgcHJpdmF0ZV9kYXRhX3NpemUgJWQgPA0KPiAlZFxuIiwNCj4g Pj4+ICsJCQkJbXAtPm5hbWUsIChpbnQpbXAtPnByaXZhdGVfZGF0YV9zaXplLA0KPiA+Pj4gKwkJ CQkoaW50KXNpemVvZihzdHJ1Y3QNCj4gcnRlX3BrdG1idWZfcG9vbF9wcml2YXRlKSk7DQo+ID4+ PiArCQkJcmV0dXJuIC1FTk9TUEM7DQo+ID4+PiArCQl9DQo+ID4+PiArDQo+ID4+PiArCQltYnBf YnVmX3NpemUgPSBydGVfcGt0bWJ1Zl9kYXRhX3Jvb21fc2l6ZShtcCk7DQo+ID4+PiArCQlpZiAo bWJwX2J1Zl9zaXplIDwgcnhfc2VnW3NlZ19pZHhdLmxlbmd0aCArDQo+ID4+PiArCQkJCSAgIHJ4 X3NlZ1tzZWdfaWR4XS5vZmZzZXQgKw0KPiA+Pj4gKwkJCQkgICAoc2VnX2lkeCA/IDAgOg0KPiA+ Pj4gKwkJCQkgICAgKHVpbnQzMl90KVJURV9QS1RNQlVGX0hFQURST09NKSkgew0KPiA+Pj4gKwkJ CVJURV9FVEhERVZfTE9HKEVSUiwNCj4gPj4+ICsJCQkJIiVzIG1idWZfZGF0YV9yb29tX3NpemUg JWQgPCAlZCINCj4gPj4+ICsJCQkJIiAoc2VnbWVudCBsZW5ndGg9JWQgKyBzZWdtZW50DQo+IG9m ZnNldD0lZClcbiIsDQo+ID4+PiArCQkJCW1wLT5uYW1lLCAoaW50KW1icF9idWZfc2l6ZSwNCj4g Pj4+ICsJCQkJKGludCkocnhfc2VnW3NlZ19pZHhdLmxlbmd0aCArDQo+ID4+PiArCQkJCSAgICAg IHJ4X3NlZ1tzZWdfaWR4XS5vZmZzZXQpLA0KPiA+Pj4gKwkJCQkoaW50KXJ4X3NlZ1tzZWdfaWR4 XS5sZW5ndGgsDQo+ID4+PiArCQkJCShpbnQpcnhfc2VnW3NlZ19pZHhdLm9mZnNldCk7DQo+ID4+ PiArCQkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiArCQl9DQo+ID4+PiArCX0NCj4gPj4+ICsNCj4g Pj4NCj4gPj4gPHN0YXJ0LW9mLWh1Z2UtZHVwPg0KPiA+Pg0KPiA+Pj4gKwkvKiBVc2UgZGVmYXVs dCBzcGVjaWZpZWQgYnkgZHJpdmVyLCBpZiBuYl9yeF9kZXNjIGlzIHplcm8gKi8NCj4gPj4+ICsJ aWYgKG5iX3J4X2Rlc2MgPT0gMCkgew0KPiA+Pj4gKwkJbmJfcnhfZGVzYyA9IGRldl9pbmZvLmRl ZmF1bHRfcnhwb3J0Y29uZi5yaW5nX3NpemU7DQo+ID4+PiArCQkvKiBJZiBkcml2ZXIgZGVmYXVs dCBpcyBhbHNvIHplcm8sIGZhbGwgYmFjayBvbiBFQUwgZGVmYXVsdCAqLw0KPiA+Pj4gKwkJaWYg KG5iX3J4X2Rlc2MgPT0gMCkNCj4gPj4+ICsJCQluYl9yeF9kZXNjID0NCj4gUlRFX0VUSF9ERVZf RkFMTEJBQ0tfUlhfUklOR1NJWkU7DQo+ID4+PiArCX0NCj4gPj4+ICsNCj4gPj4+ICsJaWYgKG5i X3J4X2Rlc2MgPiBkZXZfaW5mby5yeF9kZXNjX2xpbS5uYl9tYXggfHwNCj4gPj4+ICsJCQluYl9y eF9kZXNjIDwgZGV2X2luZm8ucnhfZGVzY19saW0ubmJfbWluIHx8DQo+ID4+PiArCQkJbmJfcnhf ZGVzYyAlIGRldl9pbmZvLnJ4X2Rlc2NfbGltLm5iX2FsaWduICE9IDApIHsNCj4gPj4+ICsNCj4g Pj4+ICsJCVJURV9FVEhERVZfTE9HKEVSUiwNCj4gPj4+ICsJCQkiSW52YWxpZCB2YWx1ZSBmb3Ig bmJfcnhfZGVzYyg9JWh1KSwgc2hvdWxkIGJlOiAiDQo+ID4+PiArCQkJIjw9ICVodSwgPj0gJWh1 LCBhbmQgYSBwcm9kdWN0IG9mICVodVxuIiwNCj4gPj4+ICsJCQluYl9yeF9kZXNjLCBkZXZfaW5m by5yeF9kZXNjX2xpbS5uYl9tYXgsDQo+ID4+PiArCQkJZGV2X2luZm8ucnhfZGVzY19saW0ubmJf bWluLA0KPiA+Pj4gKwkJCWRldl9pbmZvLnJ4X2Rlc2NfbGltLm5iX2FsaWduKTsNCj4gPj4+ICsJ CXJldHVybiAtRUlOVkFMOw0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiArCWlmIChkZXYtPmRh dGEtPmRldl9zdGFydGVkICYmDQo+ID4+PiArCQkhKGRldl9pbmZvLmRldl9jYXBhICYNCj4gPj4+ ICsJCQlSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVfUlhfUVVFVUVfU0VUVVApKQ0KPiA+Pj4gKwkJ cmV0dXJuIC1FQlVTWTsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKGRldi0+ZGF0YS0+ZGV2X3N0YXJ0 ZWQgJiYNCj4gPj4+ICsJCShkZXYtPmRhdGEtPnJ4X3F1ZXVlX3N0YXRlW3J4X3F1ZXVlX2lkXSAh PQ0KPiA+Pj4gKwkJCVJURV9FVEhfUVVFVUVfU1RBVEVfU1RPUFBFRCkpDQo+ID4+PiArCQlyZXR1 cm4gLUVCVVNZOw0KPiA+Pj4gKw0KPiA+Pj4gKwlyeHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlczsN Cj4gPj4+ICsJaWYgKHJ4cVtyeF9xdWV1ZV9pZF0pIHsNCj4gPj4+ICsJCVJURV9GVU5DX1BUUl9P Ul9FUlJfUkVUKCpkZXYtPmRldl9vcHMtDQo+ID5yeF9xdWV1ZV9yZWxlYXNlLA0KPiA+Pj4gKwkJ CQkJLUVOT1RTVVApOw0KPiA+Pj4gKwkJKCpkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2Up KHJ4cVtyeF9xdWV1ZV9pZF0pOw0KPiA+Pj4gKwkJcnhxW3J4X3F1ZXVlX2lkXSA9IE5VTEw7DQo+ ID4+PiArCX0NCj4gPj4+ICsNCj4gPj4+ICsJaWYgKHJ4X2NvbmYgPT0gTlVMTCkNCj4gPj4+ICsJ CXJ4X2NvbmYgPSAmZGV2X2luZm8uZGVmYXVsdF9yeGNvbmY7DQo+ID4+PiArDQo+ID4+PiArCWxv Y2FsX2NvbmYgPSAqcnhfY29uZjsNCj4gPj4+ICsNCj4gPj4+ICsJLyoNCj4gPj4+ICsJICogSWYg YW4gb2ZmbG9hZGluZyBoYXMgYWxyZWFkeSBiZWVuIGVuYWJsZWQgaW4NCj4gPj4+ICsJICogcnRl X2V0aF9kZXZfY29uZmlndXJlKCksIGl0IGhhcyBiZWVuIGVuYWJsZWQgb24gYWxsIHF1ZXVlcywN Cj4gPj4+ICsJICogc28gdGhlcmUgaXMgbm8gbmVlZCB0byBlbmFibGUgaXQgaW4gdGhpcyBxdWV1 ZSBhZ2Fpbi4NCj4gPj4+ICsJICogVGhlIGxvY2FsX2NvbmYub2ZmbG9hZHMgaW5wdXQgdG8gdW5k ZXJseWluZyBQTUQgb25seSBjYXJyaWVzDQo+ID4+PiArCSAqIHRob3NlIG9mZmxvYWRpbmdzIHdo aWNoIGFyZSBvbmx5IGVuYWJsZWQgb24gdGhpcyBxdWV1ZSBhbmQNCj4gPj4+ICsJICogbm90IGVu YWJsZWQgb24gYWxsIHF1ZXVlcy4NCj4gPj4+ICsJICovDQo+ID4+PiArCWxvY2FsX2NvbmYub2Zm bG9hZHMgJj0gfmRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzOw0KPiA+Pj4gKw0K PiA+Pj4gKwkvKg0KPiA+Pj4gKwkgKiBOZXcgYWRkZWQgb2ZmbG9hZGluZ3MgZm9yIHRoaXMgcXVl dWUgYXJlIHRob3NlIG5vdCBlbmFibGVkIGluDQo+ID4+PiArCSAqIHJ0ZV9ldGhfZGV2X2NvbmZp Z3VyZSgpIGFuZCB0aGV5IG11c3QgYmUgcGVyLXF1ZXVlIHR5cGUuDQo+ID4+PiArCSAqIEEgcHVy ZSBwZXItcG9ydCBvZmZsb2FkaW5nIGNhbid0IGJlIGVuYWJsZWQgb24gYSBxdWV1ZSB3aGlsZQ0K PiA+Pj4gKwkgKiBkaXNhYmxlZCBvbiBhbm90aGVyIHF1ZXVlLiBBIHB1cmUgcGVyLXBvcnQgb2Zm bG9hZGluZyBjYW4ndA0KPiA+Pj4gKwkgKiBiZSBlbmFibGVkIGZvciBhbnkgcXVldWUgYXMgbmV3 IGFkZGVkIG9uZSBpZiBpdCBoYXNuJ3QgYmVlbg0KPiA+Pj4gKwkgKiBlbmFibGVkIGluIHJ0ZV9l dGhfZGV2X2NvbmZpZ3VyZSgpLg0KPiA+Pj4gKwkgKi8NCj4gPj4+ICsJaWYgKChsb2NhbF9jb25m Lm9mZmxvYWRzICYgZGV2X2luZm8ucnhfcXVldWVfb2ZmbG9hZF9jYXBhKSAhPQ0KPiA+Pj4gKwkg ICAgIGxvY2FsX2NvbmYub2ZmbG9hZHMpIHsNCj4gPj4+ICsJCVJURV9FVEhERVZfTE9HKEVSUiwN Cj4gPj4+ICsJCQkiRXRoZGV2IHBvcnRfaWQ9JWQgcnhfcXVldWVfaWQ9JWQsIG5ldyBhZGRlZA0K PiBvZmZsb2FkcyINCj4gPj4+ICsJCQkiIDB4JSJQUkl4NjQiIG11c3QgYmUgd2l0aGluIHBlci1x dWV1ZSBvZmZsb2FkIg0KPiA+Pj4gKwkJCSIgY2FwYWJpbGl0aWVzIDB4JSJQUkl4NjQiIGluICVz KClcbiIsDQo+ID4+PiArCQkJcG9ydF9pZCwgcnhfcXVldWVfaWQsIGxvY2FsX2NvbmYub2ZmbG9h ZHMsDQo+ID4+PiArCQkJZGV2X2luZm8ucnhfcXVldWVfb2ZmbG9hZF9jYXBhLA0KPiA+Pj4gKwkJ CV9fZnVuY19fKTsNCj4gPj4+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4gKwl9DQo+ID4+PiAr DQo+ID4+PiArCS8qDQo+ID4+PiArCSAqIElmIExSTyBpcyBlbmFibGVkLCBjaGVjayB0aGF0IHRo ZSBtYXhpbXVtIGFnZ3JlZ2F0ZWQgcGFja2V0DQo+ID4+PiArCSAqIHNpemUgaXMgc3VwcG9ydGVk IGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4NCj4gPj4+ICsJICovDQo+ID4+PiArCWlmIChsb2Nh bF9jb25mLm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVENQX0xSTykgew0KPiA+Pj4gKwkJaWYg KGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1heF9scm9fcGt0X3NpemUgPT0gMCkNCj4gPj4+ ICsJCQlkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tYXhfbHJvX3BrdF9zaXplID0NCj4gPj4+ ICsJCQkJZGV2LT5kYXRhLQ0KPiA+ZGV2X2NvbmYucnhtb2RlLm1heF9yeF9wa3RfbGVuOw0KPiA+ Pj4gKwkJaW50IHJldCA9IGNoZWNrX2xyb19wa3Rfc2l6ZShwb3J0X2lkLA0KPiA+Pj4gKwkJCQlk ZXYtPmRhdGEtDQo+ID5kZXZfY29uZi5yeG1vZGUubWF4X2xyb19wa3Rfc2l6ZSwNCj4gPj4+ICsJ CQkJZGV2LT5kYXRhLQ0KPiA+ZGV2X2NvbmYucnhtb2RlLm1heF9yeF9wa3RfbGVuLA0KPiA+Pj4g KwkJCQlkZXZfaW5mby5tYXhfbHJvX3BrdF9zaXplKTsNCj4gPj4+ICsJCWlmIChyZXQgIT0gMCkN Cj4gPj4+ICsJCQlyZXR1cm4gcmV0Ow0KPiA+Pj4gKwl9DQo+ID4+DQo+ID4+IDxlbmQtb2YtaHVn ZS1kdXA+DQo+ID4+DQo+ID4+IElNTyBJdCBpcyBub3QgYWNjZXB0YWJsZSB0byBkdXBsaWNhdGlv biBzbyBtdWNoIGNvZGUuDQo+ID4+IEl0IGlzIHNpbXBseSB1bm1haW50YWluYWJsZS4NCj4gPj4N Cj4gPj4gTkFDSw0KPiA+DQo+ID4gQ2FuIGl0IGJlIHNvbHZlZCBieSBtYWtpbmcgcnRlX2V0aF9y eF9xdWV1ZV9zZXR1cCgpIGEgd3JhcHBlciBvbiB0b3ANCj4gPiBvZiB0aGlzIG5ldyBydGVfZXRo X3J4c2VnX3F1ZXVlX3NldHVwKCkgPw0KPiA+DQo+IA0KPiBDb3VsZCBiZSwgYnV0IHN0cmljdGx5 IHNwZWFraW5nIGl0IHdpbGwgYnJlYWsgYXJndW1lbnRzIHZhbGlkYXRpb24gb3JkZXIgYW5kDQo+ IGVycm9yIHJlcG9ydGluZyBpbiB2YXJpb3VzIGNhc2VzLg0KPiBTbywgcmVmYWN0b3JpbmcgaXMg cmVxdWlyZWQgdG8ga2VlcCBpdCBjb25zaXN0ZW50Lg0K