From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] Always mark GEM objects as dirty when written by the CPU Date: Thu, 10 Dec 2015 09:52:01 +0100 Message-ID: <20151210085201.GA20822@phenom.ffwll.local> References: <1448973722-34522-1-git-send-email-david.s.gordon@intel.com> <20151201130438.GB20053@nuc-i3427.alporthouse.com> <565D9EC3.5020109@intel.com> <20151204095730.GK10243@phenom.ffwll.local> <5661CD3D.3070004@intel.com> <20151207082912.GX10243@phenom.ffwll.local> <566575C2.6010807@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2DFD16E0DD for ; Thu, 10 Dec 2015 00:52:06 -0800 (PST) Received: by mail-wm0-f45.google.com with SMTP id w144so13977883wmw.1 for ; Thu, 10 Dec 2015 00:52:06 -0800 (PST) Content-Disposition: inline In-Reply-To: <566575C2.6010807@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBEZWMgMDcsIDIwMTUgYXQgMTI6MDQ6MThQTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3Jv dGU6Cj4gT24gMDcvMTIvMTUgMDg6MjksIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPk9uIEZyaSwg RGVjIDA0LCAyMDE1IGF0IDA1OjI4OjI5UE0gKzAwMDAsIERhdmUgR29yZG9uIHdyb3RlOgo+ID4+ T24gMDQvMTIvMTUgMDk6NTcsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4+T24gVHVlLCBEZWMg MDEsIDIwMTUgYXQgMDE6MjE6MDdQTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4gPj4+Pk9u IDAxLzEyLzE1IDEzOjA0LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPj4+Pj5PbiBUdWUsIERlYyAw MSwgMjAxNSBhdCAxMjo0MjowMlBNICswMDAwLCBEYXZlIEdvcmRvbiB3cm90ZToKPiA+Pj4+Pj5J biB2YXJpb3VzIHBsYWNlcywgb25lIG9yIG1vcmUgcGFnZXMgb2YgYSBHRU0gb2JqZWN0IGFyZSBt YXBwZWQgaW50byBDUFUKPiA+Pj4+Pj5hZGRyZXNzIHNwYWNlIGFuZCB1cGRhdGVkLiBJbiBlYWNo IHN1Y2ggY2FzZSwgdGhlIG9iamVjdCBzaG91bGQgYmUKPiA+Pj4+Pj5tYXJrZWQgZGlydHksIHRv IGVuc3VyZSB0aGF0IHRoZSBtb2RpZmljYXRpb25zIGFyZSBub3QgZGlzY2FyZGVkIGlmIHRoZQo+ ID4+Pj4+Pm9iamVjdCBpcyBldmljdGVkIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4KPiA+Pj4+Pj4K PiA+Pj4+Pj5UaGlzIGlzIHNpbWlsYXIgdG8gY29tbWl0Cj4gPj4+Pj4+CWNvbW1pdCA1MWJjMTQw NDMxZTIzMzI4NDY2MGIxZDIyYzQ3ZGVjOWVjZGI1MjFlCj4gPj4+Pj4+CUF1dGhvcjogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPj4+Pj4+CURhdGU6ICAgTW9uIEF1 ZyAzMSAxNToxMDozOSAyMDE1ICswMTAwCj4gPj4+Pj4+CWRybS9pOTE1OiBBbHdheXMgbWFyayB0 aGUgb2JqZWN0IGFzIGRpcnR5IHdoZW4gdXNlZCBieSB0aGUgR1BVCj4gPj4+Pj4+Cj4gPj4+Pj4+ aW4gd2hpY2ggQ2hyaXMgZW5zdXJlZCB0aGF0IHVwZGF0ZXMgYnkgdGhlIEdQVSB3ZXJlIG5vdCBs b3N0IGR1ZSB0bwo+ID4+Pj4+PmV2aWN0aW9uLCBidXQgdGhpcyBwYXRjaCBhcHBsaWVzIGluc3Rl YWQgdG8gdGhlIG11bHRpcGxlIHBsYWNlcyB3aGVyZQo+ID4+Pj4+Pm9iamVjdCBjb250ZW50IGlz IHVwZGF0ZWQgYnkgdGhlIGhvc3QgQ1BVLgo+ID4+Pj4+Cj4gPj4+Pj5BcGFydCBmcm9tIHRoYXQg Y29tbWl0IHdhcyB0byBtYXNrIHVzZXJzcGFjZSBidWdzLCBoZXJlIHdlIGFyZSB1bmRlcgo+ID4+ Pj4+Y29udHJvbCBvZiB3aGVuIHRoZSBwYWdlcyBhcmUgbWFya2VkIGFuZCBoYXZlIGNob3NlbiBh IGRpZmZlcmVudAo+ID4+Pj4+cGVyLXBhZ2UgaW50ZXJmYWNlIGZvciBDUFUgd3JpdGVzIGFzIG9w cG9zZWQgdG8gcGVyLW9iamVjdC4KPiA+Pj4+Pi1DaHJpcwo+ID4+Pj4KPiA+Pj4+VGhlIHBhdHRl cm4KPiA+Pj4+CWdldF9wYWdlcygpOwo+ID4+Pj4Ja21hcChnZXRfcGFnZSgpKQo+ID4+Pj4Jd3Jp dGUKPiA+Pj4+CWt1bm1hcCgpCj4gPj4+Pm9jY3VycyBvZnRlbiBlbm91Z2ggdGhhdCBpdCBtaWdo dCBiZSB3b3J0aCBwcm92aWRpbmcgYSBjb21tb24gZnVuY3Rpb24gdG8gZG8KPiA+Pj4+dGhhdCBh bmQgbWFyayBvbmx5IHRoZSBzcGVjaWZpYyBwYWdlIGRpcnR5IChvdGhlciBjYXNlcyB0b3VjaCB0 aGUgd2hvbGUKPiA+Pj4+b2JqZWN0LCBzbyBmb3IgdGhvc2Ugd2UgY2FuIGp1c3Qgc2V0IHRoZSBv YmotPmRpcnR5IGZsYWcgYW5kIGxldCBwdXRfcGFnZXMoKQo+ID4+Pj50YWtlIGNhcmUgb2YgcHJv cGFnYXRpbmcgdGhhdCB0byBhbGwgdGhlIGluZGl2aWR1YWwgcGFnZXMpLgo+ID4+Pj4KPiA+Pj4+ QnV0IGNhbiB3ZSBiZSBzdXJlIHRoYXQgYWxsIHRoZSBmdW5jdGlvbnMgdG91Y2hlZCBieSB0aGlz IHBhdGNoIHdpbGwgb3BlcmF0ZQo+ID4+Pj5vbmx5IG9uIHJlZ3VsYXIgKGRlZmF1bHQpIEdFTSBv YmplY3RzIChpLmUuIG5vdCBwaHlzLCBzdG9sZW4sIGV0YykgJ2NvcyBzb21lCj4gPj4+Pm9mIHRo b3NlIGRvbid0IHN1cHBvcnQgcGVyLXBhZ2UgdHJhY2tpbmcuIFdoYXQgYWJvdXQgb2JqZWN0cyB3 aXRoIG5vIGJhY2tpbmcKPiA+Pj4+c3RvcmUgLS0gY2FuL3Nob3VsZCB3ZSBtYXJrIHRob3NlIGFz IGRpcnR5ICh3aGljaCB3b3VsZCBwcmV2ZW50IGV2aWN0aW9uKT8KPiA+Pj4KPiA+Pj5JIHRob3Vn aHQgb3VyIHNwZWNpYWwgb2JqZWN0cyBkbyBjbGVhciBvYmotPmRpcnR5IG9uIHB1dF9wYWdlcz8g Q2FuIHlvdQo+ID4+PnBsZWFzZSBlbGFib3JhdGUgb24geW91ciBjb25jZXJuPwo+ID4+Pgo+ID4+ PldoaWxlIHdlIGRpc2N1c3MgYWxsIHRoaXM6IEEgcGF0Y2ggYXQgdGhlIGVuZCB0byBkb2N1bWVu dCBkaXJ0eSAobWF5YmUKPiA+Pj5ldmVuIGFzIGEgZmlyc3Qgc3RhYiBhdCBrZXJuZWxkb2MgZm9y IGk5MTVfZHJtX2dlbV9idWZmZXJfb2JqZWN0KSB3b3VsZCBiZQo+ID4+PmF3ZXNvbWUuCj4gPj4+ LURhbmllbAo+ID4+Cj4gPj5JbiBnZW5lcmFsLCBvYmotPmRpcnR5IG1lYW5zIHRoYXQgKHNvbWUg b3IpIGFsbCB0aGUgcGFnZXMgb2YgdGhlIG9iamVjdAo+ID4+KG1heSkgaGF2ZSBiZWVuIG1vZGlm aWVkIHNpbmNlIGxhc3QgdGltZSB0aGUgb2JqZWN0IHdhcyByZWFkIGZyb20gYmFja2luZwo+ID4+ c3RvcmUsIGFuZCB0aGF0IHRoZSBtb2RpZmllZCBkYXRhIHNob3VsZCBiZSB3cml0dGVuIGJhY2sg cmF0aGVyIHRoYW4KPiA+PmRpc2NhcmRlZC4KPiA+Pgo+ID4+Q29kZSB0aGF0IHdvcmtzIG9ubHkg b24gZGVmYXVsdCAoZ3R0KSBHRU0gb2JqZWN0cyBtYXkgYmUgYWJsZSB0byBvcHRpbWlzZQo+ID4+ d3JpdGViYWNrcyBieSBtYXJraW5nIGluZGl2aWR1YWwgcGFnZXMgZGlydHksIHJhdGhlciB0aGFu IHRoZSBvYmplY3QgYXMgYQo+ID4+d2hvbGUuIEJ1dCBub3QgZXZlcnkgR0VNIG9iamVjdCBoYXMg YmFja2luZyBzdG9yZSwgYW5kIGV2ZW4gYW1vbmcgdGhvc2UgdGhhdAo+ID4+ZG8sIHNvbWUgZG8g bm90IHN1cHBvcnQgcGVyLXBhZ2UgZGlydHkgdHJhY2tpbmcuCj4gPj4KPiA+PlRoZXNlIGFyZSB0 aGUgR0VNIG9iamVjdHMgd2UgbWF5IHdhbnQgdG8gY29uc2lkZXI6Cj4gPj4KPiA+PjEuIERlZmF1 bHQgKGd0dCkgb2JqZWN0Cj4gPj4gICAgKiBEaXNjb250aWd1b3VzLCBsaXZlcyBpbiBwYWdlIGNh Y2hlIHdoaWxlIHBpbm5lZCBkdXJpbmcgdXNlCj4gPj4gICAgKiBCYWNrZWQgYnkgc2htZnMgKHN3 YXApCj4gPj4gICAgKiBwdXRfcGFnZXMoKSB0cmFuc2ZlcnMgZGlydHkgc3RhdHVzIGZyb20gb2Jq ZWN0IHRvIGVhY2ggcGFnZQo+ID4+ICAgICAgYmVmb3JlIHJlbGVhc2UKPiA+PiAgICAqIHNobWZz IGVuc3VyZXMgdGhhdCBkaXJ0eSB1bnBpbm5lZCBwYWdlcyBhcmUgd3JpdHRlbiBvdXQKPiA+PiAg ICAgIGJlZm9yZSBkZWFsbG9jYXRpb24KPiA+PiAgICAqIENvdWxkIG9wdGltaXNlIGJ5IG1hcmtp bmcgaW5kaXZpZHVhbCBwYWdlcyBhdCBwb2ludCBvZiB1c2UsCj4gPj4gICAgICByYXRoZXIgdGhh biBtYXJraW5nIHdob2xlIG9iamVjdCBhbmQgdGhlbiBwdXNoaW5nIHRvIGFsbCBwYWdlcwo+ID4+ ICAgICAgZHVyaW5nIHB1dF9wYWdlcygpCj4gPj4KPiA+PjIuIFBoeXMgR0VNIG9iamVjdAo+ID4+ ICAgICogTGl2ZXMgaW4gcGh5c2ljYWxseS1jb250aWd1b3VzIHN5c3RlbSBtZW1vcnksIHBpbm5l ZCBkdXJpbmcgdXNlCj4gPj4gICAgKiBCYWNrZWQgYnkgc2htZnMKPiA+PiAgICAqIGlmIG9iai0+ ZGlydHksIHB1dF9wYWdlcygpICpjb3BpZXMqIGFsbCBwYWdlcyBiYWNrIHRvIHNobWZzIHZpYQo+ ID4+ICAgICAgcGFnZSBjYWNoZSBSTVcKPiA+PiAgICAqIE5vIHBlci1wYWdlIHRyYWNraW5nLCBj YW5ub3Qgb3B0aW1pc2UKPiA+Pgo+ID4+My4gU3RvbGVuIEdFTSBvYmplY3QKPiA+PiAgICAqIExp dmVzIGluIChwaHlzaWNhbGx5LWNvbnRpZ3VvdXMpIHN0b2xlbiBtZW1vcnksIGFsd2F5cyBwaW5u ZWQKPiA+PiAgICAqIE5vIGJhY2tpbmcgc3RvcmUhCj4gPj4gICAgKiBvYmotPmRpcnR5IGlzIGly cmVsZXZhbnQgKGlnbm9yZWQpCj4gPj4gICAgKiBwdXRfcGFnZXMoKSBvbmx5IGNhbGxlZCBhdCBl bmQtb2YtbGlmZQo+ID4+ICAgICogTm8gcGVyLXBhZ2UgdHJhY2tpbmcgKG5vdCBtZWFuaW5nZnVs IGFueXdheSkKPiA+Pgo+ID4+NC4gVXNlcnB0ciBHRU0gb2JqZWN0Cj4gPj4gICAgKiBEaXNjb250 aWd1b3VzLCBsaXZlcyBpbiBwYWdlIGNhY2hlIHdoaWxlIHBpbm5lZCBkdXJpbmcgdXNlCj4gPj4g ICAgKiBCYWNrZWQgYnkgdXNlciBwcm9jZXNzIG1lbW9yeSAod2hpY2ggbWF5IHRoZW4gbWFwIHRv IHNvbWUKPiA+PiAgICAgIGFyYml0cmFyeSBmaWxlIG1hcHBpbmc/KQo+ID4+ICAgICogcHV0X3Bh Z2VzKCkgdHJhbnNmZXJzIGRpcnR5IHN0YXR1cyBmcm9tIG9iamVjdCB0byBlYWNoIHBhZ2UKPiA+ PiAgICAgIGJlZm9yZSByZWxlYXNlCj4gPj4gICAgKiBkaXJ0eSBwYWdlcyBhcmUgc3RpbGwgcmVz aWRlbnQgaW4gdXNlciBzcGFjZSwgY2FuIGJlIHN3YXBwZWQKPiA+PiAgICAgIG91dCB3aGVuIG5v dCBwaW5uZWQKPiA+PiAgICAqIENvdWxkIG9wdGltaXNlIGJ5IG1hcmtpbmcgaW5kaXZpZHVhbCBw YWdlcyBhdCBwb2ludCBvZiB1c2UsCj4gPj4gICAgICByYXRoZXIgdGhhbiBtYXJraW5nIHdob2xl IG9iamVjdCBhbmQgdGhlbiBwdXNoaW5nIHRvIGFsbCBwYWdlcwo+ID4+ICAgICAgZHVyaW5nIHB1 dF9wYWdlcygpCj4gPj4KPiA+PkFyZSB0aGVyZSBhbnkgbW9yZT8KPiA+Pgo+ID4+R2l2ZW4gdGhp cyBkaXZlcnNpdHksIGl0IG1heSBiZSB3b3J0aCBhZGRpbmcgYSBkaXJ0eV9wYWdlKCkgdmZ1bmMs IHNvIHRoYXQKPiA+PmZvciB0aG9zZSBzaXR1YXRpb25zIHdoZXJlIGEgc2luZ2xlIHBhZ2UgaXMg ZGlydGllZCBBTkQgdGhlIG9iamVjdCB0eXBlCj4gPj5zdXBwb3J0cyBwZXItcGFnZSB0cmFja2lu Zywgd2UgY2FuIHRha2UgYWR2YW50YWdlIG9mIHRoaXMgdG8gcmVkdWNlIGNvcHlpbmcuCj4gPj5G b3Igb2JqZWN0cyB0aGF0IGRvbid0IHN1cHBvcnQgcGVyLXBhZ2UgdHJhY2tpbmcsIHRoZSBpbXBs ZW1lbnRhdGlvbiB3b3VsZAo+ID4+anVzdCBzZXQgb2JqLT5kaXJ0eS4KPiA+Pgo+ID4+Rm9yIGV4 YW1wbGU6Cj4gPj4gICAgIHZvaWQgKCpkaXJ0eV9wYWdlKShvYmosIHBhZ2Vubyk7Cj4gPj5wb3Nz aWJseSB3aXRoIHRoZSBhZGRpdGlvbmFsIHNlbWFudGljIHRoYXQgcGFnZW5vID09IC0xIG1lYW5z ICdkaXJ0eSB0aGUKPiA+Pndob2xlIG9iamVjdCcuCj4gPj4KPiA+PkEgY29udmVuaWVudCBmdXJ0 aGVyIGZhY2lsaXR5IHdvdWxkIGJlOgo+ID4+ICAgICBzdHJ1Y3QgcGFnZSAqaTkxNV9nZW1fb2Jq ZWN0X2dldF9kaXJ0eV9wYWdlKG9iaiwgcGFnZW5vKTsKPiA+PndoaWNoIGlzIGp1c3QgbGlrZSBp OTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoKSBidXQgd2l0aCB0aGUgYWRkaXRpb25hbCBlZmZlY3QK PiA+Pm9mIG1hcmtpbmcgdGhlIHJldHVybmVkIHBhZ2UgZGlydHkgKGJ5IGNhbGxpbmcgdGhlIGFi b3ZlIHZmdW5jKS4KPiA+PltBc2lkZTogY2FuIHdlIGNhbGwgc2V0X3BhZ2VfZGlydHkoKSBvbiBh IG5vbi1zaG1mcy1iYWNrZWQgcGFnZT9dLgo+ID4+Cj4gPj5UaGlzIG1lYW5zIHRoYXQgaW4gYWxs IHRoZSBwbGFjZXMgd2hlcmUgSSBhZGRlZCAnb2JqLT5kaXJ0eSA9IDEnIGFmdGVyIGEKPiA+Pmt1 bm1hcCgpIGNhbGwsIHdlIHdvdWxkIGluc3RlYWQganVzdCBjaGFuZ2UgdGhlIGVhcmxpZXIgZ2V0 X3BhZ2UoKSB0bwo+ID4+Z2V0X2RpcnR5X3BhZ2UoKSBpbnN0ZWFkLCB3aGljaCBwcm92aWRlcyBi ZXR0ZXIgbGF5ZXJpbmcuCj4gPj4KPiA+PlRvZ2V0aGVyIHRoZXNlIGNoYW5nZXMgbWVhbiB0aGF0 IG9iai0+ZGlydHkgd291bGQgdGhlbiBiZSBhIHB1cmVseSBwcml2YXRlCj4gPj5tZW1iZXIgZm9y IHVzZSBieSBpbXBsZW1lbnRhdGlvbnMgb2YgZ2V0X3BhZ2VzL3B1dF9wYWdlcygpLgo+ID4+Cj4g Pj5PcGluaW9ucz8KPiA+Cj4gPkhtLCBJIHRob3VnaHQgd2UndmUgYmVlbiBjYXJlZnVsIHdpdGgg Y2hlY2tpbmcgdGhhdCBhbiBvYmplY3QgaXMgc29tZWhvdwo+ID5iYWNrZWQgYnkgc3RydWN0IHBh Z2VzLCBhbmQgb25seSB1c2UgdGhlIHBhZ2Utd2lzZSBhY2Nlc3MgaWYgdGhhdCdzIHRoZQo+ID5j YXNlLiBCdXQgbG9va2luZyBhdCB0aGUgZXhlY2J1ZiByZWxvY2F0ZSBjb2RlIHdlJ3ZlIHByb2Jh Ymx5IGFscmVhZHkKPiA+c2NyZXdlZCB0aGlzIHVwLCBvciBhdCBsZWFzdCB3aWxsIHdoZW4gd2Ug ZXhwb3NlIHN0b2xlbiB0byB1c2Vyc3BhY2UuCj4gPlVzZXJwdHIgc2hvdWxkIHN0aWxsIHdvcmsg KHNpbmNlIHVsdGltYXRlbHkgaXQncyBzdHJ1Y3QgcGFnZSBiYWNrZWQpLCBhbmQKPiA+cGh5cyBn ZW0gb2JqZWN0IGRvZXNuJ3QgbWF0dGVyIChpZiB5b3UgYnV0IHJlbG9jcyBpbnRvIHlvdXIgY3Vy c29yIG9uCj4gPmdlbjItNC4wIHlvdSBnZXQgYWxsIHRoZSBwaWVjZXMpLiBJIHRoaW5rIHN0ZXAg b25lIHdvdWxkIGJlIG1vcmUgbmFzdHkKPiA+dGVzdCBjb3ZlcmFnZSwgYXQgbGVhc3QgZm9yIHRo ZSBleGVjYnVmIHBhdGguCj4gPgo+ID5UaGUgb3RoZXIgcGFnZS13aXNlIGFjY2VzcyBwYXRoIHNl ZW0gYWxsIGludGVybmFsLCBzbyBJJ20gbXVjaCBsZXNzCj4gPndvcnJpZWQgYWJvdXQgdGhvc2Uu Cj4gPi1EYW5pZWwKPiAKPiBTbyBkb2VzIHRoaXMgbWVhbiB0aGF0IGk5MTVfcGFnZXNfY3JlYXRl X2Zvcl9zdG9sZW4oKSBpc24ndCByZWFsbHkgZG9pbmcKPiB3aGF0IGl0IHNheXM/IEFmdGVyIHRo YXQgZnVuY3Rpb24gaGFzIGJlZW4gY2FsbGVkLCBvYmotPnBhZ2VzIGlzIGZpbGxlZCBpbiAtCj4g YnV0IGlzIGl0IHRoZW4gdmFsaWQgdG8gY2FsbCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoKSA/ Cj4gVGhhdCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgKHByZWV4aXN0aW5nKSBlbnRyeSBpbiB0 aGUgc3lzdGVtIHBhZ2UgdGFibGVzCj4gZm9yIHRoZSBzcGVjaWZpZWQgcGFnZSwgYnV0IGlzbid0 IHRoZSBhbm9tYWxvdXMgdGhpbmcgYWJvdXQgc3RvbGVuIG1lbW9yeQo+IHRoZSBmYWN0IHRoYXQg dGhlIGtlcm5lbCBkb2Vzbid0IGtub3cgYWJvdXQgaXQgYW5kIGRvZXNuJ3QgaW5jbHVkZSBpdCBp biBpdHMKPiBwYWdlIHRhYmxlcyBhdCBhbGw/CgpXZSB1c2Ugc2cgdGFibGVzIGFzIGEgZHVhbC1w dXJwb3NlIHRoaW5nLCBib3RoIHRvIGxvb2sgdXAgc3RydWN0IHBhZ2VzIGFuZAp0byBnZXQgYXQg dGhlIGRldmljZSBkbWEgYWRkcmVzcy4gRm9yIHN0b2xlbiB3ZSBvbmx5IGZpbGwgb3V0IG9uZSBz aWRlIG9mCnRoaXMgdGhvdWdoLCBzbyBpdCdzIG5vdCBsZWdhbCB0byBjYWxsIGdldF9wYWdlIG9u IGl0LgoKPiBGb3Iga21hcCBwdXJwb3Nlcywgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdGhlICdzdHJ1 Y3QgcGFnZScgYXMgd2UgY291bGQgdXNlCj4ga21hcF9hdG9taWNfcGZuKCkgaW5zdGVhZC4gU28g bWF5YmUgdG8gbWFrZSBzdG9sZW4gb2JqZWN0cyB3b3JrIGluIGdlbmVyYWwKPiB3aXRob3V0IGV2 ZXJ5dGhpbmcgaGF2aW5nIHRvIGtub3cgdGhleSdyZSBkaWZmZXJlbnQsIHdlIHdvdWxkIG5lZWQg dG8gbW92ZQo+IHRoZSBrbWFwIG9wZXJhdGlvbiBpbnRvIHRoZSB2ZnVuYyBhcyB3ZWxsPyBUaGF0 IHdvdWxkIG1lYW4gdGhlIHZmdW5jIHdvdWxkCj4gYmUgc29tZXRoaW5nIGxpa2Ugb2JqLT5rbWFw X3BhZ2Uob2JqLCBwYWdlbm8sIGRpcnR5KSByZXR1cm5pbmcgdGhlIHZhZGRyIG9mCj4gdGhlIG1h cHBlZCBwYWdlLgoKQmVjYXVzZSBvZiB0aGlzIGF3ZXNvbWUgc3R1ZmYgaHcgZW5naW5lZXJzIGRp ZCB0byBpbXBsZW1lbnQgY29udGVudApwcm90ZWN0aW9uIHRoZSBjcHUgaXMgZm9yYmlkZGVuIGZy b20gYWNjZXNzaW5nIHN0b2xlbiA6KCBXb3VsZCBpbmRlZWQgbWFrZQp0aGluZ3Mgc2ltcGxlciBp ZiB3ZSBjb3VsZCBkbyB0aGF0IC0gb25jZSB3ZSBldmVuIGNvbnNpZGVyZWQgdG8ganVzdCBnaXZl CnRoZSBlbnRpcmUgc3RvbGVuIHJhbmdlIGJhY2sgdG8gdGhlIGxpbnV4IHBhZ2UgYWxsb2NhdG9y IHVzaW5nIG1lbW9yeQpob3RwbHVnLiBVbmZvcnR1bmF0ZWx5IFN0b2xlbiBJcyBTcGVjaWFsIGFu ZCB0aGVyZSdzIG5vIHdheSB0byBhdm9pZCB0aGF0LgoKPiBUaGlzIGxvb2tzIGxpa2UgaXQgd2ls bCBuZWVkIGEgYml0IG1vcmUgc3R1ZHkgYW5kIGRlc2lnbiBzbyBwZXJoYXBzIHdlIGNvdWxkCj4g anVzdCB0YWtlIHRoZSBxdWljayBmaXggb2YgbWFya2luZyB3aG9sZSBvYmplY3RzIGRpcnR5IGZv ciBub3cgKHdoaWNoIHdpbGwKPiBhdCBsZWFzdCBnaXZlICpjb3JyZWN0KiBiZWhhdmlvdXIpIGFu ZCB0aGVuIHdvcmsgb3V0IGhvdyB0byBhdm9pZCBtYXJraW5nCj4gd2hvbGUgb2JqZWN0cyBkaXJ0 eSB3aGVyZSBwb3NzaWJsZS4KClRiaCBJJ3ZlIGxvc3QgdHJhY2sgb2YgdGhlIHBhdGNoZXMuIEkg ZG8ga2luZGEgbGlrZSB0aGUgaWRlYSBvZgpnZXRfcGFnZV9kaXJ0eSBvciBhZGRpbmcgYSB3cml0 ZSBmbGFnIHRvIGdldF9wYWdlLiBTaW5jZSBnZXRfcGFnZSBzaG91bGQKYmUgdGhlIG9mZmljaWFs IEFQSSB0byBnZXQgYXQgcGlubmVkIHN0cnVjdCBwYWdlcyBpdCBzaG91bGQgY292ZXIgbW9zdC4g SWYKd2Ugc3RpbGwgaGF2ZSBhbnl0aGluZyBsZWZ0IGRvaW5nIGEgcmF3IGxvb3Agb3ZlciB0aGUg c2cgdGFibGUgZm9yIHBhZ2VzLApJIGd1ZXNzIHdlIGNvdWxkIHdyYXAgaXQgdXAgaW4gYW4gaTkx NSBtYWNybyB3aGljaCB0YWtlcyBhIHdyaXRlIGJvb2xlYW4sCnRvby4KLURhbmllbAotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK