From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 572FF594B for ; Tue, 25 Aug 2015 20:14:05 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 25 Aug 2015 11:14:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,747,1437462000"; d="scan'208,217";a="755222799" Received: from pgsmsx103.gar.corp.intel.com ([10.221.44.82]) by orsmga001.jf.intel.com with ESMTP; 25 Aug 2015 11:13:59 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.110.14) by PGSMSX103.gar.corp.intel.com (10.221.44.82) with Microsoft SMTP Server (TLS) id 14.3.224.2; Wed, 26 Aug 2015 02:13:58 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.210]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.248]) with mapi id 14.03.0224.002; Wed, 26 Aug 2015 02:13:51 +0800 From: "Zhang, Helin" To: 'Vladislav Zolotarov' Thread-Topic: [dpdk-dev] [PATCH v1] ixgbe_pmd: forbid tx_rs_thresh above 1 for all NICs but 82598 Thread-Index: AQHQ1fLetlF10YIG/kWzzVYFXNo2ap4KX8ywgAAU3oCAB4kdgIAARtIAgAFYG3CACXpWUA== Date: Tue, 25 Aug 2015 18:13:50 +0000 Message-ID: References: <1439489195-31553-1-git-send-email-vladz@cloudius-systems.com> <55CD7EA5.6060100@cloudius-systems.com> <6A0DE07E22DDAD4C9103DF62FEBC0909D3E116@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "'dev@dpdk.org'" Subject: Re: [dpdk-dev] [PATCH v1] ixgbe_pmd: forbid tx_rs_thresh above 1 for all NICs but 82598 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2015 18:14:06 -0000 SGkgVmxhZA0KDQpJbiBhZGRpdGlvbiwgSeKAmWQgZG91YmxlIGNoZWNrIHdpdGggeW91IHdoYXTi gJlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXNjcmlwdG9ycyB3b3VsZCBiZSB1c2VkIGZvciBh IHNpbmdsZSBwYWNrZXQgdHJhbnNtaXR0aW5nPw0KRGF0YXNoZWV0IHNhaWQgdGhhdCBpdCBzdXBw b3J0cyB1cCB0byA4LiBJIGFtIHdvbmRlcmluZyBpZiBtb3JlIHRoYW4gOCB3ZXJlIHVzZWQgaW4g eW91ciBjYXNlPw0KVGhhbmsgeW91IHZlcnkgbXVjaCENCg0KUmVnYXJkcywNCkhlbGluDQoNCkZy b206IFpoYW5nLCBIZWxpbg0KU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMTksIDIwMTUgMTA6Mjkg QU0NClRvOiBWbGFkaXNsYXYgWm9sb3Rhcm92DQpDYzogTHUsIFdlbnpodW87IGRldkBkcGRrLm9y Zw0KU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHYxXSBpeGdiZV9wbWQ6IGZvcmJpZCB0 eF9yc190aHJlc2ggYWJvdmUgMSBmb3IgYWxsIE5JQ3MgYnV0IDgyNTk4DQoNCkhpIFZsYWQNCg0K VGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgdGhlIHBhdGNoZXMhIEdpdmUgbWUgYSBmZXcgbW9yZSB0 aW1lIHRvIGRvdWJsZSBjaGVjayB3aXRoIG1vcmUgZ3V5cywgYW5kIHBvc3NpYmx5IGhhcmR3YXJl IGV4cGVydHMuDQoNClJlZ2FyZHMsDQpIZWxpbg0KDQpGcm9tOiBWbGFkaXNsYXYgWm9sb3Rhcm92 IFttYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb21dDQpTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMTgsIDIwMTUgOTo1NiBQTQ0KVG86IEx1LCBXZW56aHVvDQpDYzogZGV2QGRwZGsub3JnPG1h aWx0bzpkZXZAZHBkay5vcmc+OyBaaGFuZywgSGVsaW4NClN1YmplY3Q6IFJFOiBbZHBkay1kZXZd IFtQQVRDSCB2MV0gaXhnYmVfcG1kOiBmb3JiaWQgdHhfcnNfdGhyZXNoIGFib3ZlIDEgZm9yIGFs bCBOSUNzIGJ1dCA4MjU5OA0KDQoNCk9uIEF1ZyAxOSwgMjAxNSAwMzo0MiwgIkx1LCBXZW56aHVv IiA8d2Vuemh1by5sdUBpbnRlbC5jb208bWFpbHRvOndlbnpodW8ubHVAaW50ZWwuY29tPj4gd3Jv dGU6DQo+DQo+IEhpIEhlbGluLA0KPg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmc8bWFpbHRvOmRldi1ib3Vu Y2VzQGRwZGsub3JnPl0gT24gQmVoYWxmIE9mIFZsYWQgWm9sb3Rhcm92DQo+ID4gU2VudDogRnJp ZGF5LCBBdWd1c3QgMTQsIDIwMTUgMTozOCBQTQ0KPiA+IFRvOiBaaGFuZywgSGVsaW47IGRldkBk cGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPg0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZd IFtQQVRDSCB2MV0gaXhnYmVfcG1kOiBmb3JiaWQgdHhfcnNfdGhyZXNoIGFib3ZlIDEgZm9yDQo+ ID4gYWxsIE5JQ3MgYnV0IDgyNTk4DQo+ID4NCj4gPg0KPiA+DQo+ID4gT24gMDgvMTMvMTUgMjM6 MjgsIFpoYW5nLCBIZWxpbiB3cm90ZToNCj4gPiA+IEhpIFZsYWQNCj4gPiA+DQo+ID4gPiBJIGRv bid0IHRoaW5rIHRoZSBjaGFuZ2VzIGFyZSBuZWVkZWQuIEl0IHNheXMgaW4gZGF0YXNoZWV0IHRo YXQgdGhlIFJTDQo+ID4gPiBiaXQgc2hvdWxkIGJlIHNldCBvbiB0aGUgbGFzdCBkZXNjcmlwdG9y IG9mIGV2ZXJ5IHBhY2tldCwgT05MWSBXSEVODQo+ID4gVFhEQ1RMLldUSFJFU0ggZXF1YWxzIHRv IFpFUk8uDQo+ID4NCj4gPiBPZiBjb3Vyc2UgaXQncyBuZWVkZWQhIFNlZSBiZWxvdy4NCj4gPiBF eGFjdGx5IHRoZSBzYW1lIHNwZWMgYSBmZXcgbGluZXMgYWJvdmUgdGhlIHBsYWNlIHUndmUganVz dCBxdW90ZWQgc3RhdGVzOg0KPiA+DQo+ID4gIlNvZnR3YXJlIHNob3VsZCBub3Qgc2V0IHRoZSBS UyBiaXQgd2hlbiBUWERDVEwuV1RIUkVTSCBpcyBncmVhdGVyIHRoYW4NCj4gPiB6ZXJvLiINCj4g Pg0KPiA+IEFuZCBzaW5jZSBhbGwgdGhyZWUgKDMpIGl4Z2JlIHhtaXQgY2FsbGJhY2tzIGFyZSB1 dGlsaXppbmcgUlMgYml0IG5vdGF0aW9uIGl4Z2JlIFBNRA0KPiA+IGlzIGFjdHVhbGx5IG5vdCBz dXBwb3J0aW5nIGFueSB2YWx1ZSBvZiBXVEhSRVNIIGRpZmZlcmVudCBmcm9tIHplcm8uDQo+IEkg dGhpbmsgVmxhZCBpcyByaWdodC4gV2UgbmVlZCB0byBmaXggdGhpcyBpc3N1ZS4gQW55IHN1Z2dl c3Rpb24/IElmIG5vdCwgSSdkIGxpa2UgdG8gYWNrIHRoaXMgcGF0Y2guDQoNClBscy4sIG5vdGUg dGhhdCB0aGVyZSBpcyBhIHYyIG9mIHRoaXMgcGF0Y2ggb24gdGhlIGxpc3QuIEkgZm9yZ290IHRv IHBhdGNoIGl4Z2JldmZfZGV2X2luZm9fZ2V0KCkgaW4gdjEuDQoNCj4NCj4gPg0KPiA+ID4NCj4g PiA+IFJlZ2FyZHMsDQo+ID4gPiBIZWxpbg0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IFZsYWQgWm9sb3Rhcm92IFttYWlsdG86dmxhZHpAY2xv dWRpdXMtc3lzdGVtcy5jb208bWFpbHRvOnZsYWR6QGNsb3VkaXVzLXN5c3RlbXMuY29tPl0NCj4g PiA+PiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDEzLCAyMDE1IDExOjA3IEFNDQo+ID4gPj4gVG86 IGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPg0KPiA+ID4+IENjOiBaaGFuZywgSGVs aW47IEFuYW55ZXYsIEtvbnN0YW50aW47IGF2aUBjbG91ZGl1cy1zeXN0ZW1zLmNvbTxtYWlsdG86 YXZpQGNsb3VkaXVzLXN5c3RlbXMuY29tPjsgVmxhZA0KPiA+ID4+IFpvbG90YXJvdg0KPiA+ID4+ IFN1YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHYxXSBpeGdiZV9wbWQ6IGZvcmJpZCB0eF9yc190 aHJlc2ggYWJvdmUgMSBmb3INCj4gPiBhbGwNCj4gPiA+PiBOSUNzIGJ1dCA4MjU5OA0KPiA+ID4+ DQo+ID4gPj4gQWNjb3JkaW5nIHRvIDgyNTk5IGFuZCB4NTQwIEhXIHNwZWNpZmljYXRpb25zIFJT IGJpdCAqbXVzdCogYmUgc2V0IGluIHRoZQ0KPiA+IGxhc3QNCj4gPiA+PiBkZXNjcmlwdG9yIG9m ICpldmVyeSogcGFja2V0Lg0KPiA+ID4gVGhlcmUgaXMgYSBjb25kaXRpb24gdGhhdCBpZiBUWERD VEwuV1RIUkVTSCBlcXVhbCB0byB6ZXJvLg0KPiA+DQo+ID4gUmlnaHQgYW5kIGl4Z2JlIFBNRCBy ZXF1aXJlcyB0aGlzIGNvbmRpdGlvbiB0byBiZSBmdWxmaWxsZWQgaW4gb3JkZXIgdG8NCj4gPiBm dW5jdGlvbi4gU2VlIGFib3ZlLg0KPiA+DQo+ID4gPg0KPiA+ID4+IFRoaXMgcGF0Y2ggZml4ZXMg dGhlIFR4IGhhbmcgd2Ugd2VyZSBjb25zdGFudGx5IGhpdHRpbmcgd2l0aCBhIHNlYXN0YXItYmFz ZWQNCj4gPiA+PiBhcHBsaWNhdGlvbiBvbiB4NTQwIE5JQy4NCj4gPiA+IENvdWxkIHlvdSBoZWxw IHRvIHNoYXJlIHdpdGggdXMgaG93IHRvIHJlcHJvZHVjZSB0aGUgdHggaGFuZyBpc3N1ZSwgd2l0 aCB1c2luZw0KPiA+ID4gdHlwaWNhbCBEUERLIGV4YW1wbGVzPw0KPiA+DQo+ID4gU29ycnkuIEkn bSBub3QgdmVyeSBmYW1pbGlhciB3aXRoIHRoZSB0eXBpY2FsIERQREsgZXhhbXBsZXMgdG8gaGVs cCB1DQo+ID4gaGVyZS4gSG93ZXZlciB0aGlzIGlzIHF1aXRlIGlycmVsZXZhbnQgc2luY2Ugd2l0 aG91dCB0aGlzIHRoaXMgcGF0Y2gNCj4gPiBpeGdiZSBQTUQgb2J2aW91c2x5IGFidXNlcyB0aGUg SFcgc3BlYyBhcyBoYXMgYmVlbiBleHBsYWluZWQgYWJvdmUuDQo+ID4NCj4gPiBXZSBzYXcgdGhl IGlzc3VlIHdoZW4gdSBzdHJlc3NlZCB0aGUgeG1pdCBwYXRoIHdpdGggYSBsb3Qgb2YgaGlnaGx5 DQo+ID4gZnJhZ21lbnRlZCBUQ1AgZnJhbWVzIChwYWNrZXRzIHdpdGggdXAgdG8gMzMgZnJhZ21l bnRzIHdpdGggbm9uLWhlYWRlcnMNCj4gPiBmcmFnbWVudHMgYXMgc21hbGwgYXMgNCBieXRlcykg d2l0aCBhbGwgb2ZmbG9hZCBmZWF0dXJlcyBlbmFibGVkLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+ IHZsYWQNCj4gPiA+DQo+ID4gPj4gU2lnbmVkLW9mZi1ieTogVmxhZCBab2xvdGFyb3YgPHZsYWR6 QGNsb3VkaXVzLXN5c3RlbXMuY29tPG1haWx0bzp2bGFkekBjbG91ZGl1cy1zeXN0ZW1zLmNvbT4+ DQo+ID4gPj4gLS0tDQo+ID4gPj4gICBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYyB8 ICA5ICsrKysrKysrKw0KPiA+ID4+ICAgZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jICAg fCAyMyArKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+ID4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAz MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gPj4NCj4gPiA+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPiA+PiBiL2RyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4gPj4gaW5kZXggYjhlZTFlOS4uNjcxNGZkOSAxMDA2 NDQNCj4gPiA+PiAtLS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+ID4+ ICsrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4gPj4gQEAgLTI0MTQs NiArMjQxNCwxNSBAQCBpeGdiZV9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+ID4gc3RydWN0DQo+ID4gPj4gcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pDQo+ID4gPj4g ICAgICAgICAgICAudHhxX2ZsYWdzID0gRVRIX1RYUV9GTEFHU19OT01VTFRTRUdTIHwNCj4gPiA+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVEhfVFhRX0ZMQUdTX05PT0ZGTE9BRFMsDQo+ ID4gPj4gICAgfTsNCj4gPiA+PiArDQo+ID4gPj4gKyAgLyoNCj4gPiA+PiArICAgKiBBY2NvcmRp bmcgdG8gODI1OTkgYW5kIHg1NDAgc3BlY2lmaWNhdGlvbnMgUlMgYml0ICptdXN0KiBiZSBzZXQg b24NCj4gPiB0aGUNCj4gPiA+PiArICAgKiBsYXN0IGRlc2NyaXB0b3Igb2YgKmV2ZXJ5KiBwYWNr ZXQuIFRoZXJlZm9yZSB3ZSB3aWxsIG5vdCBhbGxvdyB0aGUNCj4gPiA+PiArICAgKiB0eF9yc190 aHJlc2ggYWJvdmUgMSBmb3IgYWxsIE5JQ3MgbmV3ZXIgdGhhbiA4MjU5OC4NCj4gPiA+PiArICAg Ki8NCj4gPiA+PiArICBpZiAoaHctPm1hYy50eXBlID4gaXhnYmVfbWFjXzgyNTk4RUIpDQo+ID4g Pj4gKyAgICAgICAgICBkZXZfaW5mby0+ZGVmYXVsdF90eGNvbmYudHhfcnNfdGhyZXNoID0gMTsN Cj4gPiA+PiArDQo+ID4gPj4gICAgZGV2X2luZm8tPmhhc2hfa2V5X3NpemUgPSBJWEdCRV9IS0VZ X01BWF9JTkRFWCAqIHNpemVvZih1aW50MzJfdCk7DQo+ID4gPj4gICAgZGV2X2luZm8tPnJldGFf c2l6ZSA9IEVUSF9SU1NfUkVUQV9TSVpFXzEyODsNCj4gPiA+PiAgICBkZXZfaW5mby0+Zmxvd190 eXBlX3Jzc19vZmZsb2FkcyA9IElYR0JFX1JTU19PRkZMT0FEX0FMTDsgZGlmZiAtLQ0KPiA+IGdp dA0KPiA+ID4+IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jIGIvZHJpdmVycy9uZXQv aXhnYmUvaXhnYmVfcnh0eC5jIGluZGV4DQo+ID4gPj4gOTEwMjNiOS4uOGRiZGZmYyAxMDA2NDQN Cj4gPiA+PiAtLS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMNCj4gPiA+PiArKysg Yi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMNCj4gPiA+PiBAQCAtMjA4NSwxMSArMjA4 NSwxOSBAQCBpeGdiZV9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ID4g Pj4gKmRldiwNCj4gPiA+PiAgICBzdHJ1Y3QgaXhnYmVfdHhfcXVldWUgKnR4cTsNCj4gPiA+PiAg ICBzdHJ1Y3QgaXhnYmVfaHcgICAgICpodzsNCj4gPiA+PiAgICB1aW50MTZfdCB0eF9yc190aHJl c2gsIHR4X2ZyZWVfdGhyZXNoOw0KPiA+ID4+ICsgIGJvb2wgcnNfZGVmZXJyaW5nX2FsbG93ZWQ7 DQo+ID4gPj4NCj4gPiA+PiAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQo+ID4gPj4gICAgaHcg PSBJWEdCRV9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gPiA+ Pg0KPiA+ID4+ICAgIC8qDQo+ID4gPj4gKyAgICogQWNjb3JkaW5nIHRvIDgyNTk5IGFuZCB4NTQw IHNwZWNpZmljYXRpb25zIFJTIGJpdCAqbXVzdCogYmUgc2V0IG9uDQo+ID4gdGhlDQo+ID4gPj4g KyAgICogbGFzdCBkZXNjcmlwdG9yIG9mICpldmVyeSogcGFja2V0LiBUaGVyZWZvcmUgd2Ugd2ls bCBub3QgYWxsb3cgdGhlDQo+ID4gPj4gKyAgICogdHhfcnNfdGhyZXNoIGFib3ZlIDEgZm9yIGFs bCBOSUNzIG5ld2VyIHRoYW4gODI1OTguDQo+ID4gPj4gKyAgICovDQo+ID4gPj4gKyAgcnNfZGVm ZXJyaW5nX2FsbG93ZWQgPSAoaHctPm1hYy50eXBlIDw9IGl4Z2JlX21hY184MjU5OEVCKTsNCj4g PiA+PiArDQo+ID4gPj4gKyAgLyoNCj4gPiA+PiAgICAgKiBWYWxpZGF0ZSBudW1iZXIgb2YgdHJh bnNtaXQgZGVzY3JpcHRvcnMuDQo+ID4gPj4gICAgICogSXQgbXVzdCBub3QgZXhjZWVkIGhhcmR3 YXJlIG1heGltdW0sIGFuZCBtdXN0IGJlIG11bHRpcGxlDQo+ID4gPj4gICAgICogb2YgSVhHQkVf QUxJR04uDQo+ID4gPj4gQEAgLTIxMTAsNiArMjExOCw4IEBAIGl4Z2JlX2Rldl90eF9xdWV1ZV9z ZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gPiAqZGV2LA0KPiA+ID4+ICAgICAqIHRvIHRyYW5z bWl0IGEgcGFja2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGZyZWUgVFgNCj4gPiA+ PiAgICAgKiBkZXNjcmlwdG9ycy4NCj4gPiA+PiAgICAgKiBUaGUgZm9sbG93aW5nIGNvbnN0cmFp bnRzIG11c3QgYmUgc2F0aXNmaWVkOg0KPiA+ID4+ICsgICAqICB0eF9yc190aHJlc2ggbXVzdCBi ZSBsZXNzIHRoYW4gMiBmb3IgTklDcyBmb3Igd2hpY2ggUlMgZGVmZXJyaW5nIGlzDQo+ID4gPj4g KyAgICogIGZvcmJpZGRlbiAoYWxsIGJ1dCA4MjU5OCkuDQo+ID4gPj4gICAgICogIHR4X3JzX3Ro cmVzaCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLg0KPiA+ID4+ICAgICAqICB0eF9yc190aHJlc2gg bXVzdCBiZSBsZXNzIHRoYW4gdGhlIHNpemUgb2YgdGhlIHJpbmcgbWludXMgMi4NCj4gPiA+PiAg ICAgKiAgdHhfcnNfdGhyZXNoIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHR4X2ZyZWVf dGhyZXNoLg0KPiA+ID4+IEBAIC0yMTIxLDkgKzIxMzEsMjAgQEAgaXhnYmVfZGV2X3R4X3F1ZXVl X3NldHVwKHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+ICpkZXYsDQo+ID4gPj4gICAgICogV2hlbiBz ZXQgdG8gemVybyB1c2UgZGVmYXVsdCB2YWx1ZXMuDQo+ID4gPj4gICAgICovDQo+ID4gPj4gICAg dHhfcnNfdGhyZXNoID0gKHVpbnQxNl90KSgodHhfY29uZi0+dHhfcnNfdGhyZXNoKSA/DQo+ID4g Pj4gLSAgICAgICAgICAgICAgICAgIHR4X2NvbmYtPnR4X3JzX3RocmVzaCA6IERFRkFVTFRfVFhf UlNfVEhSRVNIKTsNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgdHhfY29uZi0+dHhfcnNfdGhy ZXNoIDoNCj4gPiA+PiArICAgICAgICAgICAgICAgICAgKHJzX2RlZmVycmluZ19hbGxvd2VkID8g REVGQVVMVF9UWF9SU19USFJFU0ggOiAxKSk7DQo+ID4gPj4gICAgdHhfZnJlZV90aHJlc2ggPSAo dWludDE2X3QpKCh0eF9jb25mLT50eF9mcmVlX3RocmVzaCkgPw0KPiA+ID4+ICAgICAgICAgICAg ICAgICAgICB0eF9jb25mLT50eF9mcmVlX3RocmVzaCA6IERFRkFVTFRfVFhfRlJFRV9USFJFU0gp Ow0KPiA+ID4+ICsNCj4gPiA+PiArICBpZiAoIXJzX2RlZmVycmluZ19hbGxvd2VkICYmIHR4X3Jz X3RocmVzaCA+IDEpIHsNCj4gPiA+PiArICAgICAgICAgIFBNRF9JTklUX0xPRyhFUlIsICJ0eF9y c190aHJlc2ggbXVzdCBiZSBsZXNzIHRoYW4gMiBzaW5jZSBSUw0KPiA+ICINCj4gPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIHNldCBmb3IgZXZlcnkgcGFja2V0IGZv ciB0aGlzIEhXLiAiDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHR4X3Jz X3RocmVzaD0ldSBwb3J0PSVkIHF1ZXVlPSVkKSIsDQo+ID4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgKHVuc2lnbmVkIGludCl0eF9yc190aHJlc2gsDQo+ID4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgKGludClkZXYtPmRhdGEtPnBvcnRfaWQsIChpbnQpcXVldWVfaWR4KTsNCj4gPiA+ PiArICAgICAgICAgIHJldHVybiAtKEVJTlZBTCk7DQo+ID4gPj4gKyAgfQ0KPiA+ID4+ICsNCj4g PiA+PiAgICBpZiAodHhfcnNfdGhyZXNoID49IChuYl9kZXNjIC0gMikpIHsNCj4gPiA+PiAgICAg ICAgICAgIFBNRF9JTklUX0xPRyhFUlIsICJ0eF9yc190aHJlc2ggbXVzdCBiZSBsZXNzIHRoYW4g dGhlDQo+ID4gbnVtYmVyICINCj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAib2YgVFgg ZGVzY3JpcHRvcnMgbWludXMgMi4gKHR4X3JzX3RocmVzaD0ldSAiDQo+ID4gPj4gLS0NCj4gPiA+ PiAyLjEuMA0KPg0K