From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150077.outbound.protection.outlook.com [40.107.15.77]) by dpdk.org (Postfix) with ESMTP id D96011B3AE for ; Mon, 14 Jan 2019 08:57:53 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XaqJLfzMbUB8u+5HiskXjZQY/V2u2fb5mORzC96o9ZM=; b=lomj/QLhC6aey4AKcnk6IhqXHcRbfg/XxbrkDAgzOKWzPTEzRRJiOfEtgnaCoNPLyL3Bdy6kyuS4xxXW+nzjLBDMMR4/x60PUFuQpP8qd9u9ZxDnuUEIdv2zDa2Vapy//0HyEeBQPpxd8lc7LZ696R98UPlQIhfW3Dgj4fLtbYA= Received: from VI1PR08MB3167.eurprd08.prod.outlook.com (52.133.15.142) by VI1PR08MB0656.eurprd08.prod.outlook.com (10.163.169.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.20; Mon, 14 Jan 2019 07:57:50 +0000 Received: from VI1PR08MB3167.eurprd08.prod.outlook.com ([fe80::8960:6756:4cdc:3954]) by VI1PR08MB3167.eurprd08.prod.outlook.com ([fe80::8960:6756:4cdc:3954%4]) with mapi id 15.20.1516.019; Mon, 14 Jan 2019 07:57:50 +0000 From: "Gavin Hu (Arm Technology China)" To: Honnappa Nagarahalli , "jerinj@marvell.com" , "dev@dpdk.org" CC: "david.marchand@redhat.com" , "chaozhu@linux.vnet.ibm.com" , nd , "bruce.richardson@intel.com" , "thomas@monjalon.net" , "hemant.agrawal@nxp.com" , "stephen@networkplumber.org" , "Joyce Kong (Arm Technology China)" , nd Thread-Topic: [EXT] [PATCH v3 5/6] spinlock: reimplement with atomic one-way barrier builtins Thread-Index: AQHUnZqmauMG1KJkikm39gJVL/H8jqWSNDCAgBegNACABIu5AIAAApkQ Date: Mon, 14 Jan 2019 07:57:50 +0000 Message-ID: References: <20181227041349.3058-1-gavin.hu@arm.com> <20181227041349.3058-6-gavin.hu@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Gavin.Hu@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR08MB0656; 6:VZ8a9GzkPidQ8xJAcJFXn/uhV5GkNSuZoj5dPrDIKlP2V+UDkCdWXAAmr7uh+o5xruBrl91V9TP4rw+b56F8YZHJnzSjAJJ0uR4yaYhipIcIKIF1LGRA5HXJkkKd5pqnzCNjM5zWmstv1yyhIrNASb+emq+MD0SDPU73gv/l4MbMaLF3OcJ2h7KyS7RwLMJB0l3AEPFP7yO/8ajsAGc//u24KRSEEh8L4XK6h+hRWhFl0EjaV8wrRpOTYPk9TpCrMuhcSZfX2ljJeUbwej6/JsWWYkCEECM8pLEHcCUfw0SKYHAmKNT3Vrcz2amwGA/Cs09B7jnMBdMtBZbcMcHlBPmq8IkXdqeSsLGP4Ar/9liu2EQJIsQP7eNvCt5NcuVD169ePnSMB+i8hINXDCtmjIS73P2l47151r9hknmpKqvUBDkCZU1Mb+u41qpfJItAD7KrLL7erR4W8KWgpecw7w==; 5:nu+b9G4Uzs3rRO0mM8ZkItqXZo7OY+7/keBTqqakauS6wwCvy69FEJ5QKPXzBvC2E0LhG/BgfdL0KNvNnMhD2+bhhj50O1MXP/t9LttsCMtTeHCe57xLlRTzJxYDS1ECb0pJg4oFaKqD5biOGg+AfW2Jd4tqECvmYMZhDhStRKALS/2vYcAoVixK2BQjY+7DzNEmm5BQ+sLddSZxzVJ8eg==; 7:BDxJZZmCrzcLLlBz7eBo6TmT1r14v27fl/nmtAs8vEa89j3yl97N1irKz5M83Bz1+DcPREqLlS1aIxX7fbykGBAnYha90ztLZRaNDmUmW6QPsxcxHWt0Jb0sC2JhkqN1hMz+VmUiozLeUkyN4KhaTA== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: b731bfb6-da04-458e-f640-08d679f5fb13 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB0656; x-ms-traffictypediagnostic: VI1PR08MB0656: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 0917DFAC67 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(39850400004)(346002)(376002)(136003)(199004)(189003)(13464003)(33656002)(110136005)(54906003)(478600001)(72206003)(6246003)(966005)(53936002)(316002)(14454004)(99286004)(2201001)(9686003)(26005)(102836004)(81156014)(81166006)(8936002)(86362001)(6306002)(6116002)(55016002)(14444005)(5660300001)(71200400001)(256004)(2501003)(74316002)(71190400001)(3846002)(4001150100001)(66066001)(97736004)(68736007)(106356001)(25786009)(305945005)(7736002)(6436002)(229853002)(4326008)(93886005)(76176011)(53546011)(186003)(7696005)(8676002)(6506007)(55236004)(11346002)(446003)(105586002)(486006)(476003)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB0656; H:VI1PR08MB3167.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: wNzNSD1z3UX3tWSONTKNZxv+wu2oTB/DomLmPnjW7m0s3LGCHwJHJEYDSdOL7JobjNijUY9Q/5jrlHSlUAkq/q/fSkMAHEWzKN61DQkeIGT44W2wo/snHd43f7slpNiM/8LgSmNailY9HKhi8pne1W3YSrIqSyupTZNl+ncaOvyuncNpBW2dHuneMKoLgdLg5DfFiygCNaHaiQldh1AWYSOW8UhtRq91ZWWh9dMJ8fyINpxNHSLYuRzzunU/l3ZP333Wl1v1vFEniiZ8ZAEElEf8bIf5whhnBFiRafdy0Iac9Rno2i43wSzpG8rax08D4rb2OfRR3Th1T2xKiyAyu01941yNXyJ1jl4ZGEHC2bfhkCgriDhypoTxvZHgvuv8TN/4YIdIKUJ7ek1xB2BVGOfTCDrskNICZYRiw2PB++M= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: b731bfb6-da04-458e-f640-08d679f5fb13 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2019 07:57:50.4260 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB0656 Subject: Re: [dpdk-dev] [EXT] [PATCH v3 5/6] spinlock: reimplement with atomic one-way barrier builtins 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: , X-List-Received-Date: Mon, 14 Jan 2019 07:57:54 -0000 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEhvbm5hcHBhIE5hZ2FyYWhh bGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KPiBTZW50OiBNb25kYXksIEphbnVh cnkgMTQsIDIwMTkgMTo1NSBQTQ0KPiBUbzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5h KSA8R2F2aW4uSHVAYXJtLmNvbT47DQo+IGplcmluakBtYXJ2ZWxsLmNvbTsgZGV2QGRwZGsub3Jn DQo+IENjOiBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOyBjaGFvemh1QGxpbnV4LnZuZXQuaWJt LmNvbTsgbmQNCj4gPG5kQGFybS5jb20+OyBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsgdGhv bWFzQG1vbmphbG9uLm5ldDsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgc3RlcGhlbkBuZXR3 b3JrcGx1bWJlci5vcmc7IEpveWNlIEtvbmcgKEFybQ0KPiBUZWNobm9sb2d5IENoaW5hKSA8Sm95 Y2UuS29uZ0Bhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbRVhUXSBb UEFUQ0ggdjMgNS82XSBzcGlubG9jazogcmVpbXBsZW1lbnQgd2l0aCBhdG9taWMgb25lLQ0KPiB3 YXkgYmFycmllciBidWlsdGlucw0KPiANCj4gPiA+DQo+ID4gPiBPbiBUaHUsIDIwMTgtMTItMjcg YXQgMTI6MTMgKzA4MDAsIEdhdmluIEh1IHdyb3RlOg0KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4g PiAtLS0NCj4gPiA+ID4gVGhlIF9fc3luYyBidWlsdGluIGJhc2VkIGltcGxlbWVudGF0aW9uIGdl bmVyYXRlcyBmdWxsIG1lbW9yeQ0KPiA+ID4gPiBiYXJyaWVycyAoJ2RtYiBpc2gnKSBvbiBBcm0g cGxhdGZvcm1zLiBVc2luZyBDMTEgYXRvbWljIGJ1aWx0aW5zIHRvDQo+ID4gPiA+IGdlbmVyYXRl IG9uZSB3YXkgYmFycmllcnMuDQo+ID4gPiA+DQo+ID4gPiA+IEhlcmUgaXMgdGhlIGFzc2VtYmx5 IGNvZGUgb2YgX19zeW5jX2NvbXBhcmVfYW5kX3N3YXAgYnVpbHRpbi4NCj4gPiA+ID4gX19zeW5j X2Jvb2xfY29tcGFyZV9hbmRfc3dhcChkc3QsIGV4cCwgc3JjKTsNCj4gPiA+ID4gICAgMHgwMDAw MDAwMDAwOTBmMWIwIDwrMTY+OiAgICBlMCAwNyA0MCBmOSBsZHIgeDAsIFtzcCwgIzhdDQo+ID4g PiA+ICAgIDB4MDAwMDAwMDAwMDkwZjFiNCA8KzIwPjogICAgZTEgMGYgNDAgNzkgbGRyaCAgICB3 MSwgW3NwLCAjNl0NCj4gPiA+ID4gICAgMHgwMDAwMDAwMDAwOTBmMWI4IDwrMjQ+OiAgICBlMiAw YiA0MCA3OSBsZHJoICAgIHcyLCBbc3AsICM0XQ0KPiA+ID4gPiAgICAweDAwMDAwMDAwMDA5MGYx YmMgPCsyOD46ICAgIDIxIDNjIDAwIDEyIGFuZCB3MSwgdzEsICMweGZmZmYNCj4gPiA+ID4gICAg MHgwMDAwMDAwMDAwOTBmMWMwIDwrMzI+OiAgICAwMyA3YyA1ZiA0OCBsZHhyaCAgIHczLCBbeDBd DQo+ID4gPiA+ICAgIDB4MDAwMDAwMDAwMDkwZjFjNCA8KzM2PjogICAgN2YgMDAgMDEgNmIgY21w IHczLCB3MQ0KPiA+ID4gPiAgICAweDAwMDAwMDAwMDA5MGYxYzggPCs0MD46ICAgIDYxIDAwIDAw IDU0IGIubmUgICAgMHg5MGYxZDQNCj4gPiA+ID4gPHJ0ZV9hdG9taWMxNl9jbXBzZXQrNTI+ICAv LyBiLmFueQ0KPiA+ID4gPiAgICAweDAwMDAwMDAwMDA5MGYxY2MgPCs0ND46ICAgIDAyIGZjIDA0 IDQ4IHN0bHhyaCAgdzQsIHcyLCBbeDBdDQo+ID4gPiA+ICAgIDB4MDAwMDAwMDAwMDkwZjFkMCA8 KzQ4PjogICAgODQgZmYgZmYgMzUgY2JueiAgICB3NCwgMHg5MGYxYzANCj4gPiA+ID4gPHJ0ZV9h dG9taWMxNl9jbXBzZXQrMzI+DQo+ID4gPiA+ICAgIDB4MDAwMDAwMDAwMDkwZjFkNCA8KzUyPjog ICAgYmYgM2IgMDMgZDUgZG1iIGlzaA0KPiA+ID4gPiAgICAweDAwMDAwMDAwMDA5MGYxZDggPCs1 Nj46ICAgIGUwIDE3IDlmIDFhIGNzZXQgICAgdzAsIGVxICAvLyBlcSA9DQo+ID4gPiA+IG5vbmUN Cj4gPiA+ID4NCj4gPiA+ID4gVGhlIGJlbmNobWFya2luZyByZXN1bHRzIHNob3dlZCAzWCBwZXJm b3JtYW5jZSBnYWluIG9uIENhdml1bQ0KPiA+ID4gPiBUaHVuZGVyWDIgYW5kDQo+ID4gPiA+IDEz JSBvbiBRdWFsY29tbSBGYWxtb24gYW5kIDMuNyUgb24gNC1BNzIgTWFydmVsbCBtYWNjaGlhdG9i aW4uDQo+ID4gPiA+IEhlcmUgaXMgdGhlIGV4YW1wbGUgdGVzdCByZXN1bHQgb24gVFgyOg0KPiA+ ID4gPg0KPiA+ID4gPiAqKiogc3BpbmxvY2tfYXV0b3Rlc3Qgd2l0aG91dCB0aGlzIHBhdGNoICoq KiBDb3JlIFsxMjNdIENvc3QgVGltZSA9DQo+ID4gPiA+IDYzOTgyMiB1cyBDb3JlIFsxMjRdIENv c3QgVGltZSA9IDYzMzI1MyB1cyBDb3JlIFsxMjVdIENvc3QgVGltZSA9DQo+ID4gPiA+IDY0NjAz MCB1cyBDb3JlIFsxMjZdIENvc3QgVGltZSA9IDY0MzE4OSB1cyBDb3JlIFsxMjddIENvc3QgVGlt ZSA9DQo+ID4gPiA+IDY0NzAzOSB1cyBUb3RhbCBDb3N0IFRpbWUgPSA5NTQzMzI5OCB1cw0KPiA+ ID4gPg0KPiA+ID4gPiAqKiogc3BpbmxvY2tfYXV0b3Rlc3Qgd2l0aCB0aGlzIHBhdGNoICoqKiBD b3JlIFsxMjNdIENvc3QgVGltZSA9DQo+ID4gPiA+IDE2MzYxNSB1cyBDb3JlIFsxMjRdIENvc3Qg VGltZSA9IDE2NjQ3MSB1cyBDb3JlIFsxMjVdIENvc3QgVGltZSA9DQo+ID4gPiA+IDE4OTA0NCB1 cyBDb3JlIFsxMjZdIENvc3QgVGltZSA9IDE5NTc0NSB1cyBDb3JlIFsxMjddIENvc3QgVGltZSA9 DQo+ID4gPiA+IDc4NDIzIHVzIFRvdGFsIENvc3QgVGltZSA9IDI3MzM5NjU2IHVzDQo+ID4gPiA+ DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBhcm0uY29tPg0KPiA+ ID4gPiBSZXZpZXdlZC1ieTogUGhpbCBZYW5nIDxwaGlsLnlhbmdAYXJtLmNvbT4NCj4gPiA+ID4g UmV2aWV3ZWQtYnk6IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBh cm0uY29tPg0KPiA+ID4gPiBSZXZpZXdlZC1ieTogT2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFo bEBhcm0uY29tPg0KPiA+ID4gPiBSZXZpZXdlZC1ieTogU3RldmUgQ2FwcGVyIDxTdGV2ZS5DYXBw ZXJAYXJtLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBsaWIvbGlicnRlX2VhbC9jb21tb24v aW5jbHVkZS9nZW5lcmljL3J0ZV9zcGlubG9jay5oIHwgMTgNCj4gPiA+ID4gKysrKysrKysrKysr Ky0tLS0tDQo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2Nv bW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX3NwaW5sb2NrLmgNCj4gPiA+ID4gYi9saWIvbGlicnRl X2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9zcGlubG9jay5oDQo+ID4gPiA+IGluZGV4 IGM0YzNmYzMxZS4uODdhZTdhNGYxIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvbGlicnRlX2Vh bC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9zcGlubG9jay5oDQo+ID4gPiA+ICsrKyBiL2xp Yi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX3NwaW5sb2NrLmgNCj4gPiA+ ID4gQEAgLTYxLDkgKzYxLDE0IEBAIHJ0ZV9zcGlubG9ja19sb2NrKHJ0ZV9zcGlubG9ja190ICpz bCk7ICBzdGF0aWMNCj4gPiA+ID4gaW5saW5lIHZvaWQgIHJ0ZV9zcGlubG9ja19sb2NrKHJ0ZV9z cGlubG9ja190ICpzbCkgIHsNCj4gPiA+ID4gLQl3aGlsZSAoX19zeW5jX2xvY2tfdGVzdF9hbmRf c2V0KCZzbC0+bG9ja2VkLCAxKSkNCj4gPiA+ID4gLQkJd2hpbGUoc2wtPmxvY2tlZCkNCj4gPiA+ ID4gKwlpbnQgZXhwID0gMDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCXdoaWxlICghX19hdG9taWNf Y29tcGFyZV9leGNoYW5nZV9uKCZzbC0+bG9ja2VkLCAmZXhwLCAxLCAwLA0KPiA+ID4gPiArCQkJ CV9fQVRPTUlDX0FDUVVJUkUsIF9fQVRPTUlDX1JFTEFYRUQpKQ0KPiA+ID4gew0KPiA+ID4NCj4g PiA+IEhvdyBhYm91dCByZW1vdmUgZXhwbGljdCBleHAgPSAwIGFuZCBjaGFuZ2UgdG8NCj4gPiA+ IF9fYXRvbWljX3Rlc3RfYW5kX3NldChmbGFnLCBfX0FUT01JQ19BQ1FVSVJFKTsNCj4gPg0KPiA+ IFllcywgX19hdG9taWNfdGVzdF9hbmRfc2V0IG1lYW5zIHNpbXBsZXIgY29kZSBhbmQgYmV0dGVy LCBidXQNCj4gPiBfX2F0b21pY190ZXN0X2FuZF9zZXQgdGFrZXMgdGhlIGZpcnN0IGFyZ3VtZW50 IGFzIGEgcG9pbnRlciB0byB0eXBlIGJvb2wNCj4gb3INCj4gPiBjaGFyLCBpbiBvdXIgY2FzZSwg c2wtPmxvY2tlZCBpcyBvZiB0eXBlIHVpbnQzMi4NCj4gPiBXZSBjYW4gZm9yY2UgaXQgdG8gdWlu dDgsIG9yIGp1c3QgcGFzcyBpbiB0aGUgMzJiaXQgcG9pbnRlciwgb25seSBvbmUgYnl0ZS9iaXQN Cj4gaXMNCj4gPiByZWFsbHkgdXNlZCBpbiB0aGlzIGNhc2UsIGlzIHRoYXQgb2s/DQo+ID4NCj4g PiAiSXQgc2hvdWxkIGJlIG9ubHkgdXNlZCBmb3Igb3BlcmFuZHMgb2YgdHlwZSBib29sIG9yIGNo YXIuIEZvciBvdGhlciB0eXBlcw0KPiBvbmx5DQo+ID4gcGFydCBvZiB0aGUgdmFsdWUgbWF5IGJl IHNldC4iDQo+ID4gaHR0cHM6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2djYy02LjEuMC9nY2Mv XzAwNWZfMDA1ZmF0b21pYy0NCj4gPiBCdWlsdGlucy5odG1sDQo+ID4NCj4gPiBGcm9tIHBlcmZv cm1hbmNlIHBlcnNwZWN0aXZlLCBpbiBvdXIgdGVzdGluZywgdGhlIHBlcmZvcm1hbmNlIHdhcyB2 ZXJ5DQo+IGNsb3NlLA0KPiA+IGNvbXBhcmVkIHRvIF9fYXRvbWljLg0KPiBJZiBwZXJmb3JtYW5j ZSBpcyBjbG9zZSwgSSBzdWdnZXN0IHdlIGdvIHdpdGggdGhlIGV4aXN0aW5nIHBhdGNoLiBDaGFu Z2luZyBzbC0NCj4gPmxvY2tlZCB0byBib29sL2NoYXIgd291bGQgYmUgYW4gQUJJIGNoYW5nZSBh bmQgd2lsbCBhZmZlY3QgeDg2IFRNIGJhc2VkDQo+IGltcGxlbWVudGF0aW9uIGFzIHdlbGwuDQo+ IEplcmluLCB3aGF0IGRvIHlvdSB0aGluaz8NCg0KSSBoYXZlIGJlbmNobWFya2VkIG9uIFF1YWxj b21tLCBUaHVuZGVyWDIgYW5kIENvbnRleHQgQTcyLiANCkluIGNvbXBhcmlzb24gdG8gdGhlIGV4 aXN0aW5nIHBhdGNoLCBvbiB0aGUgbmV3IHBhdGNoIHVzaW5nIF9fYXRvbWljX3Rlc3RfYW5kX3Nl dCwgUXVhbGNvbW0gRmFsa29yIGdhaW5lZCA2MCUgcGVyZm9ybWFuY2UsIDQtY29yZSBBNzIgZGVn cmFkZWQgMTMlLCBUaHVuZGVyWDIgZXZlbiB3b3JzZSwgZGVncmFkZWQgMTAgdGltZXMuIA0KSSBh bSBub3Qgc3VyZSB3aHkgVGh1bmRlclgyIGRlZ3JhZGVkIHNvIG11Y2gsIG1heWJlIGl0IHdhcyBj YXVzZWQgYnkgdHdvIG1hbnkgY29yZXMgKDEyOCBjb3Jlcykgd2l0aCBoaWdoIGNvbnRlbnRpb24/ IA0KDQo+IA0KPiA+DQo+ID4gPg0KPiA+ID4gaS5lDQo+ID4gPiB3aGlsZSAoX2F0b21pY190ZXN0 X2FuZF9zZXQoZmxhZywgX19BVE9NSUNfQUNRVUlSRSkpDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ ID4gPiA+ICsJCXdoaWxlIChfX2F0b21pY19sb2FkX24oJnNsLT5sb2NrZWQsIF9fQVRPTUlDX1JF TEFYRUQpKQ0KPiA+ID4gPiAgCQkJcnRlX3BhdXNlKCk7DQo+ID4gPiA+ICsJCWV4cCA9IDA7DQo+ ID4gPg0KPiA+ID4gV2UgY2FuIHJlbW92ZSBleHAgPSAwIHdpdGggYWJvdmUgc2NoZW1lLg0KPiA+ ID4NCj4gPiA+ID4gKwl9DQo+ID4gPiA+ICB9DQo+ID4gPiA+ICAjZW5kaWYNCj4gPiA+ID4NCj4g PiA+ID4gQEAgLTgwLDcgKzg1LDcgQEAgcnRlX3NwaW5sb2NrX3VubG9jayAocnRlX3NwaW5sb2Nr X3QgKnNsKTsgIHN0YXRpYw0KPiA+ID4gPiBpbmxpbmUgdm9pZCAgcnRlX3NwaW5sb2NrX3VubG9j ayAocnRlX3NwaW5sb2NrX3QgKnNsKSAgew0KPiA+ID4gPiAtCV9fc3luY19sb2NrX3JlbGVhc2Uo JnNsLT5sb2NrZWQpOw0KPiA+ID4gPiArCV9fYXRvbWljX3N0b3JlX24oJnNsLT5sb2NrZWQsIDAs IF9fQVRPTUlDX1JFTEVBU0UpOw0KPiA+ID4gIH0NCj4gPiA+ID4gICNlbmRpZg0KPiA+ID4gPg0K PiA+ID4gPiBAQCAtOTksNyArMTA0LDEwIEBAIHJ0ZV9zcGlubG9ja190cnlsb2NrIChydGVfc3Bp bmxvY2tfdCAqc2wpOw0KPiA+ID4gPiBzdGF0aWMgaW5saW5lIGludCAgcnRlX3NwaW5sb2NrX3Ry eWxvY2sgKHJ0ZV9zcGlubG9ja190ICpzbCkgIHsNCj4gPiA+ID4gLQlyZXR1cm4gX19zeW5jX2xv Y2tfdGVzdF9hbmRfc2V0KCZzbC0+bG9ja2VkLDEpID09IDA7DQo+ID4gPiA+ICsJaW50IGV4cCA9 IDA7DQo+ID4gPiA+ICsJcmV0dXJuIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfbigmc2wtPmxv Y2tlZCwgJmV4cCwgMSwNCj4gPiA+ID4gKwkJCQkwLCAvKiBkaXNhbGxvdyBzcHVyaW91cyBmYWls dXJlICovDQo+ID4gPiA+ICsJCQkJX19BVE9NSUNfQUNRVUlSRSwgX19BVE9NSUNfUkVMQVhFRCk7 DQo+ID4gPg0KPiA+ID4gSGVyZSB0byByZW1vdmUgZXhwbGljaXQgZXhwLg0KPiA+ID4NCj4gPiA+ IHJldHVybiAoX19hdG9taWNfdGVzdF9hbmRfc2V0KGZsYWcsIF9fQVRPTUlDX0FDUVVJUkUpID09 IDApDQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gIH0NCj4gPiA+ID4gICNlbmRpZg0KPiA+ID4gPg0K PiA+ID4gPiBAQCAtMTEzLDcgKzEyMSw3IEBAIHJ0ZV9zcGlubG9ja190cnlsb2NrIChydGVfc3Bp bmxvY2tfdCAqc2wpDQo+ID4gPiA+ICAgKi8NCj4gPiA+ID4gIHN0YXRpYyBpbmxpbmUgaW50IHJ0 ZV9zcGlubG9ja19pc19sb2NrZWQgKHJ0ZV9zcGlubG9ja190ICpzbCkgIHsNCj4gPiA+ID4gLQly ZXR1cm4gc2wtPmxvY2tlZDsNCj4gPiA+ID4gKwlyZXR1cm4gX19hdG9taWNfbG9hZF9uKCZzbC0+ bG9ja2VkLCBfX0FUT01JQ19BQ1FVSVJFKTsNCj4gPiA+DQo+ID4gPiBfX0FUT01JQ19SRUxBWEVE IHdvdWxkIGJlIGVub3VnaCBoZXJlLiBSaWdodCA/DQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gIH0N Cj4gPiA+ID4NCj4gPiA+ID4gIC8qKg0K