From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [ANNOUNCE] 2016-Q3 release of KVMGT (Was Re: KVMGT - the implementation of ...) Date: Sun, 06 Nov 2016 23:23:58 +0800 Message-ID: <581F4B0E.5030203@intel.com> References: <547FC5DE.4010701@intel.com> <562F45B4.70004@intel.com> <56A86482.4090009@intel.com> <5711DC3B.9010102@intel.com> <578F039A.8080805@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0A7156E211 for ; Sun, 6 Nov 2016 15:27:33 +0000 (UTC) In-Reply-To: <578F039A.8080805@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: kvm@vger.kernel.org, igvt-g@lists.01.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: "Reddy, Raghuveer" , "Li, Weinan Z" , "Cowperthwaite, David J" , "Li, Susie" , "Dong, Eddie" , Zhiyuan Lv , "Zhang, Yipeng" , "Downs, Mike" , "Wang, Hongbo" List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKV2hpbGUgc3BlbmRpbmcgZWZmb3J0cyBmb3IgdXBzdHJlYW1pbmcsIHdlIGFyZSBw bGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIgdXBkYXRlIG9mIEludGVsIEdWVC1nIGZvciBLVk0u CgpJbnRlbCBHVlQtZyBmb3IgS1ZNIChhLmsuYS4gS1ZNR1QpIGlzIGEgZnVsbCBHUFUgdmlydHVh bGl6YXRpb24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZy b20gNXRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdy YXBoaWNzIHByb2Nlc3NvcnMuICBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQg Zm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMg ZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBo aWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBp biBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1v bmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuCiAgICAKUmVw b3NpdG9yaWVzOgoKLSAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1r ZXJuZWwgKDIwMTZxMy00LjMuMCBicmFuY2gpCi0gICAgUWVtdTogaHR0cHM6Ly9naXRodWIuY29t LzAxb3JnL2lndnRnLXFlbXUgKDIwMTZxMy0yLjMuMCBicmFuY2gpCgpUaGlzIHVwZGF0ZSBjb25z aXN0cyBvZjoKLSAgICBQcmVsaW1pbmFyeSBzdXBwb3J0IG5ldyBwbGF0Zm9ybTogS2FieUxha2Us IGZvciB3aW5kb3dzIE9TLCBpdCBvbmx5IHN1cHBvcnRzIFdpbjEwIFJlZFN0b25lIDY0IGJpdC4K LSAgICBXaW5kb3dzIDEwIFJlZFN0b25lIGd1ZXN0IFN1cHBvcnQKLSAgICBXaW5kb3dzIEd1ZXN0 IFFvUyBwcmVsaW1pbmFyeSBzdXBwb3J0OiAgQWRtaW5pc3RyYXRvcnMgbm93IGFyZSBhYmxlIHRv IGNvbnRyb2wgdGhlIG1heGltdW0gYW1vdW50IG9mIHZHUFUgcmVzb3VyY2UgdG8gYmUgY29uc3Vt ZWQgYnkgZWFjaCBWTSBmcm9tIHZhbHVlIDElIH4gOTklIgotICAgIERpc3BsYXkgdmlydHVhbGl6 YXRpb24gcHJlbGltaW5hcnkgc3VwcG9ydDogQmVzaWRlcyB0aGUgdHJhY2tpbmcgb2YgZGlzcGxh eSByZWdpc3RlciB2aXNpdCBpbiBndWVzdCBWTSwgcmVtb3ZpbmcgaXJyZWxhdGl2ZSBkaXNwbGF5 IHBpcGVsaW5lIGluZm8gYmV0d2VlbiBob3N0IGFuZCBndWVzdCBWTQotICAgIExpdmUgTWlncmF0 aW9uIGFuZCBzYXZldm0vcmVzdG9yZXZtIHByZWxpbWluYXJ5IHN1cHBvcnQgb24gQkRXIHdpdGgg MkQvM0Qgd29ya2xvYWQgcnVubmluZwoKS25vd24gaXNzdWVzOgotICAgQXQgbGVhc3QgMkdCIG1l bW9yeSBpcyBzdWdnZXN0ZWQgZm9yIEd1ZXN0IFZpcnR1YWwgTWFjaGluZSAod2luNy0zMi82NCwg d2luOC4xLTY0LCB3aW4xMC02NCkgdG8gcnVuIG1vc3QgM0Qgd29ya2xvYWRzCi0gICBXaW5kb3dz OCBhbmQgbGF0ZXIgV2luZG93cyBmYXN0IGJvb3QgaXMgbm90IHN1cHBvcnRlZCwgdGhlIHdvcmth cm91bmQgaXMgdG8gZGlzYWJsZSBwb3dlciBTMy9TNCBpbiBIVk0gZmlsZSBieSBhZGRpbmcgImFj cGlfUzM9MCwgYWNwaV9TND0wIgotICAgU29tZXRpbWVzIHdoZW4gZG9tMCBhbmQgZ3Vlc3QgaGFz IGhlYXZ5IHdvcmtsb2FkLCBpOTE1IGluIGRvbTAgd2lsbCB0cmlnZ2VyIGEgZmFsc2UtYWxhcm1l ZCBURFIuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2FibGUgZG9tMCBoYW5nY2hlY2sgaW4gZG9t MCBncnViIGZpbGUgYnkgYWRkaW5nICJpOTE1LmVuYWJsZV9oYW5nY2hlY2s9MCIKLSAgIFN0YWJp bGl0eTogV2hlbiBRb1MgZmVhdHVyZSBpcyBlbmFibGVkLCBXaW5kb3dzIGd1ZXN0IGZ1bGwgR1BV IHJlc2V0IGlzIG9mdGVuIHRyaWdnZXIgZHVyaW5nIE1UQkYgdGVzdC4gIFRoaXMgYnVnIHdpbGwg YmUgZml4ZWQgaW4gbmV4dCByZWxlYXNlCi0gICBXaW5kb3dzIGd1ZXN0IHJ1bm5pbmcgT3BlbkNM IGFsbG9jYXRpb25zIG9jY3VycyB0byBob3N0IGNyYXNoOyB0aGUgd29ya2Fyb3VuZCBpcyB0byBk aXNhYmxlIGxvZ2QgaW4gZG9tMCBncnViIGZpbGUgYnkgYWRkaW5nICJpOTE1LmxvZ2RfZW5hYmxl PTAiCgpQbGVhc2Ugc3Vic2NyaWJlIHRoZSBtYWlsaW5nIGxpc3Q6IGh0dHBzOi8vbGlzdHMuMDEu b3JnL21haWxtYW4vbGlzdGluZm8vaWd2dC1nCgpPZmZpY2lhbCBpR1ZULWcgcG9ydGFsOiBodHRw czovLzAxLm9yZy9pZ3Z0LWcKCk1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJj aGl0ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoK CiAgICBodHRwOi8vd3d3LmxpbnV4LWt2bS5vcmcvaW1hZ2VzL2YvZjMvMDF4MDhiLUtWTUdULWEu cGRmCiAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2Fs LXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCgoKTm90ZToKVGhlIEtWTUdUIHByb2plY3Qgc2hv dWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNoIGl0IGlzIG5vdCBh IGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9uZS4gRXh0cmEg Y2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1cmluZyBhIHN5c3Rl bSB0byB1c2UgdGhlIEtWTUdUIHByb2plY3QuCgotLQpUaGFua3MsCkppa2UKCk9uIDA3LzIwLzIw MTYgMTI6NTIgUE0sIEppa2UgU29uZyB3cm90ZToKPiBIaSBhbGwsCj4gCj4gV2UgYXJlIHBsZWFz ZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9yIEtWTS4KPiAK PiBJbnRlbCBHVlQtZyBmb3IgS1ZNIChhLmsuYS4gS1ZNR1QpIGlzIGEgZnVsbCBHUFUgdmlydHVh bGl6YXRpb24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZy b20gNXRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZeKEoiBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3Jh cGhpY3MgcHJvY2Vzc29ycy4gIEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBm b3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBk aXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhp Y3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGlu IHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9u ZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4KPiAgICAgCj4g UmVwb3NpdG9yaWVzOgo+IAo+ICAgIC0gS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcv aWd2dGcta2VybmVsICgyMDE2cTItNC4zLjAgYnJhbmNoKQo+ICAgIC0gUWVtdTogaHR0cHM6Ly9n aXRodWIuY29tLzAxb3JnL2lndnRnLXFlbXUgKDIwMTZxMi0yLjMuMCBicmFuY2gpCj4gCj4gVGhp cyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4gICAgLSBLVk1HVCBzdGFibGUgcmVsZWFzZSBmb3IgWGVv biBFMyB2NCAoQnJvYWR3ZWxsKSwgRTMgdjUoU2t5bGFrZSksIEludGVsIENvcmXihKIgcHJvY2Vz c29ycyA1dGggZ2VuZXJhdGlvbiAoQm9hZHdlbGwpICwgNnRoIGdlbmVyYXRpb24gKFNreWxha2Up Cj4gICAgLSAyRC8zRC9NZWRpYSB3b3JrbG9hZHMgY2FuIHJ1biBzaW11bHRhbmVvdXNseSBpbiBt dWx0aXBsZSBndWVzdHMKPiAKPiBLbm93biBpc3N1ZXM6Cj4gICAgLSBBdCBsZWFzdCAyR0IgbWVt b3J5IGlzIHN1Z2dlc3RlZCBmb3IgR3Vlc3QgVmlydHVhbCBNYWNoaW5lIChWTSkgdG8gcnVuIG1v c3QgM0Qgd29ya2xvYWRzLgo+ICAgIC0gVXNpbmcgV2luZG93cyBNZWRpYSBQbGF5ZXIgcGxheSB2 aWRlb3MgbWF5IGNhdXNlIGhvc3QgY3Jhc2guIFVzaW5nIFZMQyB0byBwbGF5IC5vZ2cgZmlsZSBt YXkgY2F1c2UgbW9zYWljIG9yIHNsb3cgcmVzcG9uc2UuCj4gICAgLSBTdWdnZXN0IHRvIFggd2lu ZG93IG1vZGUgbGlrZSB4aW5pdCBpbnN0ZWFkIG9mIGxpZ2h0ZG0gdG8gbGF1bmNoIGhvc3QgaWYg cnVubmluZyBoZWF2eSB3b3JrbG9hZCBpbiBib3RoIGd1ZXN0IGFuZCBob3N0IGZvciBtb3JlIHRo YW4gNiBob3Vycy4KPiAgICAtIENoYW5nZSBpOTE1LnByZWVtcHRpb25fcG9saWN5PTMgaW4gaG9z dCBrZXJuZWwgY21kbGluZSwgaWYgeW91IHNlZSBwcm9ibGVtIHdoZW4gcnVubmluZyBoZWF2eSAz RCB3b3JrbG9hZHMgaW4gbXVsdGlwbGUgR3Vlc3RzICg+PTMpIGluIHNvbWUgZXh0cmVtZSBzdHJl c3MgY29uZmlndXJhdGlvbi4KPiAKPiAKPiBQbGVhc2Ugc3Vic2NyaWJlIHRvIGpvaW4gdGhlIG1h aWxpbmcgbGlzdDoKPiAgICAtIGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8v aWd2dC1nCj4gCj4gT2ZmaWNpYWwgaUdWVC1nIHBvcnRhbDoKPiAgICAtIGh0dHBzOi8vMDEub3Jn L2lndnQtZwo+IAo+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0ZWN0 dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPiAKPiAg ICAgaHR0cDovL3d3dy5saW51eC1rdm0ub3JnL2ltYWdlcy9mL2YzLzAxeDA4Yi1LVk1HVC1hLnBk Zgo+ICAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2Fs LXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4gCj4gCj4gTm90ZToKPiBUaGUgS1ZNR1QgcHJv amVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2ggaXQg aXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQgb25l LiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5n IGEgc3lzdGVtIHRvIHVzZSB0aGUgS1ZNR1QgcHJvamVjdC4KPiAKPiAKPiAtLQo+IFRoYW5rcywK PiBKaWtlCj4gCj4gT24gMDQvMTYvMjAxNiAwMjozMSBQTSwgSmlrZSBTb25nIHdyb3RlOgo+PiBI aSBhbGwsCj4+Cj4+IFdlIGFyZSBwbGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIgdXBkYXRlIG9m IEludGVsIEdWVC1nIGZvciBLVk0uCj4+Cj4+IEludGVsIEdWVC1nIGZvciBLVk0gKGEuay5hLiBL Vk1HVCkgaXMgYSBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVk IHBhc3MtdGhyb3VnaCwgc3RhcnRpbmcgZnJvbSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRN KSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4KPj4KPj4KPj4gUmVwb3NpdG9yaWVzOgo+Pgo+PiBLZXJuZWw6IGh0 dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1rZXJuZWwgKDIwMTZxMS00LjMuMCBicmFuY2gp Cj4+IFFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICgyMDE2cTEtMi4z LjAgYnJhbmNoKQo+Pgo+Pgo+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4KPj4gLSBLVk1H VCBub3cgaGFzIGJldHRlciBzdXBwb3J0IGZvciA1dGggZ2VuZXJhdGlvbiAoQnJvYWR3ZWxsKSBJ bnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzLCBYZW9uKFIpIEUzIHY0Cj4+IC0gQSBuZXcgZmVhdHVy ZSwgUUVNVSBjb21wb3NpdG9yIGRpc3BsYXkgaXMgYWRkZWQgdG8gc3VwcG9ydCBkaXNwbGF5IFZN IGluIFFFTVUgd2luZG93LiAodXNlIGk5MTUuZW5hYmxlX3ZndGJ1ZmZlcj0xIGluIGtlcm5lbCBj b21tYW5kIGxpbmUgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZSwgZGlzYWJsZWQgYnkgZGVmYXVsdCwg ZGV0YWlscyBwbGVhc2UgcmVmZXIgdG8gdGhlIFNldHVwIEd1aWRlKQo+PiAtIDJELzNEL01lZGlh IHdvcmtsb2FkcyBjYW4gYmUgcnVuIHNpbXVsdGFuZW91c2x5IGluIG11bHRpcGxlIGd1ZXN0cy4K Pj4gLSBTdXBwb3J0IGJvdGggV2luZG93cyBHdWVzdCBhbmQgTGludXggR3Vlc3QoV2luNy0zMiwg V2luNy02NCwgV2luOC4xLTY0LCBVYnVudHUxNC4wNC02NCkKPj4gLSBIb3N0IExpbnV4IGtlcm5l bCBoYXMgYmVlbiB1cGdyYWRlZCBmcm9tIDQuMi4wIHRvIDQuMy4wIChiYXNlZCBvbiBkcm0taW50 ZWwpCj4+IC0gS1ZNR1QgaGFzIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIDZ0aCBnZW5lcmF0aW9u IChTa3lsYWtlKSBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzLgo+Pgo+Pgo+PiBLbm93biBpc3N1 ZXM6Cj4+Cj4+ICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRv IHJ1biBtb3N0IDNEIHdvcmtsb2Fkcy4KPj4gICAgLSBPbiBzb21lIHBhcnRpY3VsYXIgcGxhdGZv cm0sIGFzc2lnbmluZyA+MkcgbWVtb3J5IHRvIFZNIHdpbGwgY2F1c2UgTGludXggVk0gZmFpbGVk IHRvIGJvb3QgdXAgYW5kIFdpbmRvd3MgVk0gZmFpbGVkIHRvIGxvYWQgR0ZYIGRyaXZlci4KPj4g ICAgLSBVc2luZyBWTEMgdG8gcGxheSAub2dnIGZpbGUgbWF5IGNhdXNlIG1vc2FpYyBvciBzbG93 IHJlc3BvbnNlLgo+PiAgICAtIFJ1bm5pbmcgaGVhdnkgM0Qgd29ya2xvYWRzIGluIG11bHRpcGxl IGd1ZXN0cyBmb3IgY291cGxlIG9mIGhvdXJzIG1heSBjYXVzZSBzdGFiaWxpdHkgaXNzdWUuKHVz ZSBpOTE1LnByZWVtcHRpb25fcG9saWN5PTMgaW4gaG9zdCBrZXJuZWwgY21kIGxpbmUgY2FuIHdv cmsgYXJvdW5kIHRoaXMgc3RhYmlsaXR5IGlzc3VlKQo+Pgo+Pgo+PiBQbGVhc2Ugc3Vic2NyaWJl IHRvIGpvaW4gdGhlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3Z0LWcKPj4KPj4gT2ZmaWNpYWwgaUdWVC1nIHBvcnRhbDogaHR0cHM6Ly8wMS5v cmcvaWd2dC1nCj4+Cj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0 ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPj4K Pj4KPj4gICAgIGh0dHA6Ly93d3cubGludXgta3ZtLm9yZy9pbWFnZXMvZi9mMy8wMXgwOGItS1ZN R1QtYS5wZGYKPj4gICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90 ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4KPj4KPj4gVGhlIHVwc3RyZWFt aW5nIGVmZm9ydCBvZiBpR1ZULWcgcHJvamVjdCBpcyBvbmdvaW5nIGVsc2V3aGVyZSwgbm90IGFz IGEgcGFydCBvZiB0aGlzIHJlbGVhc2UuCj4+Cj4+Cj4+IE5vdGU6Cj4+Cj4+IFRoZSBLVk1HVCBw cm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBp dCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBv bmUuIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJp bmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBLVk1HVCBwcm9qZWN0Lgo+Pgo+Pgo+PiAtLQo+PiBUaGFu a3MsCj4+IEppa2UKPj4KPj4gT24gMDEvMjcvMjAxNiAwMjozMiBQTSwgSmlrZSBTb25nIHdyb3Rl Ogo+Pj4gSGkgYWxsLAo+Pj4KPj4+IFdlIGFyZSBwbGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIg dXBkYXRlIG9mIEludGVsIEdWVC1nIGZvciBLVk0uCj4+Pgo+Pj4gSW50ZWwgR1ZULWcgZm9yIEtW TSAoYS5rLmEuIEtWTUdUKSBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdp dGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIElu dGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiAg QSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBh cnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBU aGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEg Vk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGlj YWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0 dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5Lgo+Pj4KPj4+IFJlcG9zaXRvcmllczoKPj4+Cj4+ PiAJS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGcta2VybmVsICgyMDE1cTQt NC4yLjAgYnJhbmNoKQo+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1x ZW11IChrdm1ndF9wdWJsaWMyMDE1cTQgYnJhbmNoKQo+Pj4KPj4+IFRoaXMgdXBkYXRlIGNvbnNp c3RzIG9mOgo+Pj4KPj4+IAktIEtWTUdUIG5vdyBoYXMgYmV0dGVyIHN1cHBvcnQgZm9yIDV0aCBn ZW5lcmF0aW9uIChCcm9hZHdlbGwpIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMsIDJELzNEL01l ZGlhIHdvcmtsb2FkcyBjYW4gYmUgcnVuIHNpbXVsdGFuZW91c2x5IGluIG11bHRpcGxlIGd1ZXN0 cy4KPj4+IAktIEhvc3QgTGludXgga2VybmVsIGhhcyBiZWVuIHVwZ3JhZGVkIGZyb20gMy4xOC4w IHRvIDQuMi4wIChiYXNlZCBvbiBkcm0taW50ZWwpCj4+Pgo+Pj4gTmV4dCB1cGRhdGUgd2lsbCBi ZSBhcm91bmQgZWFybHkgQXByaWwsIDIwMTYuCj4+Pgo+Pj4gS25vd24gaXNzdWVzOgo+Pj4KPj4+ IAktIEF0IGxlYXN0IDJHQiBtZW1vcnkgaXMgc3VnZ2VzdGVkIGZvciBWTSB0byBydW4gbW9zdCAz RCB3b3JrbG9hZHMuCj4+PiAJLSBVc2luZyBWTEMgdG8gcGxheSAub2dnIGZpbGUgbWF5IGNhdXNl IG1vc2FpYyBvciBzbG93IHJlc3BvbnNlLgo+Pj4gCS0gUnVubmluZyBoZWF2eSAzRCB3b3JrbG9h ZHMgaW4gbXVsdGlwbGUgZ3Vlc3RzIGZvciBjb3VwbGUgb2YgaG91cnMgbWF5IGNhdXNlIHN0YWJp bGl0eSBpc3N1ZS4KPj4+Cj4+PiBPZmZpY2lhbCBpR1ZULWcgcG9ydGFsOiBodHRwczovLzAxLm9y Zy9pZ3Z0LWcKPj4+IFBsZWFzZSBzdWJzY3JpYmUgdGhlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9s aXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcKPj4+Cj4+PiBNb3JlIGluZm9ybWF0 aW9uIGFib3V0IGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSBhbmQgb3RoZXJzIGFib3V0IEludGVs IEdWVC1nLCBjYW4gYmUgZm91bmQgYXQ6Cj4+Pgo+Pj4gCWh0dHA6Ly93d3cubGludXgta3ZtLm9y Zy9pbWFnZXMvZi9mMy8wMXgwOGItS1ZNR1QtYS5wZGYKPj4+IAlodHRwczovL3d3dy51c2VuaXgu b3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFu Cj4+Pgo+Pj4KPj4+IE5vdGU6IFRoZSBLVk1HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVk IGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0 IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRh a2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBLVk1H VCBwcm9qZWN0Lgo+Pj4KPj4+Cj4+PiAtLQo+Pj4gVGhhbmtzLAo+Pj4gSmlrZQo+Pj4KPj4+IE9u IDEwLzI3LzIwMTUgMDU6MzYgUE0sIEppa2UgU29uZyB3cm90ZToKPj4+PiBIaSBhbGwsCj4+Pj4K Pj4+PiBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbm90aGVyIHVwZGF0ZSBvZiBJbnRlbCBH VlQtZyBmb3IgS1ZNLgo+Pj4+Cj4+Pj4gSW50ZWwgR1ZULWcgaXMgYSBmdWxsIEdQVSB2aXJ0dWFs aXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3RhcnRpbmcgZnJv bSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3Jh cGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZv ciBlYWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRp cmVjdGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGlj cyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4g cGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25n IHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5LiBLVk0gaXMgc3Vw cG9ydGVkIGJ5IEludGVsIEdWVC1nKGEuay5hLiBLVk1HVCkuCj4+Pj4KPj4+Pgo+Pj4+IFJlcG9z aXRvcmllcwo+Pj4+Cj4+Pj4gICAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9p Z3Z0Zy1rZXJuZWwgKDIwMTVxMy0zLjE4LjAgYnJhbmNoKQo+Pj4+ICAgICAgUWVtdTogaHR0cHM6 Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXFlbXUgKGt2bWd0X3B1YmxpYzIwMTVxMyBicmFuY2gp Cj4+Pj4KPj4+Pgo+Pj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+Pj4+Cj4+Pj4gICAgICAt IEtWTUdUIGlzIG5vdyBtZXJnZWQgd2l0aCBYZW5HVCBpbiB1bmlmaWVkIHJlcG9zaXRvcmllcyhr ZXJuZWwgYW5kIHFlbXUpLCBidXQgY3VycmVudGx5Cj4+Pj4gICAgICAgIGRpZmZlcmVudCBicmFu Y2hlcyBmb3IgcWVtdS4gIEtWTUdUIGFuZCBYZW5HVCBzaGFyZSBzYW1lIGlHVlQtZyBjb3JlIGxv Z2ljLgo+Pj4+ICAgICAgLSBQUEdUVCBzdXBwb3J0ZWQsIGhlbmNlIHRoZSBXaW5kb3dzIGd1ZXN0 IHN1cHBvcnQKPj4+PiAgICAgIC0gS1ZNR1Qgbm93IHN1cHBvcnRzIGJvdGggNHRoIGdlbmVyYXRp b24gKEhhc3dlbGwpIGFuZCA1dGggZ2VuZXJhdGlvbiAoQnJvYWR3ZWxsKSBJbnRlbCBDb3JlKFRN KSBwcm9jZXNzb3JzCj4+Pj4gICAgICAtIDJELzNEL01lZGlhIGRlY29kaW5nIGhhdmUgYmVlbiB2 YWxpZGF0ZWQgb24gVWJ1bnR1IDE0LjA0IGFuZCBXaW5kb3dzNy9XaW5kb3dzIDguMQo+Pj4+Cj4+ Pj4gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSmFuLCAyMDE2Lgo+Pj4+Cj4+Pj4g S25vd24gaXNzdWVzOgo+Pj4+Cj4+Pj4gICAgICAtIEF0IGxlYXN0IDJHQiBtZW1vcnkgaXMgc3Vn Z2VzdGVkIGZvciBWTSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMuCj4+Pj4gICAgICAtIDNEbWFy azA2IHJ1bm5pbmcgaW4gV2luZG93cyBWTSBtYXkgaGF2ZSBzb21lIHN0YWJpbGl0eSBpc3N1ZS4K Pj4+PiAgICAgIC0gVXNpbmcgVkxDIHRvIHBsYXkgLm9nZyBmaWxlIG1heSBjYXVzZSBtb3NhaWMg b3Igc2xvdyByZXNwb25zZS4KPj4+Pgo+Pj4+Cj4+Pj4gUGxlYXNlIHN1YnNjcmliZSB0aGUgbWFp bGluZyBsaXN0IHRvIHJlcG9ydCBCVUdzLCBkaXNjdXNzLCBhbmQvb3IgY29udHJpYnV0ZToKPj4+ Pgo+Pj4+ICAgICAgaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcK Pj4+Pgo+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dyb3VuZCwg YXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0KG1heSBub3QgYmUgdXAtdG8tZGF0ZSk6 Cj4+Pj4KPj4+PiAgICAgIGh0dHBzOi8vMDEub3JnL2lndnQtZwo+Pj4+ICAgICAgaHR0cDovL3d3 dy5saW51eC1rdm0ub3JnL2ltYWdlcy9mL2YzLzAxeDA4Yi1LVk1HVC1hLnBkZgo+Pj4+ICAgICAg aHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJlbmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9u cy9wcmVzZW50YXRpb24vdGlhbgo+Pj4+Cj4+Pj4KPj4+PiBOb3RlOgo+Pj4+Cj4+Pj4gVGhlIEtW TUdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBz dWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRl cmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25m aWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIEtWTUdUIHByb2plY3QuCj4+Pj4KPj4+Pgo+Pj4+ IC0tCj4+Pj4gVGhhbmtzLAo+Pj4+IEppa2UKPj4+Pgo+Pj4+IE9uIDEyLzA0LzIwMTQgMTA6MjQg QU0sIEppa2UgU29uZyB3cm90ZToKPj4+Pj4gSGkgYWxsLAo+Pj4+Pgo+Pj4+PiAgICBXZSBhcmUg cGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgZmlyc3QgcmVsZWFzZSBvZiBLVk1HVCBwcm9qZWN0LiBL Vk1HVCBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgSW50ZWwgR1ZULWcgdGVjaG5vbG9neSwgYSBm dWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbi4gVW5kZXIgSW50ZWwgR1ZULWcsIGEgdmly dHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9m IHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNh cGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3 aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBh dGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBvZiBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5k IHNoYXJpbmcgY2FwYWJpbGl0eS4KPj4+Pj4KPj4+Pj4KPj4+Pj4gICAgS1ZNR1QgaXMgc3RpbGwg aW4gdGhlIGVhcmx5IHN0YWdlOgo+Pj4+Pgo+Pj4+PiAgICAgLSBCYXNpYyBmdW5jdGlvbnMgb2Yg ZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gd29ya3MsIGd1ZXN0IGNhbiBzZWUgYSBmdWxsLWZlYXR1 cmVkIHZHUFUuCj4+Pj4+ICAgICAgIFdlIHJhbiBzZXZlcmFsIDNEIHdvcmtsb2FkcyBzdWNoIGFz IGxpZ2h0c21hcmssIG5leHVpeiwgdXJiYW50ZXJyb3IgYW5kIHdhcnNvdy4KPj4+Pj4KPj4+Pj4g ICAgIC0gT25seSBMaW51eCBndWVzdCBzdXBwb3J0ZWQgc28gZmFyLCBhbmQgUFBHVFQgbXVzdCBi ZSBkaXNhYmxlZCBpbiBndWVzdCB0aHJvdWdoIGEKPj4+Pj4gICAgICAga2VybmVsIHBhcmFtZXRl cihzZWUgUkVBRE1FLmt2bWd0IGluIFFFTVUpLgo+Pj4+Pgo+Pj4+PiAgICAgLSBUaGlzIGRyb3Ag YWxzbyBpbmNsdWRlcyBzb21lIFhlbiBzcGVjaWZpYyBjaGFuZ2VzLCB3aGljaCB3aWxsIGJlIGNs ZWFuZWQgdXAgbGF0ZXIuCj4+Pj4+Cj4+Pj4+ICAgICAtIE91ciBlbmQgZ29hbCBpcyB0byB1cHN0 cmVhbSBib3RoIFhlbkdUIGFuZCBLVk1HVCwgd2hpY2ggc2hhcmVzIH45MCUgbG9naWMgZm9yIHZH UFUKPj4+Pj4gICAgICAgZGV2aWNlIG1vZGVsICh3aWxsIGJlIHBhcnQgb2YgaTkxNSBkcml2ZXIp LCB3aXRoIG9ubHkgZGlmZmVyZW5jZSBpbiBoeXBlcnZpc29yCj4+Pj4+ICAgICAgIHNwZWNpZmlj IHNlcnZpY2VzCj4+Pj4+Cj4+Pj4+ICAgICAtIGluc3VmZmljaWVudCB0ZXN0IGNvdmVyYWdlLCBz byBwbGVhc2UgYmVhciB3aXRoIHN0YWJpbGl0eSBpc3N1ZXMgOikKPj4+Pj4KPj4+Pj4KPj4+Pj4K Pj4+Pj4gICAgVGhlcmUgYXJlIHRoaW5ncyBuZWVkIHRvIGJlIGltcHJvdmVkLCBlc3AuIHRoZSBL Vk0gaW50ZXJmYWNpbmcgcGFydDoKPj4+Pj4KPj4+Pj4gCTEJYSBkb21pZCB3YXMgYWRkZWQgdG8g ZWFjaCBLVk1HVCBndWVzdAo+Pj4+Pgo+Pj4+PiAJCUFuIElEIGlzIG5lZWRlZCBmb3IgZm9yZWdy b3VuZCBPUyBzd2l0Y2hpbmcsIGUuZy4KPj4+Pj4KPj4+Pj4gCQkJIyBlY2hvIDxkb21pZD4JPgkv c3lzL2tlcm5lbC92Z3QvY29udHJvbC9mb3JlZ3JvdW5kX3ZtCj4+Pj4+Cj4+Pj4+IAkJZG9taWQg MCBpcyByZXNlcnZlZCBmb3IgaG9zdCBPUy4KPj4+Pj4KPj4+Pj4KPj4+Pj4gICAgCTIJU1JDVSB3 b3JrYXJvdW5kcy4KPj4+Pj4KPj4+Pj4gCQlTb21lIEtWTSBmdW5jdGlvbnMsIHN1Y2ggYXM6Cj4+ Pj4+Cj4+Pj4+IAkJCQlrdm1faW9fYnVzX3JlZ2lzdGVyX2Rldgo+Pj4+PiAJCQkJaW5zdGFsbF9u ZXdfbWVtc2xvdHMKPj4+Pj4KPj4+Pj4gCQltdXN0IGJlIGNhbGxlZCAqd2l0aG91dCogJmt2bS0+ c3JjdSByZWFkLWxvY2tlZC4gT3RoZXJ3aXNlIGl0IGhhbmdzLgo+Pj4+Pgo+Pj4+PiAJCUluIEtW TUdULCB3ZSBuZWVkIHRvIHJlZ2lzdGVyIGFuIGlvZGV2IG9ubHkgKmFmdGVyKiBCQVIgcmVnaXN0 ZXJzIGFyZQo+Pj4+PiAJCXdyaXR0ZW4gYnkgZ3Vlc3QuIFRoYXQgbWVhbnMsIHdlIGFscmVhZHkg aGF2ZSAma3ZtLT5zcmN1IGhvbGQgLQo+Pj4+PiAJCXRyYXBwaW5nL2VtdWxhdGluZyBQSU8oQkFS IHJlZ2lzdGVycykgbWFrZXMgdXMgaW4gc3VjaCBhIGNvbmRpdGlvbi4KPj4+Pj4gCQlUaGF0IHdp bGwgbWFrZSBrdm1faW9fYnVzX3JlZ2lzdGVyX2RldiBoYW5ncy4KPj4+Pj4KPj4+Pj4gCQlDdXJy ZW50bHkgd2UgaGF2ZSB0byBkaXNhYmxlIHJjdV9hc3NpZ25fcG9pbnRlcigpIGluIHN1Y2ggZnVu Y3Rpb25zLgo+Pj4+Pgo+Pj4+PiAJCVRoZXNlIHdlcmUgZGlydHkgd29ya2Fyb3VuZHMsIHlvdXIg c3VnZ2VzdGlvbnMgYXJlIGhpZ2ggd2VsY29tZSEKPj4+Pj4KPj4+Pj4KPj4+Pj4gCTMJc3lzY2Fs bHMgd2VyZSBjYWxsZWQgdG8gYWNjZXNzICIvZGV2L21lbSIgZnJvbSBrZXJuZWwKPj4+Pj4KPj4+ Pj4gCQlBbiBpbi1rZXJuZWwgbWVtc2xvdCB3YXMgYWRkZWQgZm9yIGFwZXJ0dXJlLCBidXQgdXNp bmcgc3lzY2FsbHMgbGlrZQo+Pj4+PiAJCW9wZW4gYW5kIG1tYXAgdG8gb3BlbiBhbmQgYWNjZXNz IHRoZSBjaGFyYWN0ZXIgZGV2aWNlICIvZGV2L21lbSIsCj4+Pj4+IAkJZm9yIHBhc3MtdGhyb3Vn aC4KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4gVGhlIHNvdXJjZSBjb2RlcyhrZXJuZWws IHFlbXUgYXMgd2VsbCBhcyBzZWFiaW9zKSBhcmUgYXZhaWxhYmxlIGF0IGdpdGh1YjoKPj4+Pj4K Pj4+Pj4gCWdpdDovL2dpdGh1Yi5jb20vMDFvcmcvS1ZNR1Qta2VybmVsCj4+Pj4+IAlnaXQ6Ly9n aXRodWIuY29tLzAxb3JnL0tWTUdULXFlbXUKPj4+Pj4gCWdpdDovL2dpdGh1Yi5jb20vMDFvcmcv S1ZNR1Qtc2VhYmlvcwo+Pj4+Pgo+Pj4+PiBJbiB0aGUgS1ZNR1QtcWVtdSByZXBvc2l0b3J5LCB0 aGVyZSBpcyBhICJSRUFETUUua3ZtZ3QiIHRvIGJlIHJlZmVycmVkLgo+Pj4+Pgo+Pj4+Pgo+Pj4+ Pgo+Pj4+PiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEludGVsIEdWVC1nIGFuZCBLVk1HVCBjYW4g YmUgZm91bmQgYXQ6Cj4+Pj4+Cj4+Pj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVu Y2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4+IAlodHRw Oi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9L Vk1HVC1hJTIwRnVsbCUyMEdQVSUyMFZpcnR1YWxpemF0aW9uJTIwU29sdXRpb25fMS5wZGYKPj4+ Pj4KPj4+Pj4KPj4+Pj4gQXBwcmVjaWF0ZSB5b3VyIGNvbW1lbnRzLCBCVUcgcmVwb3J0cywgYW5k IGNvbnRyaWJ1dGlvbnMhCj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IC0tCj4+Pj4+IFRo YW5rcywKPj4+Pj4gSmlrZQo+Pj4+PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752230AbcKFP1f (ORCPT ); Sun, 6 Nov 2016 10:27:35 -0500 Received: from mga06.intel.com ([134.134.136.31]:60975 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752073AbcKFP1d (ORCPT ); Sun, 6 Nov 2016 10:27:33 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,602,1473145200"; d="scan'208";a="1064727442" Message-ID: <581F4B0E.5030203@intel.com> Date: Sun, 06 Nov 2016 23:23:58 +0800 From: Jike Song User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: kvm@vger.kernel.org, igvt-g@ml01.01.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org CC: "Tian, Kevin" , "Cowperthwaite, David J" , "Dong, Eddie" , "Li, Susie" , "Downs, Mike" , "Reddy, Raghuveer" , "Wang, Hongbo" , Zhiyuan Lv , "Zhang, Yipeng" , "Li, Weinan Z" Subject: Re: [ANNOUNCE] 2016-Q3 release of KVMGT (Was Re: KVMGT - the implementation of ...) References: <547FC5DE.4010701@intel.com> <562F45B4.70004@intel.com> <56A86482.4090009@intel.com> <5711DC3B.9010102@intel.com> <578F039A.8080805@intel.com> In-Reply-To: <578F039A.8080805@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all, While spending efforts for upstreaming, we are pleased to announce another update of Intel GVT-g for KVM. Intel GVT-g for KVM (a.k.a. KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 5th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Repositories: - Kernel: https://github.com/01org/igvtg-kernel (2016q3-4.3.0 branch) - Qemu: https://github.com/01org/igvtg-qemu (2016q3-2.3.0 branch) This update consists of: - Preliminary support new platform: KabyLake, for windows OS, it only supports Win10 RedStone 64 bit. - Windows 10 RedStone guest Support - Windows Guest QoS preliminary support: Administrators now are able to control the maximum amount of vGPU resource to be consumed by each VM from value 1% ~ 99%" - Display virtualization preliminary support: Besides the tracking of display register visit in guest VM, removing irrelative display pipeline info between host and guest VM - Live Migration and savevm/restorevm preliminary support on BDW with 2D/3D workload running Known issues: - At least 2GB memory is suggested for Guest Virtual Machine (win7-32/64, win8.1-64, win10-64) to run most 3D workloads - Windows8 and later Windows fast boot is not supported, the workaround is to disable power S3/S4 in HVM file by adding "acpi_S3=0, acpi_S4=0" - Sometimes when dom0 and guest has heavy workload, i915 in dom0 will trigger a false-alarmed TDR. The workaround is to disable dom0 hangcheck in dom0 grub file by adding "i915.enable_hangcheck=0" - Stability: When QoS feature is enabled, Windows guest full GPU reset is often trigger during MTBF test. This bug will be fixed in next release - Windows guest running OpenCL allocations occurs to host crash; the workaround is to disable logd in dom0 grub file by adding "i915.logd_enable=0" Please subscribe the mailing list: https://lists.01.org/mailman/listinfo/igvt-g Official iGVT-g portal: https://01.org/igvt-g More information about background, architecture and others about Intel GVT-g, can be found at: http://www.linux-kvm.org/images/f/f3/01x08b-KVMGT-a.pdf https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian Note: The KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the KVMGT project. -- Thanks, Jike On 07/20/2016 12:52 PM, Jike Song wrote: > Hi all, > > We are pleased to announce another update of Intel GVT-g for KVM. > > Intel GVT-g for KVM (a.k.a. KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 5th generation Intel Core™ processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. > > Repositories: > > - Kernel: https://github.com/01org/igvtg-kernel (2016q2-4.3.0 branch) > - Qemu: https://github.com/01org/igvtg-qemu (2016q2-2.3.0 branch) > > This update consists of: > - KVMGT stable release for Xeon E3 v4 (Broadwell), E3 v5(Skylake), Intel Core™ processors 5th generation (Boadwell) , 6th generation (Skylake) > - 2D/3D/Media workloads can run simultaneously in multiple guests > > Known issues: > - At least 2GB memory is suggested for Guest Virtual Machine (VM) to run most 3D workloads. > - Using Windows Media Player play videos may cause host crash. Using VLC to play .ogg file may cause mosaic or slow response. > - Suggest to X window mode like xinit instead of lightdm to launch host if running heavy workload in both guest and host for more than 6 hours. > - Change i915.preemption_policy=3 in host kernel cmdline, if you see problem when running heavy 3D workloads in multiple Guests (>=3) in some extreme stress configuration. > > > Please subscribe to join the mailing list: > - https://lists.01.org/mailman/listinfo/igvt-g > > Official iGVT-g portal: > - https://01.org/igvt-g > > More information about background, architecture and others about Intel GVT-g, can be found at: > > http://www.linux-kvm.org/images/f/f3/01x08b-KVMGT-a.pdf > https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian > > > Note: > The KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the KVMGT project. > > > -- > Thanks, > Jike > > On 04/16/2016 02:31 PM, Jike Song wrote: >> Hi all, >> >> We are pleased to announce another update of Intel GVT-g for KVM. >> >> Intel GVT-g for KVM (a.k.a. KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. >> >> >> Repositories: >> >> Kernel: https://github.com/01org/igvtg-kernel (2016q1-4.3.0 branch) >> Qemu: https://github.com/01org/igvtg-qemu (2016q1-2.3.0 branch) >> >> >> This update consists of: >> >> - KVMGT now has better support for 5th generation (Broadwell) Intel Core(TM) processors, Xeon(R) E3 v4 >> - A new feature, QEMU compositor display is added to support display VM in QEMU window. (use i915.enable_vgtbuffer=1 in kernel command line to enable this feature, disabled by default, details please refer to the Setup Guide) >> - 2D/3D/Media workloads can be run simultaneously in multiple guests. >> - Support both Windows Guest and Linux Guest(Win7-32, Win7-64, Win8.1-64, Ubuntu14.04-64) >> - Host Linux kernel has been upgraded from 4.2.0 to 4.3.0 (based on drm-intel) >> - KVMGT has preliminary support for 6th generation (Skylake) Intel Core(TM) processors. >> >> >> Known issues: >> >> - At least 2GB memory is suggested for VM to run most 3D workloads. >> - On some particular platform, assigning >2G memory to VM will cause Linux VM failed to boot up and Windows VM failed to load GFX driver. >> - Using VLC to play .ogg file may cause mosaic or slow response. >> - Running heavy 3D workloads in multiple guests for couple of hours may cause stability issue.(use i915.preemption_policy=3 in host kernel cmd line can work around this stability issue) >> >> >> Please subscribe to join the mailing list: https://lists.01.org/mailman/listinfo/igvt-g >> >> Official iGVT-g portal: https://01.org/igvt-g >> >> More information about background, architecture and others about Intel GVT-g, can be found at: >> >> >> http://www.linux-kvm.org/images/f/f3/01x08b-KVMGT-a.pdf >> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >> >> >> The upstreaming effort of iGVT-g project is ongoing elsewhere, not as a part of this release. >> >> >> Note: >> >> The KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the KVMGT project. >> >> >> -- >> Thanks, >> Jike >> >> On 01/27/2016 02:32 PM, Jike Song wrote: >>> Hi all, >>> >>> We are pleased to announce another update of Intel GVT-g for KVM. >>> >>> Intel GVT-g for KVM (a.k.a. KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. >>> >>> Repositories: >>> >>> Kernel: https://github.com/01org/igvtg-kernel (2015q4-4.2.0 branch) >>> Qemu: https://github.com/01org/igvtg-qemu (kvmgt_public2015q4 branch) >>> >>> This update consists of: >>> >>> - KVMGT now has better support for 5th generation (Broadwell) Intel Core(TM) processors, 2D/3D/Media workloads can be run simultaneously in multiple guests. >>> - Host Linux kernel has been upgraded from 3.18.0 to 4.2.0 (based on drm-intel) >>> >>> Next update will be around early April, 2016. >>> >>> Known issues: >>> >>> - At least 2GB memory is suggested for VM to run most 3D workloads. >>> - Using VLC to play .ogg file may cause mosaic or slow response. >>> - Running heavy 3D workloads in multiple guests for couple of hours may cause stability issue. >>> >>> Official iGVT-g portal: https://01.org/igvt-g >>> Please subscribe the mailing list: https://lists.01.org/mailman/listinfo/igvt-g >>> >>> More information about background, architecture and others about Intel GVT-g, can be found at: >>> >>> http://www.linux-kvm.org/images/f/f3/01x08b-KVMGT-a.pdf >>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>> >>> >>> Note: The KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the KVMGT project. >>> >>> >>> -- >>> Thanks, >>> Jike >>> >>> On 10/27/2015 05:36 PM, Jike Song wrote: >>>> Hi all, >>>> >>>> We are pleased to announce another update of Intel GVT-g for KVM. >>>> >>>> Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. KVM is supported by Intel GVT-g(a.k.a. KVMGT). >>>> >>>> >>>> Repositories >>>> >>>> Kernel: https://github.com/01org/igvtg-kernel (2015q3-3.18.0 branch) >>>> Qemu: https://github.com/01org/igvtg-qemu (kvmgt_public2015q3 branch) >>>> >>>> >>>> This update consists of: >>>> >>>> - KVMGT is now merged with XenGT in unified repositories(kernel and qemu), but currently >>>> different branches for qemu. KVMGT and XenGT share same iGVT-g core logic. >>>> - PPGTT supported, hence the Windows guest support >>>> - KVMGT now supports both 4th generation (Haswell) and 5th generation (Broadwell) Intel Core(TM) processors >>>> - 2D/3D/Media decoding have been validated on Ubuntu 14.04 and Windows7/Windows 8.1 >>>> >>>> Next update will be around early Jan, 2016. >>>> >>>> Known issues: >>>> >>>> - At least 2GB memory is suggested for VM to run most 3D workloads. >>>> - 3Dmark06 running in Windows VM may have some stability issue. >>>> - Using VLC to play .ogg file may cause mosaic or slow response. >>>> >>>> >>>> Please subscribe the mailing list to report BUGs, discuss, and/or contribute: >>>> >>>> https://lists.01.org/mailman/listinfo/igvt-g >>>> >>>> More information about Intel GVT-g background, architecture, etc can be found at(may not be up-to-date): >>>> >>>> https://01.org/igvt-g >>>> http://www.linux-kvm.org/images/f/f3/01x08b-KVMGT-a.pdf >>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>> >>>> >>>> Note: >>>> >>>> The KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the KVMGT project. >>>> >>>> >>>> -- >>>> Thanks, >>>> Jike >>>> >>>> On 12/04/2014 10:24 AM, Jike Song wrote: >>>>> Hi all, >>>>> >>>>> We are pleased to announce the first release of KVMGT project. KVMGT is the implementation of Intel GVT-g technology, a full GPU virtualization solution. Under Intel GVT-g, a virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance of performance, feature, and sharing capability. >>>>> >>>>> >>>>> KVMGT is still in the early stage: >>>>> >>>>> - Basic functions of full GPU virtualization works, guest can see a full-featured vGPU. >>>>> We ran several 3D workloads such as lightsmark, nexuiz, urbanterror and warsow. >>>>> >>>>> - Only Linux guest supported so far, and PPGTT must be disabled in guest through a >>>>> kernel parameter(see README.kvmgt in QEMU). >>>>> >>>>> - This drop also includes some Xen specific changes, which will be cleaned up later. >>>>> >>>>> - Our end goal is to upstream both XenGT and KVMGT, which shares ~90% logic for vGPU >>>>> device model (will be part of i915 driver), with only difference in hypervisor >>>>> specific services >>>>> >>>>> - insufficient test coverage, so please bear with stability issues :) >>>>> >>>>> >>>>> >>>>> There are things need to be improved, esp. the KVM interfacing part: >>>>> >>>>> 1 a domid was added to each KVMGT guest >>>>> >>>>> An ID is needed for foreground OS switching, e.g. >>>>> >>>>> # echo > /sys/kernel/vgt/control/foreground_vm >>>>> >>>>> domid 0 is reserved for host OS. >>>>> >>>>> >>>>> 2 SRCU workarounds. >>>>> >>>>> Some KVM functions, such as: >>>>> >>>>> kvm_io_bus_register_dev >>>>> install_new_memslots >>>>> >>>>> must be called *without* &kvm->srcu read-locked. Otherwise it hangs. >>>>> >>>>> In KVMGT, we need to register an iodev only *after* BAR registers are >>>>> written by guest. That means, we already have &kvm->srcu hold - >>>>> trapping/emulating PIO(BAR registers) makes us in such a condition. >>>>> That will make kvm_io_bus_register_dev hangs. >>>>> >>>>> Currently we have to disable rcu_assign_pointer() in such functions. >>>>> >>>>> These were dirty workarounds, your suggestions are high welcome! >>>>> >>>>> >>>>> 3 syscalls were called to access "/dev/mem" from kernel >>>>> >>>>> An in-kernel memslot was added for aperture, but using syscalls like >>>>> open and mmap to open and access the character device "/dev/mem", >>>>> for pass-through. >>>>> >>>>> >>>>> >>>>> >>>>> The source codes(kernel, qemu as well as seabios) are available at github: >>>>> >>>>> git://github.com/01org/KVMGT-kernel >>>>> git://github.com/01org/KVMGT-qemu >>>>> git://github.com/01org/KVMGT-seabios >>>>> >>>>> In the KVMGT-qemu repository, there is a "README.kvmgt" to be referred. >>>>> >>>>> >>>>> >>>>> More information about Intel GVT-g and KVMGT can be found at: >>>>> >>>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>>> http://events.linuxfoundation.org/sites/events/files/slides/KVMGT-a%20Full%20GPU%20Virtualization%20Solution_1.pdf >>>>> >>>>> >>>>> Appreciate your comments, BUG reports, and contributions! >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks, >>>>> Jike >>>>>