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 2D66346C35; Mon, 28 Jul 2025 18:42:24 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AF45E40609; Mon, 28 Jul 2025 18:42:23 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 7225D40291 for ; Mon, 28 Jul 2025 18:42:22 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 225242221E; Mon, 28 Jul 2025 18:42:22 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v2] net/null: Add fast mbuf release TX offload X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Mon, 28 Jul 2025 18:42:21 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9FDCE@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2] net/null: Add fast mbuf release TX offload Thread-Index: AQHb/eif3a2SEdmGtEK0OYC/+iko5bRDy+uAgAOdX4CAAD7O4IAAD5hg References: <20250624181416.167181-1-mb@smartsharesystems.com> <20250726044827.569456-1-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35E9FDCC@smartserver.smartshare.dk> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , "Ivan Malov" Cc: , "Tetsuya Mukawa" , "Stephen Hemminger" , "Vipin Varghese" , "Thiyagarjan P" 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 d2VpLmNvbV0NCj4gU2VudDogTW9uZGF5LCAyOCBKdWx5IDIwMjUgMTcuNDINCj4gDQo+ID4gPiBI aSBNb3J0ZW4sDQo+ID4gPg0KPiA+ID4gR29vZCBwYXRjaC4gUGxlYXNlIHNlZSBiZWxvdy4NCj4g PiA+DQo+ID4gPiBPbiBTYXQsIDI2IEp1bCAyMDI1LCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4g PiA+DQo+ID4gPiA+IEFkZGVkIGZhc3QgbWJ1ZiByZWxlYXNlLCByZS11c2luZyB0aGUgZXhpc3Rp bmcgbWJ1ZiBwb29sIHBvaW50ZXINCj4gPiA+ID4gaW4gdGhlIHF1ZXVlIHN0cnVjdHVyZS4NCj4g PiA+ID4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hh cmVzeXN0ZW1zLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+IHYyOg0KPiA+ID4gPiAqIEFsc28g YW5ub3VuY2UgdGhlIG9mZmxvYWQgYXMgYSBwZXItcXVldWUgY2FwYWJpbGl0eS4NCj4gPiA+ID4g KiBBZGRlZCBtaXNzaW5nIHRlc3Qgb2YgcGVyLWRldmljZSBvZmZsb2FkIGNvbmZpZ3VyYXRpb24g d2hlbg0KPiA+ID4gY29uZmlndXJpbmcNCj4gPiA+ID4gIHRoZSBxdWV1ZS4NCj4gPiA+ID4gLS0t DQo+ID4gPiA+IGRyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMgfCAzMyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0NCj4gPiA+ID4gMSBmaWxlIGNoYW5nZWQsIDMwIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9udWxsL3J0ZV9ldGhfbnVsbC5jDQo+ID4gPiBiL2RyaXZlcnMvbmV0L251bGwv cnRlX2V0aF9udWxsLmMNCj4gPiA+ID4gaW5kZXggOGE5Yjc0YTAzYi4uMDljZmM3NDQ5NCAxMDA2 NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvbnVsbC9ydGVfZXRoX251bGwuYw0KPiA+ID4g PiArKysgYi9kcml2ZXJzL25ldC9udWxsL3J0ZV9ldGhfbnVsbC5jDQo+ID4gPiA+IEBAIC0zNCw2 ICszNCwxNyBAQCBzdHJ1Y3QgcG1kX2ludGVybmFsczsNCj4gPiA+ID4gc3RydWN0IG51bGxfcXVl dWUgew0KPiA+ID4gPiAJc3RydWN0IHBtZF9pbnRlcm5hbHMgKmludGVybmFsczsNCj4gPiA+ID4N Cj4gPiA+ID4gKwkvKioNCj4gPiA+ID4gKwkgKiBGb3IgUlggcXVldWU6DQo+ID4gPiA+ICsJICog IE1lbXBvb2wgdG8gYWxsb2NhdGUgbWJ1ZnMgZnJvbS4NCj4gPiA+ID4gKwkgKg0KPiA+ID4gPiAr CSAqIEZvciBUWCBxdWV1ZToNCj4gPiA+DQo+ID4gPiBQZXJoYXBzIHNwZWxsIGl0ICdSeCcsICdU eCcsIGJ1dCB0aGlzIGlzIHVwIHRvIHlvdS4NCj4gPg0KPiA+IEkganVzdCBjaGVja2VkLCBhbmQg aXQgc2VlbXMgYWxsIHRocmVlIHNwZWxsaW5ncyAicngiLCAiUngiIGFuZCAiUlgiIGFyZQ0KPiBi ZWluZyB1c2VkIGluIERQREsuDQo+ID4gSSBwZXJzb25hbGx5IHByZWZlciBSWCwgc28gSSdsbCBr ZWVwIHRoYXQuDQo+ID4NCj4gPiA+DQo+ID4gPiA+ICsJICogIE1lbXBvb2wgdG8gZnJlZSBtYnVm cyB0bywgaWYgZmFzdCByZWxlYXNlIG9mIG1idWZzIGlzDQo+IGVuYWJsZWQuDQo+ID4gPiA+ICsJ ICogIFVJTlRQVFJfTUFYIGlmIHRoZSBtZW1wb29sIGZvciBmYXN0IHJlbGVhc2Ugb2YgbWJ1ZnMg aGFzIG5vdA0KPiA+ID4geWV0IGJlZW4gZGV0ZWN0ZWQuDQo+ID4gPiA+ICsJICogIE5VTEwgaWYg ZmFzdCByZWxlYXNlIG9mIG1idWZzIGlzIG5vdCBlbmFibGVkLg0KPiA+ID4gPiArCSAqDQo+ID4g PiA+ICsJICogIEBzZWUgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFDQo+ID4gPiA+ ICsJICovDQo+ID4gPg0KPiA+ID4gTWF5IGJlIGl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIGEg c2VwYXJhdGUgJ3R4X3BrdF9idXJzdCcgY2FsbGJhY2ssIHRvDQo+ID4gPiBhdm9pZA0KPiA+ID4g Y29uZGl0aW9uYWwgY2hlY2tzIGJlbG93LiBUaG91Z2gsIEkgdW5kZXJzdGFuZCB0aGlzIHdpbGwg ZG93bmdyYWRlIHRoZQ0KPiA+ID4gcGVyLXF1ZXVlDQo+ID4gPiBjYXBhYmlsaXR5IHRvIHRoZSBw ZXItcG9ydCBvbmx5LCBzbyBmZWVsIGZyZWUgdG8gZGlzcmVnYXJkIHRoaXMgcG9pbnQuDQo+ID4N Cj4gPiBJIGNvbnNpZGVyZWQgdGhpcywgYW5kIEkgY2FuIGltYWdpbmUgYW4gYXBwbGljYXRpb24g dXNpbmcgRkFTVF9GUkVFIGZvciBpdHMNCj4gcHJpbWFyeSBxdWV1ZXMsIGFuZCBub3JtYWwgZnJl ZSBmb3Igc29tZSBzZWNvbmRhcnkNCj4gPiBxdWV1ZXMuDQo+ID4gTG9va2luZyBhdCBvdGhlciBk cml2ZXJzIC0gd2hpY2ggaGF2ZSBpbXBsZW1lbnRlZCBhIHJ1bnRpbWUgY2hlY2ssIG5vdA0KPiBz ZXBhcmF0ZSBjYWxsYmFja3MgZm9yIEZBU1RfRlJFRSAtIEkgZ3Vlc3MgdGhleSBjYW1lIHRvIHRo ZQ0KPiA+IHNhbWUgY29uY2x1c2lvbi4NCj4gPg0KPiA+ID4NCj4gPiA+ID4gCXN0cnVjdCBydGVf bWVtcG9vbCAqbWJfcG9vbDsNCj4gPiA+ID4gCXZvaWQgKmR1bW15X3BhY2tldDsNCj4gPiA+ID4N Cj4gPiA+ID4gQEAgLTE1MSw3ICsxNjIsMTYgQEAgZXRoX251bGxfdHgodm9pZCAqcSwgc3RydWN0 IHJ0ZV9tYnVmICoqYnVmcywNCj4gPiA+IHVpbnQxNl90IG5iX2J1ZnMpDQo+ID4gPiA+IAlmb3Ig KGkgPSAwOyBpIDwgbmJfYnVmczsgaSsrKQ0KPiA+ID4gPiAJCWJ5dGVzICs9IHJ0ZV9wa3RtYnVm X3BrdF9sZW4oYnVmc1tpXSk7DQo+ID4gPiA+DQo+ID4gPiA+IC0JcnRlX3BrdG1idWZfZnJlZV9i dWxrKGJ1ZnMsIG5iX2J1ZnMpOw0KPiA+ID4gPiArCWlmIChoLT5tYl9wb29sICE9IE5VTEwpIHsg LyogUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFICovDQo+ID4gPiA+ICsJCWlmICh1 bmxpa2VseShoLT5tYl9wb29sID09ICh2b2lkICopVUlOVFBUUl9NQVgpKSB7DQo+ID4gPiA+ICsJ CQlpZiAodW5saWtlbHkobmJfYnVmcyA9PSAwKSkNCj4gPiA+ID4gKwkJCQlyZXR1cm4gMDsgLyog RG8gbm90IGRlcmVmZXJlbmNlIHVuaW5pdGlhbGl6ZWQNCj4gPiA+IGJ1ZnNbMF0uICovDQo+ID4g PiA+ICsJCQloLT5tYl9wb29sID0gYnVmc1swXS0+cG9vbDsNCj4gPiA+ID4gKwkJfQ0KPiA+ID4g PiArCQlydGVfbWJ1Zl9yYXdfZnJlZV9idWxrKGgtPm1iX3Bvb2wsIGJ1ZnMsIG5iX2J1ZnMpOw0K PiA+ID4gPiArCX0gZWxzZSB7DQo+ID4gPiA+ICsJCXJ0ZV9wa3RtYnVmX2ZyZWVfYnVsayhidWZz LCBuYl9idWZzKTsNCj4gPiA+ID4gKwl9DQo+ID4gPiA+IAlydGVfYXRvbWljX2ZldGNoX2FkZF9l eHBsaWNpdCgmaC0+dHhfcGt0cywgbmJfYnVmcywNCj4gPiA+IHJ0ZV9tZW1vcnlfb3JkZXJfcmVs YXhlZCk7DQo+ID4gPiA+IAlydGVfYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCgmaC0+dHhfYnl0 ZXMsIGJ5dGVzLA0KPiA+ID4gcnRlX21lbW9yeV9vcmRlcl9yZWxheGVkKTsNCj4gPiA+ID4NCj4g PiA+ID4gQEAgLTI1OSw3ICsyNzksNyBAQCBzdGF0aWMgaW50DQo+ID4gPiA+IGV0aF90eF9xdWV1 ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgdHhfcXVldWVfaWQsDQo+ ID4gPiA+IAkJdWludDE2X3QgbmJfdHhfZGVzYyBfX3J0ZV91bnVzZWQsDQo+ID4gPiA+IAkJdW5z aWduZWQgaW50IHNvY2tldF9pZCBfX3J0ZV91bnVzZWQsDQo+ID4gPiA+IC0JCWNvbnN0IHN0cnVj dCBydGVfZXRoX3R4Y29uZiAqdHhfY29uZiBfX3J0ZV91bnVzZWQpDQo+ID4gPiA+ICsJCWNvbnN0 IHN0cnVjdCBydGVfZXRoX3R4Y29uZiAqdHhfY29uZikNCj4gPiA+ID4gew0KPiA+ID4gPiAJc3Ry dWN0IHJ0ZV9tYnVmICpkdW1teV9wYWNrZXQ7DQo+ID4gPiA+IAlzdHJ1Y3QgcG1kX2ludGVybmFs cyAqaW50ZXJuYWxzOw0KPiA+ID4gPiBAQCAtMjg0LDYgKzMwNCwxMCBAQCBldGhfdHhfcXVldWVf c2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiB1aW50MTZfdCB0eF9xdWV1ZV9p ZCwNCj4gPiA+ID4NCj4gPiA+ID4gCWludGVybmFscy0+dHhfbnVsbF9xdWV1ZXNbdHhfcXVldWVf aWRdLmludGVybmFscyA9IGludGVybmFsczsNCj4gPiA+ID4gCWludGVybmFscy0+dHhfbnVsbF9x dWV1ZXNbdHhfcXVldWVfaWRdLmR1bW15X3BhY2tldCA9DQo+ID4gPiBkdW1teV9wYWNrZXQ7DQo+ ID4gPiA+ICsJaW50ZXJuYWxzLT50eF9udWxsX3F1ZXVlc1t0eF9xdWV1ZV9pZF0ubWJfcG9vbCA9 DQo+ID4gPiA+ICsJCQkoZGV2LT5kYXRhLT5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgfCB0eF9j b25mLQ0KPiA+ID4gPm9mZmxvYWRzKSAmDQo+ID4gPiA+ICsJCQlSVEVfRVRIX1RYX09GRkxPQURf TUJVRl9GQVNUX0ZSRUUgPw0KPiA+ID4gPiArCQkJKHZvaWQgKilVSU5UUFRSX01BWCA6IE5VTEw7 DQo+ID4gPg0KPiA+ID4gR2l2ZW4gdGhlIGZhY3QgdGhhdCBGQVNUX0ZSRUUgYW5kIE1VTFRJX1NF R1MgYXJlIGVmZmVjdGl2ZWx5DQo+ID4gPiBjb25mbGljdGluZywNCj4gPiA+IHdvdWxkbid0IGl0 IGJlIGJldHRlciB0byBoYXZlIGEgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiBib3RoIGZsYWdz DQo+ID4gPiBoZXJlPyBJJ20NCj4gPiA+IG5vdCBzdXJlIHdoZXRoZXIgdGhpcyBpcyBhbHJlYWR5 IGNoZWNrZWQgYXQgdGhlIGdlbmVyaWMgbGF5ZXIgYWJvdmUgdGhlDQo+ID4gPiBQTUQuDQo+ID4N Cj4gPiBJbnRlcmVzdGluZyB0aG91Z2h0IC0gZ290IG1lIGxvb2tpbmcgZGVlcGVyIGludG8gdGhp cy4NCj4gPg0KPiA+IEl0IHNlZW1zIE1VTFRJX1NFR1MgaXMgcHJpbWFyaWx5IGEgY2FwYWJpbGl0 eSBmbGFnLg0KPiA+IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgTVVMVElfU0VHUyBmbGFnIFsxXSBj b3VsZCBiZSBpbnRlcnByZXRlZCB0aGF0IHdheQ0KPiB0b286DQo+ID4gLyoqIERldmljZSBzdXBw b3J0cyBtdWx0aSBzZWdtZW50IHNlbmQuICovDQo+ID4NCj4gPiBbMV06DQo+IGh0dHBzOi8vZWxp eGlyLmJvb3RsaW4uY29tL2RwZGsvdjI1LjA3L3NvdXJjZS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYu aCNMMTYxNA0KPiANCj4gSW4gZmFjdCwgSSBiZWxpZXZlIGl0IHNlcnZlcyBib3RoIHB1cnBvc2Vz OiByZXBvcnQgY2FwYWJpbGl0aWVzIGFuZCByZXF1ZXN0DQo+IGZvciBvZmZsb2FkcyB0byBlbmFi bGUuDQo+IEZldyBleGFtcGxlLCBJIGJlbGlldmUgcmVxdWVzdCB0aGlzIG9mZmxvYWQ6DQo+IGh0 dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2RwZGsvdjI1LjA3L3NvdXJjZS9leGFtcGxlcy9pcF9m cmFnbWVudGF0aW9uL21haW4uYw0KPiAjTDE1Ng0KPiBodHRwczovL2VsaXhpci5ib290bGluLmNv bS9kcGRrL3YyNS4wNy9zb3VyY2UvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtDQo+IHNlY2d3 LmMjTDE5ODUNCj4gaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vZHBkay92MjUuMDcvc291cmNl L2V4YW1wbGVzL2lwX3JlYXNzZW1ibHkvbWFpbi5jI0wxDQo+IDc3DQoNCkFub3RoZXIgZmxhZyB3 aXRoIHVuY2xlYXIgZGVzY3JpcHRpb24uIDotKA0KDQo+IA0KPiA+DQo+ID4gRS5nLiB0aGUgaTQw ZSBkcml2ZXIgb2ZmZXJzIE1VTFRJX1NFR1MgY2FwYWJpbGl0eSBwZXItZGV2aWNlLCBidXQgbm90 IHBlci0NCj4gcXVldWUuIEFuZCBpdCBkb2Vzbid0IHVzZSB0aGUgTVVMVElfU0VHUyBmbGFnIGZv ciBhbnkNCj4gPiBwdXJwb3NlIChiZXlvbmQgY2FwYWJpbGl0eSByZXBvcnRpbmcpLg0KPiA+DQo+ ID4gRnVydGhlcm1vcmUsIGVuYWJsaW5nIE1VTFRJX1NFR1Mgb24gVFggKHBlciBkZXZpY2Ugb3Ig cGVyIHF1ZXVlKSB3b3VsZG4ndA0KPiBtZWFuIHRoYXQgYWxsIHRyYW5zbWl0dGVkIHBhY2tldHMg YXJlIHNlZ21lbnRlZDsgaXQNCj4gPiBvbmx5IG1lYW5zIHRoYXQgdGhlIGRyaXZlciBtdXN0IGJl IGFibGUgdG8gaGFuZGxlIHNlZ21lbnRlZCBwYWNrZXRzLg0KPiANCj4gWWVwLg0KPiANCj4gPiBJ LmUuIE1VTFRJX1NFR1MgY291bGQgYmUgZW5hYmxlZCBvbiBhIGRldmljZSwgYW5kIHlldCBpdCB3 b3VsZCBiZSBhY2NlcHRhYmxlDQo+IHRvIGVuYWJsZSBGQVNUX0ZSRUUgb24gYSBxdWV1ZSBvbiB0 aGF0IGRldmljZS4NCj4gDQo+IEluIHRoZW9yeSB5ZXMuLi4geW91IHByb2JhYmx5IGNhbiBoYXZl IG9uZSBUWCBxdWV1ZSB3aXRoIEZBU1RfRlJFRSAobm8gbXVsdGktDQo+IHNlZyBwYWNrZXRzKSBh bmQgYW5vdGhlciBUWCBxdWV1ZSBzZXJ2aW5nIG11bGl0LXNlZyBwYWNrZXRzLg0KPiBBZ2Fpbiwg cHJvYmFibHkgc29tZSBkcml2ZXJzIGNhbiBldmVuIHN1cHBvcnQgYm90aCBvZmZsb2FkcyBvbiB0 aGUgc2FtZSBUWA0KPiBxdWV1ZSwNCj4gYXMgbG9uZyBhcyBjb25kaXRpb25zIGZvciB0aGUgRkFT VF9GUkVFIG9mZmxvYWQgYXJlIHN0aWxsIHNhdGlzZmllZDogc2luZ2xlDQo+IG1lbXBvb2wsIHJl ZmNudD09MSwgbm8gaW5kaXJlY3QgbWJ1ZnMsIGV0Yy4NCj4gVGhvdWdoIGluIHByYWN0aWNlLCB1 c2luZyBNVUxUSV9TRUcgdXN1YWxseSBpbXBsaWVzIHVzYWdlIGFsbCB0aGVzZSBtYnVmDQo+IGZl YXR1cmVzIHRoYXQgYXJlIG5vdC1jb21wYXRpYmxlIHdpdGggRkFTVF9GUkVFLg0KPiBCVFcsICBJ IHNlZSBtYW55IG9mIERQREsgZXhhbXBsZXMgLSBkbyB1c2UgYm90aCBGQVNUX0ZSRUUgYW5kIE1V TFRJX1NFRy4NCj4gVEJIIC0gSSBkb24ndCB1bmRlcnN0YW5kIGhvdyBpdCB3b3JrcyB0b2dldGhl ciwgZnJvbSBteSBtZW1vcmllcyAtIGZvciBtYW55DQo+IGNhc2VzIGl0IGp1c3Qgc2hvdWxkbid0 Lg0KDQpBZ3JlZTogVXNpbmcgRkFTVF9GUkVFIGFuZCBNVUxUSV9TRUcgdG9nZXRoZXIgc2hvdWxk bid0IHdvcmsuDQpCdXQgaWYgYSBkcml2ZXIgKGUuZy4gaTQwZSkgZG9lc24ndCBzdXBwb3J0IGNv bmZpZ3VyaW5nIE1VTFRJX1NFRyBwZXIgcXVldWUsIG9ubHkgcGVyIGRldmljZSwgaXQgd291bGQg YmUgaW1wb3NzaWJsZSB0byBjb25maWd1cmUgRkFTVF9GUkVFIGZvciBvbmUgcXVldWUgYW5kIE1V TFRJX1NFRyBmb3IgYW5vdGhlciBxdWV1ZS4NCkNsZWFuaW5nIHVwIHRoaXMgbWVzcyB3b3VsZCBi cmVhayBhcHBsaWNhdGlvbnMgdGhhdCBhc3N1bWUgTVVMVElfU0VHIGlzIGZvciBjYXBhYmlsaXR5 IG9ubHksIGFuZCB0aHVzIGRvbid0IHNldCBpdCB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBkZXZpY2Ug b3IgcXVldWUuIEFuZCBhcHBsaWNhdGlvbnMgdGhhdCBjb25maWd1cmUgTVVMVElfU0VHIG9uIGEg ZGV2aWNlIGFuZCBGQVNUX0ZSRUUgb24gYSBxdWV1ZS4NCg0KU2xpZ2h0bHkgcmVsYXRlZDogSSBz dXNwZWN0IHRoYXQgRkFTVF9GUkVFIG1pZ2h0IG5vdCBiZSBpbXBsZW1lbnRlZCAxMDAgJSBjb3Jy ZWN0bHkgaW4gYWxsIGRyaXZlcnMsIHNvIEkgc3VibWl0dGVkIGEgcGF0Y2ggWzJdIHRvIHZlcmlm eSB0aGF0IEZBU1RfRlJFRSdlZCBtYnVmcyBjb25mb3JtIHRvIHRoZSByZXF1aXJlZCBzdGF0ZSBv ZiBtYnVmcyBoZWxkIGluIHRoZSBtYnVmIHBvb2wuIChObyBzcGVjaWZpYyBkcml2ZXJzIGluIG1p bmQsIGp1c3QgYSB3ZWFrIGh1bmNoLikNCkFueSBkcml2ZXJzIGltcGxlbWVudGluZyBGQVNUX0ZS RUUgc2hvdWxkIHVzZSBydGVfbWJ1Zl9yYXdfZnJlZV9idWxrKCkgaW5zdGVhZCBvZiBydGVfbWVt cG9vbF9wdXRfYnVsaygpIHRvIGJlbmVmaXQgZnJvbSB0aGlzIHBhdGNoLCBlc3BlY2lhbGx5IHdo ZW4gY29uZm9ybWFuY2UgdGVzdGluZyB0aGUgZHJpdmVyLg0KDQpbMl06IGh0dHBzOi8vaW5ib3gu ZHBkay5vcmcvZGV2LzIwMjUwNzIyMDkzNDMxLjU1NTIxNC0xLW1iQHNtYXJ0c2hhcmVzeXN0ZW1z LmNvbS8NCg0KPiANCj4gPg0KPiA+ID4NCj4gPiA+IFRoYW5rIHlvdS4NCj4gPg0KPiA+IFRoYW5r IHlvdSBmb3IgcmV2aWV3aW5nLg0KPiA+DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAJcmV0dXJu IDA7DQo+ID4gPiA+IH0NCj4gPiA+ID4gQEAgLTMwOSw3ICszMzMsMTAgQEAgZXRoX2Rldl9pbmZv KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gPiAJZGV2X2luZm8tPm1heF9yeF9xdWV1 ZXMgPSBSVEVfRElNKGludGVybmFscy0+cnhfbnVsbF9xdWV1ZXMpOw0KPiA+ID4gPiAJZGV2X2lu Zm8tPm1heF90eF9xdWV1ZXMgPSBSVEVfRElNKGludGVybmFscy0+dHhfbnVsbF9xdWV1ZXMpOw0K PiA+ID4gPiAJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gMDsNCj4gPiA+ID4gLQlkZXZfaW5m by0+dHhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfA0KPiA+ ID4gUlRFX0VUSF9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFOw0KPiA+ID4gPiArCWRldl9pbmZvLT50 eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPQ0KPiA+ID4gUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOw0KPiA+ID4gPiArCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSBSVEVfRVRIX1RY X09GRkxPQURfTVVMVElfU0VHUyB8DQo+ID4gPiA+ICsJCQlSVEVfRVRIX1RYX09GRkxPQURfTVRf TE9DS0ZSRUUgfA0KPiA+ID4gPiArCQkJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYTsN Cj4gPiA+ID4NCj4gPiA+ID4gCWRldl9pbmZvLT5yZXRhX3NpemUgPSBpbnRlcm5hbHMtPnJldGFf c2l6ZTsNCj4gPiA+ID4gCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gaW50ZXJu YWxzLQ0KPiA+ID4gPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHM7DQo+ID4gPiA+IC0tDQo+ID4gPiA+ IDIuNDMuMA0KPiA+ID4gPg0KPiA+ID4gPg0K