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 631B146A9C; Mon, 30 Jun 2025 15:45:49 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DC508402A5; Mon, 30 Jun 2025 15:45:48 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 032DD40291 for ; Mon, 30 Jun 2025 15:45:46 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id E1431207A9; Mon, 30 Jun 2025 15:45:45 +0200 (CEST) Content-class: urn:content-classes:message Subject: RE: [PATCH] net/i40e: Fast release optimizations MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Date: Mon, 30 Jun 2025 15:45:43 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9FD5F@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] net/i40e: Fast release optimizations Thread-Index: AQHb5M8cy6WBmzI3MUC2TH1cjpMU4LQbm/iwgAAfruA= References: <20250624061238.89259-1-mb@smartsharesystems.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , "Bruce Richardson" , 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 PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVh d2VpLmNvbV0NCj4gU2VudDogTW9uZGF5LCAzMCBKdW5lIDIwMjUgMTMuNDENCj4gDQo+ID4gV2hl biBmYXN0IHJlbGVhc2luZyBtYnVmcywgdGhlIG1idWZzIGFyZSBub3QgYWNjZXNzZWQsIHNvIGRv IG5vdCBwcmVmZXRjaA0KPiA+IHRoZW0uDQo+ID4gVGhpcyBzYXZlcyBhIG1idWYgbG9hZCBvcGVy YXRpb24gZm9yIGVhY2ggZmFzdCByZWxlYXNlZCBUWCBtYnVmLg0KPiA+DQo+ID4gV2hlbiBmYXN0 IHJlbGVhc2Ugb2YgbWJ1ZnMgaXMgZW5hYmxlZCBmb3IgYSBUWCBxdWV1ZSwgY2FjaGUgdGhlIG1i dWYNCj4gPiBtZW1wb29sIHBvaW50ZXIgaW4gdGhlIFRYIHF1ZXVlIHN0cnVjdHVyZS4NCj4gPiBU aGlzIHNhdmVzIG9uZSBtYnVmIGxvYWQgb3BlcmF0aW9uIGZvciBlYWNoIGJ1cnN0IG9mIGZhc3Qg cmVsZWFzZWQgVFgNCj4gPiBtYnVmcy4NCj4gPg0KPiA+IFRoZSB0eGVwLT5tYnVmIHBvaW50ZXIg aXMgbm90IHVzZWQgYWZ0ZXIgdGhlIG1idWYgaGFzIGJlZW4gZnJlZWQsIHNvIGRvDQo+ID4gbm90 IHJlc2V0IHRoZSBwb2ludGVyLg0KPiA+IFRoaXMgc2F2ZXMgYSB0eGVwIHN0b3JlIG9wZXJhdGlv biBmb3IgZWFjaCBUWCBtYnVmIGZyZWVkLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogTW9ydGVu IEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVy cy9uZXQvaW50ZWwvY29tbW9uL3R4LmggICAgICAgICAgICAgICAgIHwgIDUgKysrDQo+ID4gIC4u Li9pNDBlL2k0MGVfcmVjeWNsZV9tYnVmc192ZWNfY29tbW9uLmMgICAgICB8ICA0ICstDQo+ID4g IGRyaXZlcnMvbmV0L2ludGVsL2k0MGUvaTQwZV9yeHR4LmMgICAgICAgICAgICB8IDM5ICsrKysr KysrKystLS0tLS0tLS0NCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAy MCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pbnRlbC9j b21tb24vdHguaCBiL2RyaXZlcnMvbmV0L2ludGVsL2NvbW1vbi90eC5oDQo+ID4gaW5kZXggYjBh NjhiYWU0NC4uNTRjOWI4NDVmNyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9pbnRlbC9j b21tb24vdHguaA0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2ludGVsL2NvbW1vbi90eC5oDQo+ID4g QEAgLTYyLDYgKzYyLDExIEBAIHN0cnVjdCBjaV90eF9xdWV1ZSB7DQo+ID4gIAl1aW50MTZfdCB0 eF9uZXh0X2RkOw0KPiA+ICAJdWludDE2X3QgdHhfbmV4dF9yczsNCj4gPiAgCXVpbnQ2NF90IG9m ZmxvYWRzOw0KPiA+ICsJLyogTWVtcG9vbCBwb2ludGVyIGZvciBmYXN0IHJlbGVhc2Ugb2YgbWJ1 ZnMuDQo+ID4gKwkgKiBOVUxMIGlmIGRpc2FibGVkLCBVSU5UUFRSX01BWCBpZiBlbmFibGVkIGFu ZCBub3QgeWV0IGtub3duLg0KPiA+ICsJICogSW5pdGlhbGl6ZWQgYXQgZmlyc3QgdXNlLg0KPiA+ ICsJICovDQo+ID4gKwlzdHJ1Y3QgcnRlX21lbXBvb2wgKmZhc3RfZnJlZV9tcDsNCj4gPiAgCXVp bnQ2NF90IG1idWZfZXJyb3JzOw0KPiA+ICAJcnRlX2lvdmFfdCB0eF9yaW5nX2RtYTsgICAgICAg IC8qIFRYIHJpbmcgRE1BIGFkZHJlc3MgKi8NCj4gPiAgCWJvb2wgdHhfZGVmZXJyZWRfc3RhcnQ7 IC8qIGRvbid0IHN0YXJ0IHRoaXMgcXVldWUgaW4gZGV2IHN0YXJ0ICovDQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2ludGVsL2k0MGUvaTQwZV9yZWN5Y2xlX21idWZzX3ZlY19jb21tb24u Yw0KPiBiL2RyaXZlcnMvbmV0L2ludGVsL2k0MGUvaTQwZV9yZWN5Y2xlX21idWZzX3ZlY19jb21t b24uYw0KPiA+IGluZGV4IDI4NzVjNTc4YWYuLmE0NjYwNWNlZTkgMTAwNjQ0DQo+ID4gLS0tIGEv ZHJpdmVycy9uZXQvaW50ZWwvaTQwZS9pNDBlX3JlY3ljbGVfbWJ1ZnNfdmVjX2NvbW1vbi5jDQo+ ID4gKysrIGIvZHJpdmVycy9uZXQvaW50ZWwvaTQwZS9pNDBlX3JlY3ljbGVfbWJ1ZnNfdmVjX2Nv bW1vbi5jDQo+ID4gQEAgLTEwNiw3ICsxMDYsOSBAQCBpNDBlX3JlY3ljbGVfdHhfbWJ1ZnNfcmV1 c2VfdmVjKHZvaWQgKnR4X3F1ZXVlLA0KPiA+ICAJaWYgKHR4cS0+b2ZmbG9hZHMgJiBSVEVfRVRI X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpIHsNCj4gPiAgCQkvKiBBdm9pZCB0eHEgY29udGFp bnMgYnVmZmVycyBmcm9tIHVuZXhwZWN0ZWQgbWVtcG9vbC4gKi8NCj4gPiAgCQlpZiAodW5saWtl bHkocmVjeWNsZV9yeHFfaW5mby0+bXANCj4gPiAtCQkJCQkhPSB0eGVwWzBdLm1idWYtPnBvb2wp KQ0KPiA+ICsJCQkJIT0gKGxpa2VseSh0eHEtPmZhc3RfZnJlZV9tcCAhPSAodm9pZCAqKVVJTlRQ VFJfTUFYKQ0KPiA/DQo+ID4gKwkJCQl0eHEtPmZhc3RfZnJlZV9tcCA6DQo+ID4gKwkJCQkodHhx LT5mYXN0X2ZyZWVfbXAgPSB0eGVwWzBdLm1idWYtPnBvb2wpKSkpDQo+ID4gIAkJCXJldHVybiAw Ow0KPiA+DQo+ID4gIAkJLyogRGlyZWN0bHkgcHV0IG1idWZzIGZyb20gVHggdG8gUnguICovDQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ludGVsL2k0MGUvaTQwZV9yeHR4LmMNCj4gYi9k cml2ZXJzL25ldC9pbnRlbC9pNDBlL2k0MGVfcnh0eC5jDQo+ID4gaW5kZXggYzNmZjJlMDVjMy4u Njc5YzEzNDBiOCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9pbnRlbC9pNDBlL2k0MGVf cnh0eC5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvaW50ZWwvaTQwZS9pNDBlX3J4dHguYw0KPiA+ IEBAIC0xMzMyLDcgKzEzMzIsNyBAQCBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSBpbnQNCj4g PiAgaTQwZV90eF9mcmVlX2J1ZnMoc3RydWN0IGNpX3R4X3F1ZXVlICp0eHEpDQo+ID4gIHsNCj4g PiAgCXN0cnVjdCBjaV90eF9lbnRyeSAqdHhlcDsNCj4gPiAtCXVpbnQxNl90IHR4X3JzX3RocmVz aCA9IHR4cS0+dHhfcnNfdGhyZXNoOw0KPiA+ICsJY29uc3QgdWludDE2X3QgdHhfcnNfdGhyZXNo ID0gdHhxLT50eF9yc190aHJlc2g7DQo+ID4gIAl1aW50MTZfdCBpID0gMCwgaiA9IDA7DQo+ID4g IAlzdHJ1Y3QgcnRlX21idWYgKmZyZWVbUlRFX0k0MEVfVFhfTUFYX0ZSRUVfQlVGX1NaXTsNCj4g PiAgCWNvbnN0IHVpbnQxNl90IGsgPSBSVEVfQUxJR05fRkxPT1IodHhfcnNfdGhyZXNoLA0KPiBS VEVfSTQwRV9UWF9NQVhfRlJFRV9CVUZfU1opOw0KPiA+IEBAIC0xMzQ1LDQxICsxMzQ1LDQwIEBA IGk0MGVfdHhfZnJlZV9idWZzKHN0cnVjdCBjaV90eF9xdWV1ZSAqdHhxKQ0KPiA+DQo+ID4gIAl0 eGVwID0gJnR4cS0+c3dfcmluZ1t0eHEtPnR4X25leHRfZGQgLSAodHhfcnNfdGhyZXNoIC0gMSld Ow0KPiA+DQo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgdHhfcnNfdGhyZXNoOyBpKyspDQo+ID4gLQkJ cnRlX3ByZWZldGNoMCgodHhlcCArIGkpLT5tYnVmKTsNCj4gPiAtDQo+ID4gIAlpZiAodHhxLT5v ZmZsb2FkcyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkgew0KPiA+ICsJCXN0 cnVjdCBydGVfbWVtcG9vbCAqIGNvbnN0IGZhc3RfZnJlZV9tcCA9DQo+ID4gKwkJCQlsaWtlbHko dHhxLT5mYXN0X2ZyZWVfbXAgIT0gKHZvaWQgKilVSU5UUFRSX01BWCkgPw0KPiA+ICsJCQkJdHhx LT5mYXN0X2ZyZWVfbXAgOg0KPiA+ICsJCQkJKHR4cS0+ZmFzdF9mcmVlX21wID0gdHhlcFswXS5t YnVmLT5wb29sKTsNCj4gPiArDQo+IA0KPiBOaXQgaWRlYS4NCj4gQWNrZWQtYnk6IEtvbnN0YW50 aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+DQo+IA0KPiBKdXN0IGFz IGEgc3VnZ2VzdGlvbiBmb3IgZnVydGhlciBpbXByb3ZlbWVudDoNCj4gY2FuIHdlIHVwZGF0ZSAo JiBjaGVjaykgdHhxLT5mYXN0X2ZyZWVfbXAgbm90IGF0IHR4X2ZyZWVfYnVmcygpIHRpbWUsDQo+ IGJ1dCB3aGVuIHdlIGZpbGwgdHhlcFtdIGFuZCBmaWxsaW5nIHR4ZFtdIGJhc2VkIG9uIG1idWYg dmFsdWVzPw0KPiBJbiB0aGVvcnkgaXQgc2hvdWxkIGFsbG93IHRvIHJlbW92ZSB0aGUgY2hlY2sg YWJvdmUuDQo+IEFsc28sIGFnYWluIGluIHRoZW9yeSwgaXQgb3BlbnMgb3Bwb3J0dW5pdHkgKHdp dGggc29tZSBleHRyYSBlZmZvcnQpIHRvIHVzZQ0KPiBzaW1pbGFyIG9wdGltaXphdGlvbiBydGVf bWVtcG9vbF9wdXRfYnVsaykNCj4gZXZlbiBmb3IgY2FzZXMgd2hlbiAgUlRFX0VUSF9UWF9PRkZM T0FEX01CVUZfRkFTVF9GUkVFIGlzIG5vdCBzZXQuDQoNCkNoZWNraW5nIHRoZSBUWCBtYnVmcyB0 byBkZXRlcm1pbmUgaWYgcnRlX21lbXBvb2xfcHV0X2J1bGsoKSBjYW4gYmUgdXNlZCBldmVuIHdo ZW4gdGhlIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSBvZmZsb2FkIGZsYWcgaXMg bm90IHNldC4uLg0KDQpUaGF0IHdvdWxkIHJlcXVpcmUgdGhhdCB0aGUgdHhfYnVyc3QoKSBmdW5j dGlvbiBjaGVja3MgYWxsIHRoZSBUWCBtYnVmcyBmb3IgdGhlIFJURV9FVEhfVFhfT0ZGTE9BRF9N QlVGX0ZBU1RfRlJFRSByZXF1aXJlbWVudHMgdG8gc2V0IHRoZSB0eHEtPmZhc3RfZnJlZV9tcCBw b2ludGVyLg0KQW5kIGlmIHRoZSByZXF1aXJlbWVudHMgYXJlIG5vdCBtZXQsIGl0IG11c3QgbmV2 ZXIgc2V0IHRoZSB0eHEtPmZhc3RfZnJlZV9tcCBwb2ludGVyIGFnYWluLiBPdGhlcndpc2UsIHNv bWUgcHJldmlvdXNseSB0cmFuc21pdHRlZCBtYnVmcywgd2FpdGluZyB0byBiZSBmcmVlZCwgbWln aHQgbm90IG1lZXQgdGhlIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSByZXF1aXJl bWVudHMuDQoNClJlbHlpbmcgb24gdGhlIGV4cGxpY2l0IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRSBvZmZsb2FkIGZsYWcgKGhlcmUgb3IgZWxzZXdoZXJlKSBvbmx5IHJlcXVpcmVz IG9uZSBjaGVjayAob2YgdGhlIG9mZmxvYWQgZmxhZyBhbmQvb3IgdGhlIG1lbXBvb2wgcG9pbnRl ciAod2hpY2hldmVyIGlzIGhvdHRlciBpbiBjYWNoZSkpIHBlciBidXJzdCBvZiBwYWNrZXRzLg0K DQpQUzogVGhlIGRyaXZlcnMgcmVhbGx5IHNob3VsZCBiZSB1c2luZyB0aGUgbmV3IHJ0ZV9tYnVm X3Jhd19mcmVlX2J1bGsoKSBpbnN0ZWFkIG9mIHJ0ZV9tZW1wb29sX3B1dF9idWxrKCksIHNvIHRo ZSBmcmVlZCBtYnVmcyBhcmUgc2FuaXR5IGNoZWNrZWQgaW4gUlRFX0xJQlJURV9NQlVGX0RFQlVH IG1vZGUuIEJ1dCBzdWNoIGNoYW5nZXMgYmVsb25nIGluIGFub3RoZXIgcGF0Y2ggc2VyaWVzLg0K DQo+IA0KPiANCj4gPiAgCQlpZiAoaykgew0KPiA+ICAJCQlmb3IgKGogPSAwOyBqICE9IGs7IGog Kz0gUlRFX0k0MEVfVFhfTUFYX0ZSRUVfQlVGX1NaKSB7DQo+ID4gLQkJCQlmb3IgKGkgPSAwOyBp IDwgUlRFX0k0MEVfVFhfTUFYX0ZSRUVfQlVGX1NaOyArK2ksDQo+ICsrdHhlcCkgew0KPiA+ICsJ CQkJZm9yIChpID0gMDsgaSA8IFJURV9JNDBFX1RYX01BWF9GUkVFX0JVRl9TWjsgKytpLA0KPiAr K3R4ZXApDQo+ID4gIAkJCQkJZnJlZVtpXSA9IHR4ZXAtPm1idWY7DQo+ID4gLQkJCQkJdHhlcC0+ bWJ1ZiA9IE5VTEw7DQo+ID4gLQkJCQl9DQo+ID4gLQkJCQlydGVfbWVtcG9vbF9wdXRfYnVsayhm cmVlWzBdLT5wb29sLCAodm9pZCAqKilmcmVlLA0KPiA+ICsJCQkJcnRlX21lbXBvb2xfcHV0X2J1 bGsoZmFzdF9mcmVlX21wLCAodm9pZCAqKilmcmVlLA0KPiA+ICAJCQkJCQlSVEVfSTQwRV9UWF9N QVhfRlJFRV9CVUZfU1opOw0KPiA+ICAJCQl9DQo+ID4gIAkJfQ0KPiA+DQo+ID4gIAkJaWYgKG0p IHsNCj4gPiAtCQkJZm9yIChpID0gMDsgaSA8IG07ICsraSwgKyt0eGVwKSB7DQo+ID4gKwkJCWZv ciAoaSA9IDA7IGkgPCBtOyArK2ksICsrdHhlcCkNCj4gPiAgCQkJCWZyZWVbaV0gPSB0eGVwLT5t YnVmOw0KPiA+IC0JCQkJdHhlcC0+bWJ1ZiA9IE5VTEw7DQo+ID4gLQkJCX0NCj4gPiAtCQkJcnRl X21lbXBvb2xfcHV0X2J1bGsoZnJlZVswXS0+cG9vbCwgKHZvaWQgKiopZnJlZSwgbSk7DQo+ID4g KwkJCXJ0ZV9tZW1wb29sX3B1dF9idWxrKGZhc3RfZnJlZV9tcCwgKHZvaWQgKiopZnJlZSwgbSk7 DQo+ID4gIAkJfQ0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQlmb3IgKGkgPSAwOyBpIDwgdHhxLT50 eF9yc190aHJlc2g7ICsraSwgKyt0eGVwKSB7DQo+ID4gKwkJZm9yIChpID0gMDsgaSA8IHR4X3Jz X3RocmVzaDsgaSsrKQ0KPiA+ICsJCQlydGVfcHJlZmV0Y2gwKCh0eGVwICsgaSktPm1idWYpOw0K PiA+ICsNCj4gPiArCQlmb3IgKGkgPSAwOyBpIDwgdHhfcnNfdGhyZXNoOyArK2ksICsrdHhlcCkN Cj4gPiAgCQkJcnRlX3BrdG1idWZfZnJlZV9zZWcodHhlcC0+bWJ1Zik7DQo+ID4gLQkJCXR4ZXAt Pm1idWYgPSBOVUxMOw0KPiA+IC0JCX0NCj4gPiAgCX0NCj4gPg0KPiA+IC0JdHhxLT5uYl90eF9m cmVlID0gKHVpbnQxNl90KSh0eHEtPm5iX3R4X2ZyZWUgKyB0eHEtPnR4X3JzX3RocmVzaCk7DQo+ ID4gLQl0eHEtPnR4X25leHRfZGQgPSAodWludDE2X3QpKHR4cS0+dHhfbmV4dF9kZCArIHR4cS0+ dHhfcnNfdGhyZXNoKTsNCj4gPiArCXR4cS0+bmJfdHhfZnJlZSA9ICh1aW50MTZfdCkodHhxLT5u Yl90eF9mcmVlICsgdHhfcnNfdGhyZXNoKTsNCj4gPiArCXR4cS0+dHhfbmV4dF9kZCA9ICh1aW50 MTZfdCkodHhxLT50eF9uZXh0X2RkICsgdHhfcnNfdGhyZXNoKTsNCj4gPiAgCWlmICh0eHEtPnR4 X25leHRfZGQgPj0gdHhxLT5uYl90eF9kZXNjKQ0KPiA+IC0JCXR4cS0+dHhfbmV4dF9kZCA9ICh1 aW50MTZfdCkodHhxLT50eF9yc190aHJlc2ggLSAxKTsNCj4gPiArCQl0eHEtPnR4X25leHRfZGQg PSAodWludDE2X3QpKHR4X3JzX3RocmVzaCAtIDEpOw0KPiA+DQo+ID4gLQlyZXR1cm4gdHhxLT50 eF9yc190aHJlc2g7DQo+ID4gKwlyZXR1cm4gdHhfcnNfdGhyZXNoOw0KPiA+ICB9DQo+ID4NCj4g PiAgLyogUG9wdWxhdGUgNCBkZXNjcmlwdG9ycyB3aXRoIGRhdGEgZnJvbSA0IG1idWZzICovDQo+ ID4gQEAgLTI1NDYsNiArMjU0NSw4IEBAIGk0MGVfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LA0KPiA+ICAJdHhxLT5yZWdfaWR4ID0gcmVnX2lkeDsNCj4gPiAgCXR4 cS0+cG9ydF9pZCA9IGRldi0+ZGF0YS0+cG9ydF9pZDsNCj4gPiAgCXR4cS0+b2ZmbG9hZHMgPSBv ZmZsb2FkczsNCj4gPiArCXR4cS0+ZmFzdF9mcmVlX21wID0gb2ZmbG9hZHMgJiBSVEVfRVRIX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgPw0KPiA+ICsJCQkodm9pZCAqKVVJTlRQVFJfTUFYIDog TlVMTDsNCj4gPiAgCXR4cS0+aTQwZV92c2kgPSB2c2k7DQo+ID4gIAl0eHEtPnR4X2RlZmVycmVk X3N0YXJ0ID0gdHhfY29uZi0+dHhfZGVmZXJyZWRfc3RhcnQ7DQo+ID4NCj4gPiAtLQ0KPiA+IDIu NDMuMA0KDQo=