From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Branch Trace Storage for guests and VPMU initialization Date: Tue, 24 Feb 2015 15:27:41 +0000 Message-ID: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2352246318349228631==" Return-path: Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --===============2352246318349228631== Content-Language: de-DE Content-Type: multipart/alternative; boundary="_000_5C9C3B9BEF1B354596EAE3D6800D876BA3BF8Fe1gdatade_" This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --_000_5C9C3B9BEF1B354596EAE3D6800D876BA3BF8Fe1gdatade_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi guys I`m trying to set up the BTS so that I can log the branches taken in the gue= st using Xen 4.4.1 with a WinXP SP3 guest on a Core i7 Sandy Bridge. I added the vpmu=3Dbts boot parameter to my grub2 configuration and extended= the libxl,libxc,domctl,... with an own command so that I can trigger the act= ivation of the BTS whenever I want. In this command I do the following: I set up the memory region for the BTS Buffer and the DS Buffer Management A= rea using xzalloc_bytes Then I write the pointer to the BTS Buffer into the DS Buffer Management Are= a at +0x0 and +0x8 (BTS Buffer Base and BTS Index) When I use vmx_msr_write_intercept to store the value in MSR_IA32_DS_AREA th= e host reboots (my idea is he tries to access a vpmu-struct that isn=B4t the= re in the current vcpu and panics). When I use a modified version of vmx_msr_write_intercept I don't get any cra= shes as long as I don't enable BTS and TR in the GUEST_IA32_DEBUGCTL (BTR wo= rks). When I enable the BTS (and TR) the guest crashes. I suppose he gets ki= lled by the hypervisor for accessing forbidden memory. The modified version of vmx_msr_write_intercept takes a vcpu-struct as a par= ameter and uses this instead of the current vcpu. Instead of static int vmx_msr_write_intercept(unsigned int msr, uint64_t msr_content) { struct vcpu *v =3D current; I just have static int own_vmx_msr_write_intercept(unsigned int msr, uint64_t msr_conten= t, struct vcpu *v) I get this vcpu by d->vcpu[0] as I have limited my guest domain to one vcpu= atm. Of course I also use similarly modified version of the called functions(vpmu= _do_wrmsr,...). I=B4m pretty sure that my problem is with a wrong scope/usage of the vcpus/m= emory, but I have no idea how to fix this. I can see a potential problem with the memory allocation (in the host) into= which the cpu in guest-mode is supposed to write. Or maybe I got the principle of a vcpu/vpmu all wrong. Since I couldn't find any project that uses the BTS for the guest, I am wond= ering if anyone has ever done this and if it is possible at all. Any input is welcome as I am pretty much stuck atm... Cheers Kevin ____________ Virus checked by G Data MailSecurity Version: AVA 25.404 dated 24.02.2015 Virus news: www.antiviruslab.com --_000_5C9C3B9BEF1B354596EAE3D6800D876BA3BF8Fe1gdatade_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi guys

 

I`m trying to set up the BTS so= that I can log the branches taken in the guest using Xen 4.4.1 with a WinXP= SP3 guest on a Core i7 Sandy Bridge.

I added the vpmu=3Dbts boot para= meter to my grub2 configuration and extended the libxl,libxc,domctl,…= with an own command so that I can trigger the activation of the BTS whenever= I want.

In this command I do the followi= ng:

I set up the memory region for t= he BTS Buffer and the DS Buffer Management Area using xzalloc_bytes

Then I write the pointer to the= BTS Buffer into the DS Buffer Management Area at +0x0 and +0x8 (BTS= Buffer Base and BTS Index)

When I use vmx_msr_write_interce= pt to store the value in MSR_IA32= _DS_AREA the host reboots (my idea is he tries to access a vpmu-struct that= isn=B4t there in the current vcpu and panics).

When I use a modified version of= vmx_msr_write_intercept I don’t get any crashes as long as I don’= ;t enable BTS and TR in the GUEST_IA32_DEBUGCTL (BTR works). When I enable t= he BTS (and TR) the guest crashes. I suppose he gets killed by the hypervisor for accessing forbidden memory.<= /span>

The modified version of vmx_msr_= write_intercept takes a vcpu-struct as a parameter and uses this instead of= the current vcpu.

Instead of

st= atic int vmx_msr_write_intercept(unsigned int ms= r, uint64_t msr_content)

{<= o:p>

    struct vcpu *= v =3D current;

I just have

st= atic int own_vmx_msr_write_intercept(unsigned in= t msr, uint64_t msr_content, struct vcpu *v)

 

I get this vcpu by d->vcpu[0]= as I have limited my guest domain to one vcpu atm.

Of course I also use similarly m= odified version of the called functions(vpmu_do_wrmsr,…).

I=B4m pretty sure that my proble= m is with a wrong scope/usage of the vcpus/memory, but I have no idea how to= fix this.

I can see a potential problem wi= th the memory allocation (in the host) into which the cpu in guest-mode is s= upposed to write.

Or maybe I got the principle of= a vcpu/vpmu all wrong.

 

Since I couldn’t find any= project that uses the BTS for the guest, I am wondering if anyone has ever d= one this and if it is possible at all.

Any input is welcome as I am pre= tty much stuck atm…

 

Cheers

 

Kevin


____________
Virus checked by G Data MailSecurity
Version: AVA 25.404 dated 24.02.2015
Virus news: www.antiviruslab.com=
--_000_5C9C3B9BEF1B354596EAE3D6800D876BA3BF8Fe1gdatade_-- --===============2352246318349228631== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============2352246318349228631==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: Branch Trace Storage for guests and VPMU initialization Date: Tue, 24 Feb 2015 12:12:52 -0500 Message-ID: <54ECB114.6040101@oracle.com> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Kevin.Mayer@gdata.de, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gMDIvMjQvMjAxNSAxMDoyNyBBTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6Cj4KPiBI aSBndXlzCj4KPiBJYG0gdHJ5aW5nIHRvIHNldCB1cCB0aGUgQlRTIHNvIHRoYXQgSSBjYW4gbG9n IHRoZSBicmFuY2hlcyB0YWtlbiBpbiAKPiB0aGUgZ3Vlc3QgdXNpbmcgWGVuIDQuNC4xIHdpdGgg YSBXaW5YUCBTUDMgZ3Vlc3Qgb24gYSBDb3JlIGk3IFNhbmR5IAo+IEJyaWRnZS4KPgo+IEkgYWRk ZWQgdGhlIHZwbXU9YnRzIGJvb3QgcGFyYW1ldGVyIHRvIG15IGdydWIyIGNvbmZpZ3VyYXRpb24g YW5kIAo+IGV4dGVuZGVkIHRoZSBsaWJ4bCxsaWJ4Yyxkb21jdGws4oCmIHdpdGggYW4gb3duIGNv bW1hbmQgc28gdGhhdCBJIGNhbiAKPiB0cmlnZ2VyIHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBCVFMg d2hlbmV2ZXIgSSB3YW50Lgo+CgoKSSBhbSBub3Qgc3VyZSB3aHkgeW91IGFyZSBkb2luZyBhbGwg dGhlc2UgY2hhbmdlcyB0byBYZW4gY29kZS4gQlRTIGlzIApzdXBwb3NlZCB0byBiZSBtYW5hZ2Vk IGZyb20gdGhlIGd1ZXN0LiBGb3IgZXhhbXBsZSwgYSBGZWRvcmEgSFZNIGd1ZXN0IAp3aWxsIHBy b2R1Y2UgdGhpczoKCltyb290QGRoY3AtYnVybGluZ3RvbjctMm5kLUItZWFzdC0xMC0xNTItNTUt MTQwIH5dIyBwZXJmIHJlY29yZCAtZSAKYnJhbmNoZXM6dSAtYyAxIC1kIHNsZWVwIDEKWyBwZXJm IHJlY29yZDogV29rZW4gdXAgMzgzOCB0aW1lcyB0byB3cml0ZSBkYXRhIF0KWyBwZXJmIHJlY29y ZDogQ2FwdHVyZWQgYW5kIHdyb3RlIDAuNzA0IE1CIHBlcmYuZGF0YSAofjMwNzU2IHNhbXBsZXMp IF0KW3Jvb3RAZGhjcC1idXJsaW5ndG9uNy0ybmQtQi1lYXN0LTEwLTE1Mi01NS0xNDAgfl0jIHBl cmYgc2NyaXB0IC1mIAppcCxhZGRyLHN5bSxkc28sc3ltb2ZmIC0tc2hvdy1rZXJuZWwtcGF0aAog IGZmZmZmZmZmODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tjb3Jl KSA9PiAgICAgICAKMzI4YzAwMTU5MCBbdW5rbm93bl0gKC9wcm9jL2tjb3JlKQogIGZmZmZmZmZm ODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9PiAgICAg ICAKMzI4YzAwMTU5MCBbdW5rbm93bl0gKFt1bmtub3duXSkKICAgICAgICAzMjhjMDAxNTkzIFt1 bmtub3duXSAoW3Vua25vd25dKSA9PiAgICAgICAzMjhjMDA0YjcwIFt1bmtub3duXSAKKFt1bmtu b3duXSkKLi4uCgo+IEluIHRoaXMgY29tbWFuZCBJIGRvIHRoZSBmb2xsb3dpbmc6Cj4KPiBJIHNl dCB1cCB0aGUgbWVtb3J5IHJlZ2lvbiBmb3IgdGhlIEJUUyBCdWZmZXIgYW5kIHRoZSBEUyBCdWZm ZXIgCj4gTWFuYWdlbWVudCBBcmVhIHVzaW5nIHh6YWxsb2NfYnl0ZXMKPgoKCkkgZG9uJ3QgdGhp bmsgeW91IHNob3VsZCBiZSBhbGxvY2F0aW5nIEJUUyBidWZmZXJzIGluIHRoZSBoeXBlcnZpc29y LCAKdGhleSBhcmUgaW4gZ3Vlc3QncyBtZW1vcnkuCgoKPiBUaGVuIEkgd3JpdGUgdGhlIHBvaW50 ZXIgdG8gdGhlIEJUUyBCdWZmZXIgaW50byB0aGUgRFMgQnVmZmVyIAo+IE1hbmFnZW1lbnQgQXJl YSBhdCArMHgwIGFuZCArMHg4IChCVFMgQnVmZmVyIEJhc2UgYW5kIEJUUyBJbmRleCkKPgo+IFdo ZW4gSSB1c2Ugdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdG8gc3RvcmUgdGhlIHZhbHVlIGluIAo+ IE1TUl9JQTMyX0RTX0FSRUEgdGhlIGhvc3QgcmVib290cyAobXkgaWRlYSBpcyBoZSB0cmllcyB0 byBhY2Nlc3MgYSAKPiB2cG11LXN0cnVjdCB0aGF0IGlzbsK0dCB0aGVyZSBpbiB0aGUgY3VycmVu dCB2Y3B1IGFuZCBwYW5pY3MpLgo+CgpDYW4geW91IHBvc3QgaHlwZXJ2aXNvciBsb2c/IChoYXJk IHRvIHNheSBob3cgaGVscGZ1bCBpdCB3aWxsIGJlIHdpdGhvdXQgCnNlZWluZyB5b3VyIGNvZGUg Y2hhbmdlcyB0aG91Z2gpCgo+IFdoZW4gSSB1c2UgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHZteF9t c3Jfd3JpdGVfaW50ZXJjZXB0IEkgZG9u4oCZdCBnZXQgCj4gYW55IGNyYXNoZXMgYXMgbG9uZyBh cyBJIGRvbuKAmXQgZW5hYmxlIEJUUyBhbmQgVFIgaW4gdGhlIAo+IEdVRVNUX0lBMzJfREVCVUdD VEwgKEJUUiB3b3JrcykuIFdoZW4gSSBlbmFibGUgdGhlIEJUUyAoYW5kIFRSKSB0aGUgCj4gZ3Vl c3QgY3Jhc2hlcy4gSSBzdXBwb3NlIGhlIGdldHMga2lsbGVkIGJ5IHRoZSBoeXBlcnZpc29yIGZv ciAKPiBhY2Nlc3NpbmcgZm9yYmlkZGVuIG1lbW9yeS4KPgoKUG9zc2libHkgYmVjYXVzZSBEUyBh cmVhIHBvaW50IHRvIGh5cGVydmlzb3IgbWVtb3J5LgoKCkhhdmluZyBzYWlkIGFsbCB0aGlzLCBJ IGFtIG5vdCBzdXJlIGhvdyB3ZWxsIEJUUyB3b3Jrcy4gWW91IGRpZCBub3RpY2UgCnRoaXMgaW4g dGhlIGh5cGVydmlzb3IgbG9nOgoKKFhFTikgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCihYRU4pICoqIFdBUk5JTkc6IEVtdWxhdGlvbiBvZiBC VFMgRmVhdHVyZSBpcyBzd2l0Y2hlZCBvbiAqKgooWEVOKSAqKiBVc2luZyB0aGlzIHByb2Nlc3Nv ciBmZWF0dXJlIGluIGEgdmlydHVhbGl6ZWQgKioKKFhFTikgKiogZW52aXJvbm1lbnQgaXMgbm90 IDEwMCUgc2FmZS4gKioKKFhFTikgKiogU2V0dGluZyB0aGUgRFMgYnVmZmVyIGFkZHJlc3Mgd2l0 aCB3cm9uZyB2YWx1ZXMgKioKKFhFTikgKiogbWF5IGxlYWQgdG8gaHlwZXJ2aXNvciBoYW5ncyBv ciBjcmFzaGVzLiAqKgooWEVOKSAqKiBJdCBpcyBOT1QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rp b24gdXNlISAqKgooWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKCgotYm9yaXMKCgo+IFRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIHZteF9t c3Jfd3JpdGVfaW50ZXJjZXB0IHRha2VzIGEgdmNwdS1zdHJ1Y3QgYXMgCj4gYSBwYXJhbWV0ZXIg YW5kIHVzZXMgdGhpcyBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IHZjcHUuCj4KPiBJbnN0ZWFkIG9m Cj4KPiBzdGF0aWNpbnQgdm14X21zcl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwg dWludDY0X3QgbXNyX2NvbnRlbnQpCj4KPiB7Cj4KPiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJy ZW50Owo+Cj4gSSBqdXN0IGhhdmUKPgo+IHN0YXRpY2ludCBvd25fdm14X21zcl93cml0ZV9pbnRl cmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgCj4gbXNyX2NvbnRlbnQsIHN0cnVjdCB2 Y3B1ICp2KQo+Cj4gSSBnZXQgdGhpcyB2Y3B1IGJ5IGQtPnZjcHVbMF0gYXMgSSBoYXZlIGxpbWl0 ZWQgbXkgZ3Vlc3QgZG9tYWluIHRvIG9uZSAKPiB2Y3B1IGF0bS4KPgo+IE9mIGNvdXJzZSBJIGFs c28gdXNlIHNpbWlsYXJseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBjYWxsZWQgCj4gZnVuY3Rp b25zKHZwbXVfZG9fd3Jtc3Is4oCmKS4KPgo+IEnCtG0gcHJldHR5IHN1cmUgdGhhdCBteSBwcm9i bGVtIGlzIHdpdGggYSB3cm9uZyBzY29wZS91c2FnZSBvZiB0aGUgCj4gdmNwdXMvbWVtb3J5LCBi dXQgSSBoYXZlIG5vIGlkZWEgaG93IHRvIGZpeCB0aGlzLgo+Cj4gSSBjYW4gc2VlIGEgcG90ZW50 aWFsIHByb2JsZW0gd2l0aCB0aGUgbWVtb3J5IGFsbG9jYXRpb24gKGluIHRoZSBob3N0KSAKPiBp bnRvIHdoaWNoIHRoZSBjcHUgaW4gZ3Vlc3QtbW9kZSBpcyBzdXBwb3NlZCB0byB3cml0ZS4KPgo+ IE9yIG1heWJlIEkgZ290IHRoZSBwcmluY2lwbGUgb2YgYSB2Y3B1L3ZwbXUgYWxsIHdyb25nLgo+ Cj4gU2luY2UgSSBjb3VsZG7igJl0IGZpbmQgYW55IHByb2plY3QgdGhhdCB1c2VzIHRoZSBCVFMg Zm9yIHRoZSBndWVzdCwgSSAKPiBhbSB3b25kZXJpbmcgaWYgYW55b25lIGhhcyBldmVyIGRvbmUg dGhpcyBhbmQgaWYgaXQgaXMgcG9zc2libGUgYXQgYWxsLgo+Cj4gQW55IGlucHV0IGlzIHdlbGNv bWUgYXMgSSBhbSBwcmV0dHkgbXVjaCBzdHVjayBhdG3igKYKPgo+IENoZWVycwo+Cj4gS2V2aW4K Pgo+Cj4gX19fX19fX19fX19fCj4gVmlydXMgY2hlY2tlZCBieSBHIERhdGEgTWFpbFNlY3VyaXR5 Cj4gVmVyc2lvbjogQVZBIDI1LjQwNCBkYXRlZCAyNC4wMi4yMDE1Cj4gVmlydXMgbmV3czogd3d3 LmFudGl2aXJ1c2xhYi5jb20gPGh0dHA6Ly93d3cuYW50aXZpcnVzbGFiLmNvbT4KPgo+Cj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Cj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Re: Branch Trace Storage for guests and VPMUinitialization Date: Wed, 25 Feb 2015 15:12:03 +0000 Message-ID: <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <54ECB114.6040101@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54ECB114.6040101@oracle.com> Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: boris.ostrovsky@oracle.com Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org PiAtLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tDQo+IFZvbjogQm9yaXMgT3N0cm92 c2t5IFttYWlsdG86Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb21dDQo+IEdlc2VuZGV0OiBEaWVu c3RhZywgMjQuIEZlYnJ1YXIgMjAxNSAxODoxMw0KPiBBbjogTWF5ZXIsIEtldmluOyB4ZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZw0KPiBCZXRyZWZmOiBSZTogW1hlbi1kZXZlbF0gQnJhbmNoIFRyYWNl IFN0b3JhZ2UgZm9yIGd1ZXN0cyBhbmQgVlBNVQ0KPiBpbml0aWFsaXphdGlvbg0KPiANCj4gT24g MDIvMjQvMjAxNSAxMDoyNyBBTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6DQo+ID4NCj4g PiBIaSBndXlzDQo+ID4NCj4gPiBJYG0gdHJ5aW5nIHRvIHNldCB1cCB0aGUgQlRTIHNvIHRoYXQg SSBjYW4gbG9nIHRoZSBicmFuY2hlcyB0YWtlbiBpbg0KPiA+IHRoZSBndWVzdCB1c2luZyBYZW4g NC40LjEgd2l0aCBhIFdpblhQIFNQMyBndWVzdCBvbiBhIENvcmUgaTcgU2FuZHkNCj4gPiBCcmlk Z2UuDQo+ID4NCj4gPiBJIGFkZGVkIHRoZSB2cG11PWJ0cyBib290IHBhcmFtZXRlciB0byBteSBn cnViMiBjb25maWd1cmF0aW9uIGFuZA0KPiA+IGV4dGVuZGVkIHRoZSBsaWJ4bCxsaWJ4Yyxkb21j dGws4oCmIHdpdGggYW4gb3duIGNvbW1hbmQgc28gdGhhdCBJIGNhbg0KPiA+IHRyaWdnZXIgdGhl IGFjdGl2YXRpb24gb2YgdGhlIEJUUyB3aGVuZXZlciBJIHdhbnQuDQo+ID4NCj4gDQo+IA0KPiBJ IGFtIG5vdCBzdXJlIHdoeSB5b3UgYXJlIGRvaW5nIGFsbCB0aGVzZSBjaGFuZ2VzIHRvIFhlbiBj b2RlLiBCVFMgaXMNCj4gc3VwcG9zZWQgdG8gYmUgbWFuYWdlZCBmcm9tIHRoZSBndWVzdC4gRm9y IGV4YW1wbGUsIGEgRmVkb3JhIEhWTSBndWVzdA0KPiB3aWxsIHByb2R1Y2UgdGhpczoNCj4gDQo+ IFtyb290QGRoY3AtYnVybGluZ3RvbjctMm5kLUItZWFzdC0xMC0xNTItNTUtMTQwIH5dIyBwZXJm IHJlY29yZCAtZQ0KPiBicmFuY2hlczp1IC1jIDEgLWQgc2xlZXAgMSBbIHBlcmYgcmVjb3JkOiBX b2tlbiB1cCAzODM4IHRpbWVzIHRvIHdyaXRlIGRhdGEgXSBbDQo+IHBlcmYgcmVjb3JkOiBDYXB0 dXJlZCBhbmQgd3JvdGUgMC43MDQgTUIgcGVyZi5kYXRhICh+MzA3NTYgc2FtcGxlcykgXQ0KPiBb cm9vdEBkaGNwLWJ1cmxpbmd0b243LTJuZC1CLWVhc3QtMTAtMTUyLTU1LTE0MCB+XSMgcGVyZiBz Y3JpcHQgLWYNCj4gaXAsYWRkcixzeW0sZHNvLHN5bW9mZiAtLXNob3cta2VybmVsLXBhdGgNCj4g ICBmZmZmZmZmZjgxNjdjMzQ3IG5hdGl2ZV9pcnFfcmV0dXJuX2lyZXQrMHgwICgvcHJvYy9rY29y ZSkgPT4NCj4gMzI4YzAwMTU5MCBbdW5rbm93bl0gKC9wcm9jL2tjb3JlKQ0KPiAgIGZmZmZmZmZm ODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9Pg0KPiAz MjhjMDAxNTkwIFt1bmtub3duXSAoW3Vua25vd25dKQ0KPiAgICAgICAgIDMyOGMwMDE1OTMgW3Vu a25vd25dIChbdW5rbm93bl0pID0+ICAgICAgIDMyOGMwMDRiNzAgW3Vua25vd25dDQo+IChbdW5r bm93bl0pDQo+IC4uLg0KPiANCg0KSSB3YW50IHRvIGJlIGFibGUgdG8gbG9nIHRoZSB0YWtlbiBi cmFuY2hlcyAob2YgdGhlIGd1ZXN0KSB3aXRob3V0IHRoZSBuZWVkIHRvIG1vZGlmeSB0aGUgZ3Vl c3QgYXQgYWxsLg0KVGhpcyBtZWFucyBJIGhhdmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0aGUg aHlwZXJ2aXNvciwgb3IgYW0gSSB3cm9uZz8NCg0KPiA+IEluIHRoaXMgY29tbWFuZCBJIGRvIHRo ZSBmb2xsb3dpbmc6DQo+ID4NCj4gPiBJIHNldCB1cCB0aGUgbWVtb3J5IHJlZ2lvbiBmb3IgdGhl IEJUUyBCdWZmZXIgYW5kIHRoZSBEUyBCdWZmZXINCj4gPiBNYW5hZ2VtZW50IEFyZWEgdXNpbmcg eHphbGxvY19ieXRlcw0KPiA+DQo+IA0KPiANCj4gSSBkb24ndCB0aGluayB5b3Ugc2hvdWxkIGJl IGFsbG9jYXRpbmcgQlRTIGJ1ZmZlcnMgaW4gdGhlIGh5cGVydmlzb3IsIHRoZXkgYXJlDQo+IGlu IGd1ZXN0J3MgbWVtb3J5Lg0KDQpJIGFncmVlLiBBcyBJIHNhaWQgSSB0aGluayB0aGlzIGlzIHdo ZXJlIG15IG1haW4gcHJvYmxlbSBpcyBhdCB0aGUgbW9tZW50LiANCklzIHRoZXJlIGFueSB3YXkg SSBjYW4gYWxsb2NhdGUgbWVtb3J5IGluIHRoZSBoeXBlcnZpc29yIGluIGEgd2F5IHRoZSBndWVz dCBjYW4gYWNjZXNzIGl0Pw0KT2YgY291cnNlIHRoZSBndWVzdCBtdXN0IG5vdCBiZSBhYmxlIHRv IHVzZSB0aGlzIG1lbW9yeSBpbiBpdHMgbm9ybWFsIG9wZXJhdGlvbnMgYnV0IGp1c3QgZm9yIEJU Uy4NCklzIHRoaXMgZXZlbiBwb3NzaWJsZT8gSSBhbSByYXRoZXIgY29uZnVzZWQgYXQgdGhlIG1v bWVudC4gOi1EDQoNCj4gPiBUaGVuIEkgd3JpdGUgdGhlIHBvaW50ZXIgdG8gdGhlIEJUUyBCdWZm ZXIgaW50byB0aGUgRFMgQnVmZmVyDQo+ID4gTWFuYWdlbWVudCBBcmVhIGF0ICsweDAgYW5kICsw eDggKEJUUyBCdWZmZXIgQmFzZSBhbmQgQlRTIEluZGV4KQ0KPiA+DQo+ID4gV2hlbiBJIHVzZSB2 bXhfbXNyX3dyaXRlX2ludGVyY2VwdCB0byBzdG9yZSB0aGUgdmFsdWUgaW4NCj4gPiBNU1JfSUEz Ml9EU19BUkVBIHRoZSBob3N0IHJlYm9vdHMgKG15IGlkZWEgaXMgaGUgdHJpZXMgdG8gYWNjZXNz IGENCj4gPiB2cG11LXN0cnVjdCB0aGF0IGlzbsK0dCB0aGVyZSBpbiB0aGUgY3VycmVudCB2Y3B1 IGFuZCBwYW5pY3MpLg0KPiA+DQo+IA0KPiBDYW4geW91IHBvc3QgaHlwZXJ2aXNvciBsb2c/ICho YXJkIHRvIHNheSBob3cgaGVscGZ1bCBpdCB3aWxsIGJlIHdpdGhvdXQNCj4gc2VlaW5nIHlvdXIg Y29kZSBjaGFuZ2VzIHRob3VnaCkNCj4gDQoNClJpZ2h0IGFmdGVyIGVuYWJsaW5nIHRoZSBCVFMg SSBnZXQgYSB0cmlwbGUgZmF1bHQuDQpodm0uYzoxMzU3OmQyIFRyaXBsZSBmYXVsdCBvbiBWQ1BV MCAtIGludm9raW5nIEhWTSBzaHV0ZG93biBhY3Rpb24gMS4gDQoNCj4gPiBXaGVuIEkgdXNlIGEg bW9kaWZpZWQgdmVyc2lvbiBvZiB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCBJIGRvbuKAmXQgZ2V0 DQo+ID4gYW55IGNyYXNoZXMgYXMgbG9uZyBhcyBJIGRvbuKAmXQgZW5hYmxlIEJUUyBhbmQgVFIg aW4gdGhlDQo+ID4gR1VFU1RfSUEzMl9ERUJVR0NUTCAoQlRSIHdvcmtzKS4gV2hlbiBJIGVuYWJs ZSB0aGUgQlRTIChhbmQgVFIpIHRoZQ0KPiA+IGd1ZXN0IGNyYXNoZXMuIEkgc3VwcG9zZSBoZSBn ZXRzIGtpbGxlZCBieSB0aGUgaHlwZXJ2aXNvciBmb3INCj4gPiBhY2Nlc3NpbmcgZm9yYmlkZGVu IG1lbW9yeS4NCj4gPg0KPiANCj4gUG9zc2libHkgYmVjYXVzZSBEUyBhcmVhIHBvaW50IHRvIGh5 cGVydmlzb3IgbWVtb3J5Lg0KPiANCj4gDQo+IEhhdmluZyBzYWlkIGFsbCB0aGlzLCBJIGFtIG5v dCBzdXJlIGhvdyB3ZWxsIEJUUyB3b3Jrcy4gWW91IGRpZCBub3RpY2UNCj4gdGhpcyBpbiB0aGUg aHlwZXJ2aXNvciBsb2c6DQo+IA0KPiAoWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gKFhFTikgKiogV0FSTklORzogRW11bGF0aW9u IG9mIEJUUyBGZWF0dXJlIGlzIHN3aXRjaGVkIG9uICoqDQo+IChYRU4pICoqIFVzaW5nIHRoaXMg cHJvY2Vzc29yIGZlYXR1cmUgaW4gYSB2aXJ0dWFsaXplZCAqKg0KPiAoWEVOKSAqKiBlbnZpcm9u bWVudCBpcyBub3QgMTAwJSBzYWZlLiAqKg0KPiAoWEVOKSAqKiBTZXR0aW5nIHRoZSBEUyBidWZm ZXIgYWRkcmVzcyB3aXRoIHdyb25nIHZhbHVlcyAqKg0KPiAoWEVOKSAqKiBtYXkgbGVhZCB0byBo eXBlcnZpc29yIGhhbmdzIG9yIGNyYXNoZXMuICoqDQo+IChYRU4pICoqIEl0IGlzIE5PVCByZWNv bW1lbmRlZCBmb3IgcHJvZHVjdGlvbiB1c2UhICoqDQo+IChYRU4pICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCg0KWWVzLCBJIHNhdyB0 aGF0LiBJdCBkb2VzbuKAmXQgc3RhdGUgdGhhdCBCVFMgaXMgbm90IHdvcmtpbmcgYXQgYWxsLCBq dXN0IHRoYXQgaXQgaXMgbm90IHRoYXQgc2FmZSB0byB1c2UuDQpBcyBJIHVuZGVyc3RhbmQgaXQg YXMgbG9uZyBhcyBJIHNldCB0aGUgRFMgYnVmZmVyIGFkZHJlc3MgY29ycmVjdGx5IEkgc2hvdWxk IGJlIGZpbmUsIHJpZ2h0Pw0KU2luY2UgSSBkb27igJl0IHdhbnQgdG8gdXNlIGZvciBwcm9kdWN0 aW9uIHRoYXQgaXMgZmluZSB3aXRoIG1lLiBBdCBsZWFzdCBmb3Igbm93Lg0KDQoNCktldmluDQo+ IA0KPiAtYm9yaXMNCj4gDQo+IA0KPiA+IFRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIHZteF9tc3Jf d3JpdGVfaW50ZXJjZXB0IHRha2VzIGEgdmNwdS1zdHJ1Y3QgYXMNCj4gPiBhIHBhcmFtZXRlciBh bmQgdXNlcyB0aGlzIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgdmNwdS4NCj4gPg0KPiA+IEluc3Rl YWQgb2YNCj4gPg0KPiA+IHN0YXRpY2ludCB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25l ZCBpbnQgbXNyLCB1aW50NjRfdA0KPiBtc3JfY29udGVudCkNCj4gPg0KPiA+IHsNCj4gPg0KPiA+ ICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7DQo+ID4NCj4gPiBJIGp1c3QgaGF2ZQ0KPiA+ DQo+ID4gc3RhdGljaW50IG93bl92bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQg bXNyLCB1aW50NjRfdA0KPiA+IG1zcl9jb250ZW50LCBzdHJ1Y3QgdmNwdSAqdikNCj4gPg0KPiA+ IEkgZ2V0IHRoaXMgdmNwdSBieSBkLT52Y3B1WzBdIGFzIEkgaGF2ZSBsaW1pdGVkIG15IGd1ZXN0 IGRvbWFpbiB0byBvbmUNCj4gPiB2Y3B1IGF0bS4NCj4gPg0KPiA+IE9mIGNvdXJzZSBJIGFsc28g dXNlIHNpbWlsYXJseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBjYWxsZWQNCj4gPiBmdW5jdGlv bnModnBtdV9kb193cm1zcizigKYpLg0KPiA+DQo+ID4gScK0bSBwcmV0dHkgc3VyZSB0aGF0IG15 IHByb2JsZW0gaXMgd2l0aCBhIHdyb25nIHNjb3BlL3VzYWdlIG9mIHRoZQ0KPiA+IHZjcHVzL21l bW9yeSwgYnV0IEkgaGF2ZSBubyBpZGVhIGhvdyB0byBmaXggdGhpcy4NCj4gPg0KPiA+IEkgY2Fu IHNlZSBhIHBvdGVudGlhbCBwcm9ibGVtIHdpdGggdGhlIG1lbW9yeSBhbGxvY2F0aW9uIChpbiB0 aGUgaG9zdCkNCj4gPiBpbnRvIHdoaWNoIHRoZSBjcHUgaW4gZ3Vlc3QtbW9kZSBpcyBzdXBwb3Nl ZCB0byB3cml0ZS4NCj4gPg0KPiA+IE9yIG1heWJlIEkgZ290IHRoZSBwcmluY2lwbGUgb2YgYSB2 Y3B1L3ZwbXUgYWxsIHdyb25nLg0KPiA+DQo+ID4gU2luY2UgSSBjb3VsZG7igJl0IGZpbmQgYW55 IHByb2plY3QgdGhhdCB1c2VzIHRoZSBCVFMgZm9yIHRoZSBndWVzdCwgSQ0KPiA+IGFtIHdvbmRl cmluZyBpZiBhbnlvbmUgaGFzIGV2ZXIgZG9uZSB0aGlzIGFuZCBpZiBpdCBpcyBwb3NzaWJsZSBh dCBhbGwuDQo+ID4NCj4gPiBBbnkgaW5wdXQgaXMgd2VsY29tZSBhcyBJIGFtIHByZXR0eSBtdWNo IHN0dWNrIGF0beKApg0KPiA+DQo+ID4gQ2hlZXJzDQo+ID4NCj4gPiBLZXZpbg0KPiA+DQo+ID4N Cj4gPiBfX19fX19fX19fX18NCj4gPiBWaXJ1cyBjaGVja2VkIGJ5IEcgRGF0YSBNYWlsU2VjdXJp dHkNCj4gPiBWZXJzaW9uOiBBVkEgMjUuNDA0IGRhdGVkIDI0LjAyLjIwMTUNCj4gPiBWaXJ1cyBu ZXdzOiB3d3cuYW50aXZpcnVzbGFiLmNvbSA8aHR0cDovL3d3dy5hbnRpdmlydXNsYWIuY29tPg0K PiA+DQo+ID4NCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiA+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiBYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZw0KPiA+IGh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbA0KDQpfX19fX19fX19fX18N ClZpcnVzIGNoZWNrZWQgYnkgRyBEYXRhIE1haWxTZWN1cml0eQ0KVmVyc2lvbjogQVZBIDI1LjQx OCBkYXRlZCAyNS4wMi4yMDE1DQpWaXJ1cyBuZXdzOiB3d3cuYW50aXZpcnVzbGFiLmNvbQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: Branch Trace Storage for guests and VPMUinitialization Date: Wed, 25 Feb 2015 11:31:31 -0500 Message-ID: <54EDF8E3.2060609@oracle.com> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <54ECB114.6040101@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Kevin.Mayer@gdata.de Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gMDIvMjUvMjAxNSAxMDoxMiBBTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6Cj4+IC0t LS0tVXJzcHLDvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0KPj4gVm9uOiBCb3JpcyBPc3Ryb3Zza3kg W21haWx0bzpib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbV0KPj4gR2VzZW5kZXQ6IERpZW5zdGFn LCAyNC4gRmVicnVhciAyMDE1IDE4OjEzCj4+IEFuOiBNYXllciwgS2V2aW47IHhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCj4+IEJldHJlZmY6IFJlOiBbWGVuLWRldmVsXSBCcmFuY2ggVHJhY2UgU3Rv cmFnZSBmb3IgZ3Vlc3RzIGFuZCBWUE1VCj4+IGluaXRpYWxpemF0aW9uCj4+Cj4+IE9uIDAyLzI0 LzIwMTUgMTA6MjcgQU0sIEtldmluLk1heWVyQGdkYXRhLmRlIHdyb3RlOgo+Pj4gSGkgZ3V5cwo+ Pj4KPj4+IElgbSB0cnlpbmcgdG8gc2V0IHVwIHRoZSBCVFMgc28gdGhhdCBJIGNhbiBsb2cgdGhl IGJyYW5jaGVzIHRha2VuIGluCj4+PiB0aGUgZ3Vlc3QgdXNpbmcgWGVuIDQuNC4xIHdpdGggYSBX aW5YUCBTUDMgZ3Vlc3Qgb24gYSBDb3JlIGk3IFNhbmR5Cj4+PiBCcmlkZ2UuCj4+Pgo+Pj4gSSBh ZGRlZCB0aGUgdnBtdT1idHMgYm9vdCBwYXJhbWV0ZXIgdG8gbXkgZ3J1YjIgY29uZmlndXJhdGlv biBhbmQKPj4+IGV4dGVuZGVkIHRoZSBsaWJ4bCxsaWJ4Yyxkb21jdGws4oCmIHdpdGggYW4gb3du IGNvbW1hbmQgc28gdGhhdCBJIGNhbgo+Pj4gdHJpZ2dlciB0aGUgYWN0aXZhdGlvbiBvZiB0aGUg QlRTIHdoZW5ldmVyIEkgd2FudC4KPj4+Cj4+Cj4+IEkgYW0gbm90IHN1cmUgd2h5IHlvdSBhcmUg ZG9pbmcgYWxsIHRoZXNlIGNoYW5nZXMgdG8gWGVuIGNvZGUuIEJUUyBpcwo+PiBzdXBwb3NlZCB0 byBiZSBtYW5hZ2VkIGZyb20gdGhlIGd1ZXN0LiBGb3IgZXhhbXBsZSwgYSBGZWRvcmEgSFZNIGd1 ZXN0Cj4+IHdpbGwgcHJvZHVjZSB0aGlzOgo+Pgo+PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243LTJu ZC1CLWVhc3QtMTAtMTUyLTU1LTE0MCB+XSMgcGVyZiByZWNvcmQgLWUKPj4gYnJhbmNoZXM6dSAt YyAxIC1kIHNsZWVwIDEgWyBwZXJmIHJlY29yZDogV29rZW4gdXAgMzgzOCB0aW1lcyB0byB3cml0 ZSBkYXRhIF0gWwo+PiBwZXJmIHJlY29yZDogQ2FwdHVyZWQgYW5kIHdyb3RlIDAuNzA0IE1CIHBl cmYuZGF0YSAofjMwNzU2IHNhbXBsZXMpIF0KPj4gW3Jvb3RAZGhjcC1idXJsaW5ndG9uNy0ybmQt Qi1lYXN0LTEwLTE1Mi01NS0xNDAgfl0jIHBlcmYgc2NyaXB0IC1mCj4+IGlwLGFkZHIsc3ltLGRz byxzeW1vZmYgLS1zaG93LWtlcm5lbC1wYXRoCj4+ICAgIGZmZmZmZmZmODE2N2MzNDcgbmF0aXZl X2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9Pgo+PiAzMjhjMDAxNTkwIFt1bmtu b3duXSAoL3Byb2Mva2NvcmUpCj4+ICAgIGZmZmZmZmZmODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1 cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9Pgo+PiAzMjhjMDAxNTkwIFt1bmtub3duXSAoW3Vu a25vd25dKQo+PiAgICAgICAgICAzMjhjMDAxNTkzIFt1bmtub3duXSAoW3Vua25vd25dKSA9PiAg ICAgICAzMjhjMDA0YjcwIFt1bmtub3duXQo+PiAoW3Vua25vd25dKQo+PiAuLi4KPj4KPiBJIHdh bnQgdG8gYmUgYWJsZSB0byBsb2cgdGhlIHRha2VuIGJyYW5jaGVzIChvZiB0aGUgZ3Vlc3QpIHdp dGhvdXQgdGhlIG5lZWQgdG8gbW9kaWZ5IHRoZSBndWVzdCBhdCBhbGwuCj4gVGhpcyBtZWFucyBJ IGhhdmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0aGUgaHlwZXJ2aXNvciwgb3IgYW0gSSB3cm9u Zz8KCkluIHRoYXQgY2FzZSwgeWVzLiBCdXQgdGhlbiB5b3UgaGF2ZSB0byBtYWtlIHN1cmUgdGhh dCBhdCBsZWFzdAogICogeW91IGRvbid0IGxvYWQgZ3Vlc3QncyBWUE1VIChvciwgYXQgbGVhc3Qs IEJUUy1yZWxhdGVkIHJlZ2lzdGVycykgb24gCmNvbnRleHQgc3dpdGNoCiAgKiBZb3UgZG9uJ3Qg c2VuZCB0aGUgaW50ZXJydXB0IHRvIHRoZSBndWVzdCAobWVhbmluZyB0aGF0IHlvdSB3aWxsIApu ZWVkIHRvIHNvbWVob3cgaW5mb3JtIGRvbTAgb2YgdGhlIEJUUyBpbnRlcnJ1cHQpCgphbmQgcHJv YmFibHkgbW9yZS4KCkVzc2VudGlhbGx5LCB5b3Ugd2FudCBkb20wIHRvIHByb2ZpbGUgdGhlIGd1 ZXN0LiBJIGhhdmUgYmVlbiB3b3JraW5nIG9uIApwYXRjaGVzIHRoYXQgd291bGQgYWxsb3cgdGhh dCBidXQgdGhleSBhcmUgc3RpbGwgdW5kZXIgcmV2aWV3LgoKCj4KPj4+IEluIHRoaXMgY29tbWFu ZCBJIGRvIHRoZSBmb2xsb3dpbmc6Cj4+Pgo+Pj4gSSBzZXQgdXAgdGhlIG1lbW9yeSByZWdpb24g Zm9yIHRoZSBCVFMgQnVmZmVyIGFuZCB0aGUgRFMgQnVmZmVyCj4+PiBNYW5hZ2VtZW50IEFyZWEg dXNpbmcgeHphbGxvY19ieXRlcwo+Pj4KPj4KPj4gSSBkb24ndCB0aGluayB5b3Ugc2hvdWxkIGJl IGFsbG9jYXRpbmcgQlRTIGJ1ZmZlcnMgaW4gdGhlIGh5cGVydmlzb3IsIHRoZXkgYXJlCj4+IGlu IGd1ZXN0J3MgbWVtb3J5Lgo+IEkgYWdyZWUuIEFzIEkgc2FpZCBJIHRoaW5rIHRoaXMgaXMgd2hl cmUgbXkgbWFpbiBwcm9ibGVtIGlzIGF0IHRoZSBtb21lbnQuCj4gSXMgdGhlcmUgYW55IHdheSBJ IGNhbiBhbGxvY2F0ZSBtZW1vcnkgaW4gdGhlIGh5cGVydmlzb3IgaW4gYSB3YXkgdGhlIGd1ZXN0 IGNhbiBhY2Nlc3MgaXQ/CgpJIGFtIG5vdCBzdXJlIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCBzaW5j ZSB5b3Ugc2VlbSB0byAqbm90KiB3YW50IHRoZSAKZ3Vlc3QgdG8gcHJvY2VzcyB0aGUgc2FtcGxl cywgcmlnaHQ/CgpCdXQgeWVzLCB5b3UgY2FuLiBFLmcuIHNvbWV0aGluZyBsaWtlIHdoYXQgbWFw X3ZjcHVfaW5mbygpIGRvZXMuIChJIGhhdmUgCm5vIGlkZWEgaG93IHlvdSdkIGRvIHRoaXMgZnJv bSBXaW5kb3dzLikKCgo+IE9mIGNvdXJzZSB0aGUgZ3Vlc3QgbXVzdCBub3QgYmUgYWJsZSB0byB1 c2UgdGhpcyBtZW1vcnkgaW4gaXRzIG5vcm1hbCBvcGVyYXRpb25zIGJ1dCBqdXN0IGZvciBCVFMu Cj4gSXMgdGhpcyBldmVuIHBvc3NpYmxlPyBJIGFtIHJhdGhlciBjb25mdXNlZCBhdCB0aGUgbW9t ZW50LiA6LUQKPgo+Pj4gVGhlbiBJIHdyaXRlIHRoZSBwb2ludGVyIHRvIHRoZSBCVFMgQnVmZmVy IGludG8gdGhlIERTIEJ1ZmZlcgo+Pj4gTWFuYWdlbWVudCBBcmVhIGF0ICsweDAgYW5kICsweDgg KEJUUyBCdWZmZXIgQmFzZSBhbmQgQlRTIEluZGV4KQo+Pj4KPj4+IFdoZW4gSSB1c2Ugdm14X21z cl93cml0ZV9pbnRlcmNlcHQgdG8gc3RvcmUgdGhlIHZhbHVlIGluCj4+PiBNU1JfSUEzMl9EU19B UkVBIHRoZSBob3N0IHJlYm9vdHMgKG15IGlkZWEgaXMgaGUgdHJpZXMgdG8gYWNjZXNzIGEKPj4+ IHZwbXUtc3RydWN0IHRoYXQgaXNuwrR0IHRoZXJlIGluIHRoZSBjdXJyZW50IHZjcHUgYW5kIHBh bmljcykuCgoKV2hvIGlzIHRyeWluZyB0byB3cml0ZSB0byBNU1JfSUEzMl9EU19BUkVBPyBUaGUg Z3Vlc3Qgb3IgZG9tMD8gSSB0aG91Z2h0IAp5b3Ugc2FpZCB0aGF0IHlvdSB3YW50IGRvbTAgdG8g ZG8gc2FtcGxpbmcuIE9yIGFyZSB5b3UgdHJ5aW5nIHRvIHNldHVwIApEUyBhcmVhIGZyb20geW91 ciBndWVzdCBhbmQgY29udHJvbCBpdCBmcm9tIGRvbTA/IEkgYW0gc29tZXdoYXQgY29uZnVzZWQu Cgo+Pj4KPj4gQ2FuIHlvdSBwb3N0IGh5cGVydmlzb3IgbG9nPyAoaGFyZCB0byBzYXkgaG93IGhl bHBmdWwgaXQgd2lsbCBiZSB3aXRob3V0Cj4+IHNlZWluZyB5b3VyIGNvZGUgY2hhbmdlcyB0aG91 Z2gpCj4+Cj4gUmlnaHQgYWZ0ZXIgZW5hYmxpbmcgdGhlIEJUUyBJIGdldCBhIHRyaXBsZSBmYXVs dC4KPiBodm0uYzoxMzU3OmQyIFRyaXBsZSBmYXVsdCBvbiBWQ1BVMCAtIGludm9raW5nIEhWTSBz aHV0ZG93biBhY3Rpb24gMS4KCgpUaGF0J3Mgbm90IGhvc3QgcmVib290LCB0aGlzIGlzIHlvdXIg Z3Vlc3QgZHlpbmcuCgoKPgo+Pj4gV2hlbiBJIHVzZSBhIG1vZGlmaWVkIHZlcnNpb24gb2Ygdm14 X21zcl93cml0ZV9pbnRlcmNlcHQgSSBkb27igJl0IGdldAo+Pj4gYW55IGNyYXNoZXMgYXMgbG9u ZyBhcyBJIGRvbuKAmXQgZW5hYmxlIEJUUyBhbmQgVFIgaW4gdGhlCj4+PiBHVUVTVF9JQTMyX0RF QlVHQ1RMIChCVFIgd29ya3MpLiBXaGVuIEkgZW5hYmxlIHRoZSBCVFMgKGFuZCBUUikgdGhlCj4+ PiBndWVzdCBjcmFzaGVzLiBJIHN1cHBvc2UgaGUgZ2V0cyBraWxsZWQgYnkgdGhlIGh5cGVydmlz b3IgZm9yCj4+PiBhY2Nlc3NpbmcgZm9yYmlkZGVuIG1lbW9yeS4KPj4+Cj4+IFBvc3NpYmx5IGJl Y2F1c2UgRFMgYXJlYSBwb2ludCB0byBoeXBlcnZpc29yIG1lbW9yeS4KPj4KPj4KPj4gSGF2aW5n IHNhaWQgYWxsIHRoaXMsIEkgYW0gbm90IHN1cmUgaG93IHdlbGwgQlRTIHdvcmtzLiBZb3UgZGlk IG5vdGljZQo+PiB0aGlzIGluIHRoZSBoeXBlcnZpc29yIGxvZzoKPj4KPj4gKFhFTikgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+IChYRU4p ICoqIFdBUk5JTkc6IEVtdWxhdGlvbiBvZiBCVFMgRmVhdHVyZSBpcyBzd2l0Y2hlZCBvbiAqKgo+ PiAoWEVOKSAqKiBVc2luZyB0aGlzIHByb2Nlc3NvciBmZWF0dXJlIGluIGEgdmlydHVhbGl6ZWQg KioKPj4gKFhFTikgKiogZW52aXJvbm1lbnQgaXMgbm90IDEwMCUgc2FmZS4gKioKPj4gKFhFTikg KiogU2V0dGluZyB0aGUgRFMgYnVmZmVyIGFkZHJlc3Mgd2l0aCB3cm9uZyB2YWx1ZXMgKioKPj4g KFhFTikgKiogbWF5IGxlYWQgdG8gaHlwZXJ2aXNvciBoYW5ncyBvciBjcmFzaGVzLiAqKgo+PiAo WEVOKSAqKiBJdCBpcyBOT1QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rpb24gdXNlISAqKgo+PiAo WEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKPj4KPiBZZXMsIEkgc2F3IHRoYXQuIEl0IGRvZXNu4oCZdCBzdGF0ZSB0aGF0IEJUUyBpcyBu b3Qgd29ya2luZyBhdCBhbGwsIGp1c3QgdGhhdCBpdCBpcyBub3QgdGhhdCBzYWZlIHRvIHVzZS4K PiBBcyBJIHVuZGVyc3RhbmQgaXQgYXMgbG9uZyBhcyBJIHNldCB0aGUgRFMgYnVmZmVyIGFkZHJl c3MgY29ycmVjdGx5IEkgc2hvdWxkIGJlIGZpbmUsIHJpZ2h0PwoKUmlnaHQuIEV4Y2VwdCB0aGF0 IEkgYW0gbm90IGNvbnZpbmNlZCB5b3UgZGlkIHNldCB0aGlzIGJ1ZmZlciBjb3JyZWN0bHksIAp3 aGljaCBpcyBwb3NzaWJseSB3aHkgeW91ciBoeXBlcnZpc29yIGNyYXNoZWQgKEkgYW0gbm90IHN1 cmUgSSAKdW5kZXJzdG9vZCB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgdGhvdWdoKS4KCi1ib3Jp cwoKPiBTaW5jZSBJIGRvbuKAmXQgd2FudCB0byB1c2UgZm9yIHByb2R1Y3Rpb24gdGhhdCBpcyBm aW5lIHdpdGggbWUuIEF0IGxlYXN0IGZvciBub3cuCj4KPgo+IEtldmluCj4+IC1ib3Jpcwo+Pgo+ Pgo+Pj4gVGhlIG1vZGlmaWVkIHZlcnNpb24gb2Ygdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdGFr ZXMgYSB2Y3B1LXN0cnVjdCBhcwo+Pj4gYSBwYXJhbWV0ZXIgYW5kIHVzZXMgdGhpcyBpbnN0ZWFk IG9mIHRoZSBjdXJyZW50IHZjcHUuCj4+Pgo+Pj4gSW5zdGVhZCBvZgo+Pj4KPj4+IHN0YXRpY2lu dCB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdAo+PiBt c3JfY29udGVudCkKPj4+IHsKPj4+Cj4+PiAgICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsK Pj4+Cj4+PiBJIGp1c3QgaGF2ZQo+Pj4KPj4+IHN0YXRpY2ludCBvd25fdm14X21zcl93cml0ZV9p bnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QKPj4+IG1zcl9jb250ZW50LCBzdHJ1 Y3QgdmNwdSAqdikKPj4+Cj4+PiBJIGdldCB0aGlzIHZjcHUgYnkgZC0+dmNwdVswXSBhcyBJIGhh dmUgbGltaXRlZCBteSBndWVzdCBkb21haW4gdG8gb25lCj4+PiB2Y3B1IGF0bS4KPj4+Cj4+PiBP ZiBjb3Vyc2UgSSBhbHNvIHVzZSBzaW1pbGFybHkgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgY2Fs bGVkCj4+PiBmdW5jdGlvbnModnBtdV9kb193cm1zcizigKYpLgo+Pj4KPj4+IEnCtG0gcHJldHR5 IHN1cmUgdGhhdCBteSBwcm9ibGVtIGlzIHdpdGggYSB3cm9uZyBzY29wZS91c2FnZSBvZiB0aGUK Pj4+IHZjcHVzL21lbW9yeSwgYnV0IEkgaGF2ZSBubyBpZGVhIGhvdyB0byBmaXggdGhpcy4KPj4+ Cj4+PiBJIGNhbiBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSB3aXRoIHRoZSBtZW1vcnkgYWxsb2Nh dGlvbiAoaW4gdGhlIGhvc3QpCj4+PiBpbnRvIHdoaWNoIHRoZSBjcHUgaW4gZ3Vlc3QtbW9kZSBp cyBzdXBwb3NlZCB0byB3cml0ZS4KPj4+Cj4+PiBPciBtYXliZSBJIGdvdCB0aGUgcHJpbmNpcGxl IG9mIGEgdmNwdS92cG11IGFsbCB3cm9uZy4KPj4+Cj4+PiBTaW5jZSBJIGNvdWxkbuKAmXQgZmlu ZCBhbnkgcHJvamVjdCB0aGF0IHVzZXMgdGhlIEJUUyBmb3IgdGhlIGd1ZXN0LCBJCj4+PiBhbSB3 b25kZXJpbmcgaWYgYW55b25lIGhhcyBldmVyIGRvbmUgdGhpcyBhbmQgaWYgaXQgaXMgcG9zc2li bGUgYXQgYWxsLgo+Pj4KPj4+IEFueSBpbnB1dCBpcyB3ZWxjb21lIGFzIEkgYW0gcHJldHR5IG11 Y2ggc3R1Y2sgYXRt4oCmCj4+Pgo+Pj4gQ2hlZXJzCj4+Pgo+Pj4gS2V2aW4KPj4+Cj4+Pgo+Pj4g X19fX19fX19fX19fCj4+PiBWaXJ1cyBjaGVja2VkIGJ5IEcgRGF0YSBNYWlsU2VjdXJpdHkKPj4+ IFZlcnNpb246IEFWQSAyNS40MDQgZGF0ZWQgMjQuMDIuMjAxNQo+Pj4gVmlydXMgbmV3czogd3d3 LmFudGl2aXJ1c2xhYi5jb20gPGh0dHA6Ly93d3cuYW50aXZpcnVzbGFiLmNvbT4KPj4+Cj4+Pgo+ Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+IFhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4+PiBodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKPiBfX19fX19fX19fX18KPiBWaXJ1cyBjaGVja2Vk IGJ5IEcgRGF0YSBNYWlsU2VjdXJpdHkKPiBWZXJzaW9uOiBBVkEgMjUuNDE4IGRhdGVkIDI1LjAy LjIwMTUKPiBWaXJ1cyBuZXdzOiB3d3cuYW50aXZpcnVzbGFiLmNvbQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Re: Branch Trace Storage for guestsandVPMUinitialization Date: Thu, 26 Feb 2015 13:44:05 +0000 Message-ID: <5C9C3B9BEF1B354596EAE3D6800D876BA474FB@e1.gdata.de> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <54ECB114.6040101@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA47347@e1.gdata.de> <54EE4A8E.3030207@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54EE4A8E.3030207@oracle.com> Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: boris.ostrovsky@oracle.com Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org DQoNCj4gLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KPiBWb246IEJvcmlzIE9z dHJvdnNreSBbbWFpbHRvOmJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tXQ0KPiBHZXNlbmRldDog TWl0dHdvY2gsIDI1LiBGZWJydWFyIDIwMTUgMjM6MjANCj4gQW46IE1heWVyLCBLZXZpbg0KPiBC ZXRyZWZmOiBSZTogQVc6IEFXOiBbWGVuLWRldmVsXSBCcmFuY2ggVHJhY2UgU3RvcmFnZSBmb3Ig Z3Vlc3RzDQo+IGFuZFZQTVVpbml0aWFsaXphdGlvbg0KPiANCj4gT24gMDIvMjUvMjAxNSAwMToy MyBQTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6DQo+ID4NCj4gPj4gLS0tLS1VcnNwcsO8 bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KPiA+PiBWb246IEJvcmlzIE9zdHJvdnNreSBbbWFpbHRv OmJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tXQ0KPiA+PiBHZXNlbmRldDogTWl0dHdvY2gsIDI1 LiBGZWJydWFyIDIwMTUgMTc6MzINCj4gPj4gQW46IE1heWVyLCBLZXZpbg0KPiA+PiBDYzogeGVu LWRldmVsQGxpc3RzLnhlbi5vcmcNCj4gPj4gQmV0cmVmZjogUmU6IEFXOiBbWGVuLWRldmVsXSBC cmFuY2ggVHJhY2UgU3RvcmFnZSBmb3IgZ3Vlc3RzIGFuZA0KPiA+PiBWUE1VaW5pdGlhbGl6YXRp b24NCj4gPj4NCj4gPj4gT24gMDIvMjUvMjAxNSAxMDoxMiBBTSwgS2V2aW4uTWF5ZXJAZ2RhdGEu ZGUgd3JvdGU6DQo+ID4+Pj4gLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KPiA+ Pj4+IFZvbjogQm9yaXMgT3N0cm92c2t5IFttYWlsdG86Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5j b21dDQo+ID4+Pj4gR2VzZW5kZXQ6IERpZW5zdGFnLCAyNC4gRmVicnVhciAyMDE1IDE4OjEzDQo+ ID4+Pj4gQW46IE1heWVyLCBLZXZpbjsgeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCj4gPj4+PiBC ZXRyZWZmOiBSZTogW1hlbi1kZXZlbF0gQnJhbmNoIFRyYWNlIFN0b3JhZ2UgZm9yIGd1ZXN0cyBh bmQgVlBNVQ0KPiA+Pj4+IGluaXRpYWxpemF0aW9uDQo+ID4+Pj4NCj4gPj4+PiBPbiAwMi8yNC8y MDE1IDEwOjI3IEFNLCBLZXZpbi5NYXllckBnZGF0YS5kZSB3cm90ZToNCj4gPj4+Pj4gSGkgZ3V5 cw0KPiA+Pj4+Pg0KPiA+Pj4+PiBJYG0gdHJ5aW5nIHRvIHNldCB1cCB0aGUgQlRTIHNvIHRoYXQg SSBjYW4gbG9nIHRoZSBicmFuY2hlcyB0YWtlbg0KPiA+Pj4+PiBpbiB0aGUgZ3Vlc3QgdXNpbmcg WGVuIDQuNC4xIHdpdGggYSBXaW5YUCBTUDMgZ3Vlc3Qgb24gYSBDb3JlIGk3DQo+ID4+Pj4+IFNh bmR5IEJyaWRnZS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBhZGRlZCB0aGUgdnBtdT1idHMgYm9vdCBw YXJhbWV0ZXIgdG8gbXkgZ3J1YjIgY29uZmlndXJhdGlvbiBhbmQNCj4gPj4+Pj4gZXh0ZW5kZWQg dGhlIGxpYnhsLGxpYnhjLGRvbWN0bCzigKYgd2l0aCBhbiBvd24gY29tbWFuZCBzbyB0aGF0IEkN Cj4gPj4+Pj4gY2FuIHRyaWdnZXIgdGhlIGFjdGl2YXRpb24gb2YgdGhlIEJUUyB3aGVuZXZlciBJ IHdhbnQuDQo+ID4+Pj4+DQo+ID4+Pj4gSSBhbSBub3Qgc3VyZSB3aHkgeW91IGFyZSBkb2luZyBh bGwgdGhlc2UgY2hhbmdlcyB0byBYZW4gY29kZS4gQlRTDQo+ID4+Pj4gaXMgc3VwcG9zZWQgdG8g YmUgbWFuYWdlZCBmcm9tIHRoZSBndWVzdC4gRm9yIGV4YW1wbGUsIGEgRmVkb3JhDQo+IEhWTQ0K PiA+Pj4+IGd1ZXN0IHdpbGwgcHJvZHVjZSB0aGlzOg0KPiA+Pj4+DQo+ID4+Pj4gW3Jvb3RAZGhj cC1idXJsaW5ndG9uNy0ybmQtQi1lYXN0LTEwLTE1Mi01NS0xNDAgfl0jIHBlcmYgcmVjb3JkIC1l DQo+ID4+Pj4gYnJhbmNoZXM6dSAtYyAxIC1kIHNsZWVwIDEgWyBwZXJmIHJlY29yZDogV29rZW4g dXAgMzgzOCB0aW1lcyB0bw0KPiA+Pj4+IHdyaXRlIGRhdGEgXSBbIHBlcmYgcmVjb3JkOiBDYXB0 dXJlZCBhbmQgd3JvdGUgMC43MDQgTUIgcGVyZi5kYXRhDQo+ID4+Pj4gKH4zMDc1NiBzYW1wbGVz KSBdDQo+ID4+Pj4gW3Jvb3RAZGhjcC1idXJsaW5ndG9uNy0ybmQtQi1lYXN0LTEwLTE1Mi01NS0x NDAgfl0jIHBlcmYgc2NyaXB0IC1mDQo+ID4+Pj4gaXAsYWRkcixzeW0sZHNvLHN5bW9mZiAtLXNo b3cta2VybmVsLXBhdGgNCj4gPj4+PiAgICAgZmZmZmZmZmY4MTY3YzM0NyBuYXRpdmVfaXJxX3Jl dHVybl9pcmV0KzB4MCAoL3Byb2Mva2NvcmUpID0+DQo+ID4+Pj4gMzI4YzAwMTU5MCBbdW5rbm93 bl0gKC9wcm9jL2tjb3JlKQ0KPiA+Pj4+ICAgICBmZmZmZmZmZjgxNjdjMzQ3IG5hdGl2ZV9pcnFf cmV0dXJuX2lyZXQrMHgwICgvcHJvYy9rY29yZSkgPT4NCj4gPj4+PiAzMjhjMDAxNTkwIFt1bmtu b3duXSAoW3Vua25vd25dKQ0KPiA+Pj4+ICAgICAgICAgICAzMjhjMDAxNTkzIFt1bmtub3duXSAo W3Vua25vd25dKSA9PiAgICAgICAzMjhjMDA0YjcwIFt1bmtub3duXQ0KPiA+Pj4+IChbdW5rbm93 bl0pDQo+ID4+Pj4gLi4uDQo+ID4+Pj4NCj4gPj4+IEkgd2FudCB0byBiZSBhYmxlIHRvIGxvZyB0 aGUgdGFrZW4gYnJhbmNoZXMgKG9mIHRoZSBndWVzdCkgd2l0aG91dA0KPiA+Pj4gdGhlIG5lZWQN Cj4gPj4gdG8gbW9kaWZ5IHRoZSBndWVzdCBhdCBhbGwuDQo+ID4+PiBUaGlzIG1lYW5zIEkgaGF2 ZSB0byBkbyBhbGwgdGhlIGxvZ2ljIGluIHRoZSBoeXBlcnZpc29yLCBvciBhbSBJIHdyb25nPw0K PiA+PiBJbiB0aGF0IGNhc2UsIHllcy4gQnV0IHRoZW4geW91IGhhdmUgdG8gbWFrZSBzdXJlIHRo YXQgYXQgbGVhc3QNCj4gPj4gICAgKiB5b3UgZG9uJ3QgbG9hZCBndWVzdCdzIFZQTVUgKG9yLCBh dCBsZWFzdCwgQlRTLXJlbGF0ZWQNCj4gPj4gcmVnaXN0ZXJzKSBvbiBjb250ZXh0IHN3aXRjaA0K PiA+PiAgICAqIFlvdSBkb24ndCBzZW5kIHRoZSBpbnRlcnJ1cHQgdG8gdGhlIGd1ZXN0IChtZWFu aW5nIHRoYXQgeW91IHdpbGwNCj4gPj4gbmVlZCB0byBzb21laG93IGluZm9ybSBkb20wIG9mIHRo ZSBCVFMgaW50ZXJydXB0KQ0KPiA+Pg0KPiA+PiBhbmQgcHJvYmFibHkgbW9yZS4NCj4gPj4NCj4g Pj4gRXNzZW50aWFsbHksIHlvdSB3YW50IGRvbTAgdG8gcHJvZmlsZSB0aGUgZ3Vlc3QuIEkgaGF2 ZSBiZWVuIHdvcmtpbmcNCj4gPj4gb24gcGF0Y2hlcyB0aGF0IHdvdWxkIGFsbG93IHRoYXQgYnV0 IHRoZXkgYXJlIHN0aWxsIHVuZGVyIHJldmlldy4NCj4gPj4NCj4gPiBZZXMsIHRoaXMgaXMgZXhh Y3RseSB3aGF0IEkgd2FudCB0byBkby4NCj4gPiBUb28gYmFkIHRoYXQgeW91ciBwYXRjaGVzIGFy ZSB1bmRlciByZXZpZXcuIFdvdWxkIGhhdmUgYmVlbiBwcmV0dHkNCj4gaGVscGZ1bCBJIHRoaW5r Lg0KPiANCj4gVG8gYmUgaG9uZXN0LCBJIG5ldmVyIHRlc3RlZCB0aGVtIGZvciBCVFMgc28gdGhl eSBtYXkgbm90IHdvcmsgaW4gdGhhdA0KPiBtb2RlLiBJbiBmYWN0LCBhcyB5b3Ugd2lsbCByZWFs aXplIGJ5IHJlYWRpbmcgd2hhdCBJIHNhaWQgYmVsb3csIHRoZXkgcHJvYmFibHkNCj4gZG9uJ3Qg Oy0oDQo+IA0KPiA+IE1heWJlIEkgc2hvdWxkIHBvaW50IG91dCB0aGF0IEnCtG0gYSB0b3RhbCBu b29iIHdpdGggeGVuIGFuZCBJIGRlZmluaXRlbHkNCj4gZG9u4oCZdCB1bmRlcnN0YW5kIGFsbCBw YXJ0cyB5ZXQuDQo+ID4gU28gdGhlcmUgbWF5IGJlIHNvbWUgZHVtYiBtaXN0YWtlcyBpbiBteSBh c3N1bXB0aW9ucy4NCj4gPg0KPiA+Pj4+PiBJbiB0aGlzIGNvbW1hbmQgSSBkbyB0aGUgZm9sbG93 aW5nOg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIHNldCB1cCB0aGUgbWVtb3J5IHJlZ2lvbiBmb3IgdGhl IEJUUyBCdWZmZXIgYW5kIHRoZSBEUyBCdWZmZXINCj4gPj4+Pj4gTWFuYWdlbWVudCBBcmVhIHVz aW5nIHh6YWxsb2NfYnl0ZXMNCj4gPj4+Pj4NCj4gPj4+PiBJIGRvbid0IHRoaW5rIHlvdSBzaG91 bGQgYmUgYWxsb2NhdGluZyBCVFMgYnVmZmVycyBpbiB0aGUNCj4gPj4+PiBoeXBlcnZpc29yLCB0 aGV5DQo+ID4+IGFyZQ0KPiA+Pj4+IGluIGd1ZXN0J3MgbWVtb3J5Lg0KPiA+Pj4gSSBhZ3JlZS4g QXMgSSBzYWlkIEkgdGhpbmsgdGhpcyBpcyB3aGVyZSBteSBtYWluIHByb2JsZW0gaXMgYXQgdGhl IG1vbWVudC4NCj4gPj4+IElzIHRoZXJlIGFueSB3YXkgSSBjYW4gYWxsb2NhdGUgbWVtb3J5IGlu IHRoZSBoeXBlcnZpc29yIGluIGEgd2F5DQo+ID4+PiB0aGUgZ3Vlc3QNCj4gPj4gY2FuIGFjY2Vz cyBpdD8NCj4gPj4NCj4gPj4gSSBhbSBub3Qgc3VyZSB0aGlzIGlzIHdoYXQgeW91IHdhbnQgc2lu Y2UgeW91IHNlZW0gdG8gKm5vdCogd2FudCB0aGUNCj4gPj4gZ3Vlc3QgdG8gcHJvY2VzcyB0aGUg c2FtcGxlcywgcmlnaHQ/DQo+ID4+DQo+ID4+IEJ1dCB5ZXMsIHlvdSBjYW4uIEUuZy4gc29tZXRo aW5nIGxpa2Ugd2hhdCBtYXBfdmNwdV9pbmZvKCkgZG9lcy4gKEkNCj4gPj4gaGF2ZSBubyBpZGVh IGhvdyB5b3UnZCBkbyB0aGlzIGZyb20gV2luZG93cy4pDQo+ID4gUmlnaHQgYWdhaW4uIEFzIHlv dSBzYWlkIG15IGdvYWwgaXMgdG8gcHJvZmlsZSB0aGUgZ3Vlc3QgZnJvbSBkb20wLiBTbw0KPiB3 aGVuZXZlciB0aGUgQ1BVIGlzIGluIGd1ZXN0bW9kZSBhbmQgYSBicmFuY2ggaXMgdGFrZW4gaXQg c2hvdWxkIGJlIHN0b3JlZA0KPiBpbiB0aGUgQlRTLCBidXQgbm90IHdoZW4gdGhlIENQVSBpcyBy dW5uaW5nIGRvbTAuIE15IGlkZWEgd2FzIGJhc2ljYWxseSB0bw0KPiBzZXQgdXAgdGhlIG1lbW9y eSBmb3IgdGhlIEJUUyBhbmQgdGhlIEdVRVNUX0lBMzJfREVCVUdDVEwgc28gd2hlbg0KPiB0aGVy ZSBpcyBhIHZtZXhpdCB0aGUgbG9nZ2luZyBzdG9wcyBhbmQgc3RhcnRzIGFnYWluIHdoZW4gdGhl cmUgaXMgYSB2bWVudGVyLg0KPiBBcyBmYXIgYXMgSSB1bmRlcnN0YW5kIHRoZSBJQTMyX0RFQlVH Q1RMIGdldHMgc3dpdGNoZWQgYmV0d2VlbiB0aGUNCj4gZG9tMC12YWx1ZSBhbmQgdGhlIGd1ZXN0 LXZhbHVlIChzdG9yZWQgaW4gdm1jcykgd2hlbiB0aGVyZSBpcyBhDQo+IHZtZXhpdC92bWVudGVy LCByaWdodD8NCj4gDQo+IFJpZ2h0LiBBbmQgbm93IEkgYW0gbm90IGxvbmdlciBzdXJlIHdoZXRo ZXIgeW91ciBidWZmZXIgc2hvdWxkIGJlIGluDQo+IGh5cGVydmlzb3Igb3IgZ3Vlc3QncyBzcGFj ZTogYWZ0ZXIgVk1FTlRFUiB0aGUgaGFyZHdhcmUgd2lsbCBsb2FkIGd1ZXN0J3MNCj4gdmVyc2lv bnMgb2YgSUEzMl9ERUJVR0NUTE1TUiBhbmQgTVNSX0lBMzJfRFNfQVJFQS4gSSBkb24ndCBrbm93 DQo+IHdoZXRoZXIgeW91IGNhbiBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcgKG5lZWQgdG8g bG9vayBpbiB0aGUgc3BlYykuDQo+IEFuZCBpZiB0aGF0J3MgdGhlIGNhc2UgdGhlbiB5b3UgbWln aHQgYmUgYWJsZSB0bzoNCj4gDQo+IDEuIE1hcCBEUyBhcmVhIGFuZCBCVFMgYnVmZmVyIGluIGJv dGggZ3Vlc3QgYW5kIGh5cGVydmlzb3IuIEkgYmVsaWV2ZSB5b3VyDQo+IGd1ZXN0IHdpbGwgaGF2 ZSB0byBoYXZlIHRoaXMgbWFwcGVkIHNpbmNlIHRoZXNlIGFyZXMgd2lsbCBiZSBhY2Nlc3NlZCB2 aWENCj4gZ3Vlc3QncyBFUFQuIEFzIEkgc2FpZCwgSSBkb24ndCBrbm93IGhvdyB5b3UnZCBkbyB0 aGlzIGluIFdpbmRvd3MgLS0tIEkga25vdw0KPiBub3RoaW5nIGFib3V0IHByb2dyYW1taW5nIHRo ZXJlLiBJIGFzc3VtZSBpdCBjYW4gYmUgZG9uZSBzaW5jZSB0aGVyZSBhcmUNCj4gV2luZG93cyBQ ViBkcml2ZXJzIGZvciBYZW4uDQo+IDIuIEhhdmUgZG9tMCBzZXQgYXBwcm9wcmlhdGUgYml0cyBp biBJQTMyX0RFQlVHQ1RMTVNSIHRvIHN0YXJ0IHRyYWNpbmcuDQo+IFlvdSB3aWxsIG5lZWQgdG8g Zmlyc3QgcGF1c2UgeW91ciBndWVzdCdzIFZDUFVzLCB0aGVuIHVwZGF0ZSBhcHByb3ByaWF0ZQ0K PiByZWdpc3RlciBpbiBWTUNTIChicmFja2V0ZWQgd2l0aCB2bXhfdm1jc19lbnRlci9leGl0KSBh bmQgdGhlbiB1bnBhdXNlDQo+IGl0Lg0KPiAzLiBJZiB5b3UgcHJvZ3JhbSBCVFMgdG8gZ2VuZXJh dGUgaW50ZXJydXB0cyB5b3UgbWF5IG5lZWQgdG8gZG8gc29tZXRoaW5nDQo+IGFib3V0IGl0IGlu IHZwbXVfaW50ZXJydXB0KCkgdG8gcHJldmVudCB0aG9zZSBpbnRlcnJ1cHRzIGZyb20gZ29pbmcg aW50byB0aGUNCj4gZ3Vlc3QgYXMgdGhpcyB3aWxsIGxpa2VseSBjb25mdXNlIGl0IGFuZCBpdCB3 aWxsIGRpZSAodGhlIGludGVycnVwdCBJIHRoaW5rIHdpbGwgYmUgYW4NCj4gTk1JLCBtYWtpbmcg dGhpbmdzIHJlYWwgYmFkIGZvciB0aGUgZ3Vlc3QpLg0KPiAzLiBOb3cgeW91IHNob3VsZCBiZSBh YmxlIHRvIHJlYWQgYnVmZmVycyBmcm9tIGh5cGVydmlzb3IuDQoNCldoeSBzaG91bGQgSSBwcmV2 ZW50IHRoZSBsb2FkaW5nIG9mIGd1ZXN0IElBMzJfREVCVUdDVExNU1IgYW5kIE1TUl9JQTMyX0RT X0FSRUE/DQpUaGUgaWRlYSB3YXMgdG8gYWNjZXNzL3NldHVwIHRoZSBndWVzdCBJQTMyX0RFQlVH Q1RMTVNSIGFuZCBNU1JfSUEzMl9EU19BUkVBIHdoZW4gaW4gZG9tMC4gDQpTbyB3aGVuIHRoZXJl IGlzIGEgVk1FTlRFUiB0aGUgZ3Vlc3QgcmVnaXN0ZXJzIGdldCBsb2FkZWQgYW5kIHRoZSBCVFMg c3RhcnRzIHRvIGxvZy4NCkFuZCBzdG9wcyBvZiBjb3Vyc2Ugd2hlbiB0aGVyZSBpcyBhbiBWTUVY SVQuDQoNClJlZ2FyZGluZyAxLg0KSWBtIG5vdCBzdXJlIGhvdyBJIGtub3cgYXQgd2hpY2ggYWRk cmVzcyB0aGUgQlRTIGlzIGxvY2F0ZWQgaW4gdGhpcyBjYXNlLg0KTGV0wrRzIHNheSBJIHNldHVw IHRoZSBCVFMgaW4gdGhlIGd1ZXN0IGF0IGFkZHJlc3MgeC4gVG8gZ2V0IHRoaXMgYWRkcmVzcyB4 IEkgbmVlZCB0byANCnJlYWQgdGhlIGd1ZXN0IE1TUl9JQTMyX0RTX0FSRUEsIHJpZ2h0Pw0KRm9y IHRoaXMgSSB3b3VsZCBuZWVkIHRvIGFjY2VzcyB0aGUgdmNwdS0+YXJjaF92Y3B1LT4gaHZtX3Zj cHUtPnZwbXUgDQp1c2VkIGJ5IHRoZSBndWVzdCBzaW5jZSB0aGUgTVNSX0lBMzJfRFNfQVJFQSBp c25gdCBwYXJ0IG9mIHRoZSB2bWNzIA0KKGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIGFjY2Vzc2Vk IGJ5IHRoZSBoYW5keSBfX3ZtcmVhZCgpKS4NCklzIHRoZXJlIGEgZ29vZCB3YXkgdG8gZ2V0IHRo aXMgaW5mb3JtYXRpb24gZHVyaW5nIGEgdnBtdV9pbnRlcnJ1cHQoKSAoc2luY2UgSSBiZWxpZXZl DQpUaGUgQlRJTlQgd2lsbCBoYXZlIHRvIGJlIGhhbmRsZWQgdGhlcmUpLCBvciBtYXliZSBhIFZN RVhJVD8NCg0KMi4gSSBhbHJlYWR5IHVzZSB0aGUgdm14X3ZtY3NfZW50ZXIvZXhpdCBidXQgZGlk buKAmXQgdGhpbmsgYWJvdXQgcGF1c2luZyB0aGUgdnBjdS4NCkkgd2lsbCBhZGQgdGhhdC4NCg0K My4gSSBkaWRu4oCZdCBsb29rIGF0IHRoZSBCVElOVCB5ZXQsIGJ1dCB0aGlzIHNvdW5kcyByZWFz b25hYmxlLg0KDQo+IA0KPiA+IFRoaXMgd291bGQgYmUgInRoZSBndWVzdCBpcyBsb2dnaW5nIHRo ZSBicmFuY2ggdHJhY2VzIiwgYnV0IGl0IGlzIHNldHVwIGFuZA0KPiBjb250cm9sbGVkIGZyb20g dGhlIGRvbTAuIFNvIG1vcmUgb3IgbGVzcyBhIGh5YnJpZCBJIHRoaW5rLg0KPiA+DQo+ID4+PiBP ZiBjb3Vyc2UgdGhlIGd1ZXN0IG11c3Qgbm90IGJlIGFibGUgdG8gdXNlIHRoaXMgbWVtb3J5IGlu IGl0cw0KPiA+Pj4gbm9ybWFsDQo+ID4+IG9wZXJhdGlvbnMgYnV0IGp1c3QgZm9yIEJUUy4NCj4g Pj4+IElzIHRoaXMgZXZlbiBwb3NzaWJsZT8gSSBhbSByYXRoZXIgY29uZnVzZWQgYXQgdGhlIG1v bWVudC4gOi1EDQo+ID4+Pg0KPiA+Pj4+PiBUaGVuIEkgd3JpdGUgdGhlIHBvaW50ZXIgdG8gdGhl IEJUUyBCdWZmZXIgaW50byB0aGUgRFMgQnVmZmVyDQo+ID4+Pj4+IE1hbmFnZW1lbnQgQXJlYSBh dCArMHgwIGFuZCArMHg4IChCVFMgQnVmZmVyIEJhc2UgYW5kIEJUUyBJbmRleCkNCj4gPj4+Pj4N Cj4gPj4+Pj4gV2hlbiBJIHVzZSB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCB0byBzdG9yZSB0aGUg dmFsdWUgaW4NCj4gPj4+Pj4gTVNSX0lBMzJfRFNfQVJFQSB0aGUgaG9zdCByZWJvb3RzIChteSBp ZGVhIGlzIGhlIHRyaWVzIHRvIGFjY2VzcyBhDQo+ID4+Pj4+IHZwbXUtc3RydWN0IHRoYXQgaXNu wrR0IHRoZXJlIGluIHRoZSBjdXJyZW50IHZjcHUgYW5kIHBhbmljcykuDQo+ID4+DQo+ID4+IFdo byBpcyB0cnlpbmcgdG8gd3JpdGUgdG8gTVNSX0lBMzJfRFNfQVJFQT8gVGhlIGd1ZXN0IG9yIGRv bTA/IEkNCj4gPj4gdGhvdWdodCB5b3Ugc2FpZCB0aGF0IHlvdSB3YW50IGRvbTAgdG8gZG8gc2Ft cGxpbmcuIE9yIGFyZSB5b3UgdHJ5aW5nDQo+ID4+IHRvIHNldHVwIERTIGFyZWEgZnJvbSB5b3Vy IGd1ZXN0IGFuZCBjb250cm9sIGl0IGZyb20gZG9tMD8gSSBhbQ0KPiBzb21ld2hhdCBjb25mdXNl ZC4NCj4gPj4NCj4gPiBUaGUgZG9tMCB3cml0ZXMgdG8gTVNSX0lBMzJfRFNfQVJFQS4gSSB3YW50 IHRvIGRvIGFsbCB0aGUgc2V0dXAgYW5kDQo+ID4gY29udHJvbGxpbmcgZnJvbSBkb20wIGluIGEg d2F5IHRoYXQgZW5hYmxlcyB0aGUgZ3Vlc3QgdG8gc3RvcmUgYnJhbmNoDQo+ID4gdHJhY2VzIGlu IHRoZSBCVFMgKHRoYXQgd2FzIHNldHVwIGJ5IHRoZSBkb20wKQ0KPiANCj4gSSB0aGluayBJIHVu ZGVyc3RhbmQgd2h5IHlvdSBjcmFzaCBoeXBlcnZpc29yIG5vdy4gSSBtZW50aW9uZWQgYWJvdmUg dGhhdA0KPiB3cml0aW5nIGludG8gdm1jcyByZXF1aXJlcyBicmFja2V0aW5nIGJ5IHZteF92bWNz X2VudGVyL2V4aXQuIFNvLCBpbg0KPiBhZGRpdGlvbiB0byBoYXZpbmcgbmV3IHZjcHUgcGFyYW1l dGVyIHRvIHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KCksIHlvdQ0KPiBuZWVkIHRvIGFkZCB0aG9z ZSB0d28uIFNlZSB2bXhfdmxhcGljX21zcl9jaGFuZ2VkKCksIHJpZ2h0IGFib3ZlDQo+IHZteF9t c3Jfd3JpdGVfaW50ZXJjZXB0KCkuIEFuZCBkb24ndCBmb3JnZXQgdG8gcGF1c2UgZ3Vlc3QncyB2 Y3B1IChJIGFtDQo+IHByZXR0eSBzdXJlIHlvdSBuZWVkIHRoYXQgc2luY2UgeW91ciBndWVzdCBt YXkgYmUgcnVubmluZyBzb21ld2hlcmUgZWxzZQ0KPiBhdCB0aGlzIHRpbWUpLg0KPiANCj4gDQo+ ID4gU29ycnkgaWYgbXkgZXhwbGFuYXRpb25zIGFyZSBhIGJpdCBjb25mdXNpbmcuIEkgbXlzZWxm IGFtIGNvbmZ1c2VkIGFib3V0DQo+IHRoaXMgcGFydCBvZiB0aGUgWGVuLWNvZGUuDQo+ID4NCj4g Pj4+PiBDYW4geW91IHBvc3QgaHlwZXJ2aXNvciBsb2c/IChoYXJkIHRvIHNheSBob3cgaGVscGZ1 bCBpdCB3aWxsIGJlDQo+ID4+Pj4gd2l0aG91dCBzZWVpbmcgeW91ciBjb2RlIGNoYW5nZXMgdGhv dWdoKQ0KPiA+Pj4+DQo+ID4+PiBSaWdodCBhZnRlciBlbmFibGluZyB0aGUgQlRTIEkgZ2V0IGEg dHJpcGxlIGZhdWx0Lg0KPiA+Pj4gaHZtLmM6MTM1NzpkMiBUcmlwbGUgZmF1bHQgb24gVkNQVTAg LSBpbnZva2luZyBIVk0gc2h1dGRvd24gYWN0aW9uIDEuDQo+ID4+DQo+ID4+IFRoYXQncyBub3Qg aG9zdCByZWJvb3QsIHRoaXMgaXMgeW91ciBndWVzdCBkeWluZy4NCj4gPg0KPiA+IFllcw0KPiA+ IFdoZW4gSSB1c2UgbXkgb3duIHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0ICh3aGljaCBleHBsaWNp dGx5IHVzZXMgdGhlDQo+IHZjcHUgb2YgbXkgZ3Vlc3QgZG9tYWluIGluc3RlYWQgb2YgdGhlICJj dXJyZW50IikgYW5kIG15IG93bg0KPiBjb3JlMl92cG11X2RvX3dybXNyICwgY29yZTJfdnBtdV9t c3JfY29tbW9uX2NoZWNrIEkgZG9u4oCZdCBnZXQgYQ0KPiBob3N0IHJlYm9vdCwgYnV0IGEgZHlp bmcgZ3Vlc3Qgd2hlbiBJIHRyeSB0byBlbmFibGUgQlRTLiBBcyB5b3Ugc2FpZCBtb3N0DQo+IGxp a2VseSBiZWNhdXNlIHRoZSBNU1JfSUEzMl9EU19BUkVBIHBvaW50cyB0byBkb20wLW1lbW9yeSBh bmQgdGhlDQo+IGh5cGVydmlzb3IgaXMgbm90IGFtdXNlZCB3aGVuIGEgZ3Vlc3QgdHJpZXMgdG8g d3JpdGUgc3R1ZmYgdGhlcmUuDQo+ID4gV2hlbiBJIHVzZSB0aGUgYnVpbGQgaW4gb25lcyAod2hp Y2ggYWxsIHVzZSBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7KSBJIGdldCBhDQo+IGhvc3QgcmVi b290Lg0KPiA+IE1heWJlIGJlY2F1c2Ugb2YgYSBtaXNzaW5nIHZwbXUtc3RydWN0cyBhcyBJIG5v dGljZSB0aGF0IG9ubHkgb25lIHZjcHVfaWQNCj4gZ2V0cyBpbml0aWFsaXplZCBpbiB2cG11X2lu aXRpYWxpc2UgZHVyaW5nIGJvb3QuDQo+ID4gU28gd2hlbiB1c2luZyB0aGUgYnVpbGQgaW4gdm14 X21zcl93cml0ZV9pbnRlcmNlcHQgdGhlIHdyaXRpbmcgZW5kcyBpbg0KPiA+IHZwbXVfZG9fd3Jt c3IgYXQgaWYgKCB2cG11LT5hcmNoX3ZwbXVfb3BzICYmIHZwbXUtDQo+ID5hcmNoX3ZwbXVfb3Bz LT5kb193cm1zciApDQo+ID4gICAgICAgICAgcmV0dXJuIHZwbXUtPmFyY2hfdnBtdV9vcHMtPmRv X3dybXNyKG1zciwgbXNyX2NvbnRlbnQpOyBhbmQNCj4gPiB0aGUgaG9zdCByZWJvb3RzLg0KPiA+ IE1heWJlIEkgbmVlZCBzb21lIHNwZWNpYWwga2luZCBvZiBpbml0aWFsaXphdGlvbiBiZWZvcmUg SSBjYWxsDQo+IHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0Pw0KPiA+IEV2ZW4gd2l0aA0KPiA+IHN0 cnVjdCB2Y3B1ICpjdXJyZW50X3Y9Y3VycmVudDsNCj4gPiB2cG11X2luaXRpYWxpc2UoY3VycmVu dF92KTsNCj4gPiByZXR1cm5fdmFsdWU9IHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KE1TUl9JQTMy X0RTX0FSRUEsDQo+ID4gZHNfYnVmZmVyX21hbmFnZW1lbnRfYXJlYSk7IEkgZ2V0IGFuIGluc3Rh bnQgaG9zdCByZWJvb3QgYXQgdGhlIGFib3ZlDQo+ID4gbWVudGlvbmVkIHJldHVybiB2cG11LT5h cmNoX3ZwbXVfb3BzLT5kb193cm1zcihtc3IsIG1zcl9jb250ZW50KTsNCj4gDQo+IFJpZ2h0LiBC ZWNhdXNlIHlvdSBhcmUgdHJ5aW5nIHRvIGFjY2VzcyBWTUNTIGZyb20gZG9tMCBjb250ZXh0LiBk b20wDQo+IGRvZXNuJ3QgaGF2ZSBWTUNTIGFzIGl0IGlzIGEgUFYgZ3Vlc3QuDQo+IA0KDQpJIHRo b3VnaHQgc28sIGJ1dCBpc27igJl0IHRoZSBpZiBjbGF1c2UNCmlmICggdnBtdS0+YXJjaF92cG11 X29wcyAmJiB2cG11LT5hcmNoX3ZwbXVfb3BzLT5kb193cm1zciApDQpzdXBwb3NlZCB0byBjYXRj aCB0aGF0Pw0KDQpLZXZpbg0KDQo+IA0KPiAtYm9yaXMNCj4gDQo+ID4NCj4gPj4+Pj4gV2hlbiBJ IHVzZSBhIG1vZGlmaWVkIHZlcnNpb24gb2Ygdm14X21zcl93cml0ZV9pbnRlcmNlcHQgSSBkb27i gJl0DQo+IGdldA0KPiA+Pj4+PiBhbnkgY3Jhc2hlcyBhcyBsb25nIGFzIEkgZG9u4oCZdCBlbmFi bGUgQlRTIGFuZCBUUiBpbiB0aGUNCj4gPj4+Pj4gR1VFU1RfSUEzMl9ERUJVR0NUTCAoQlRSIHdv cmtzKS4gV2hlbiBJIGVuYWJsZSB0aGUgQlRTIChhbmQgVFIpDQo+ID4+IHRoZQ0KPiA+Pj4+PiBn dWVzdCBjcmFzaGVzLiBJIHN1cHBvc2UgaGUgZ2V0cyBraWxsZWQgYnkgdGhlIGh5cGVydmlzb3Ig Zm9yDQo+ID4+Pj4+IGFjY2Vzc2luZyBmb3JiaWRkZW4gbWVtb3J5Lg0KPiA+Pj4+Pg0KPiA+Pj4+ IFBvc3NpYmx5IGJlY2F1c2UgRFMgYXJlYSBwb2ludCB0byBoeXBlcnZpc29yIG1lbW9yeS4NCj4g Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gSGF2aW5nIHNhaWQgYWxsIHRoaXMsIEkgYW0gbm90IHN1cmUg aG93IHdlbGwgQlRTIHdvcmtzLiBZb3UgZGlkIG5vdGljZQ0KPiA+Pj4+IHRoaXMgaW4gdGhlIGh5 cGVydmlzb3IgbG9nOg0KPiA+Pj4+DQo+ID4+Pj4gKFhFTikNCj4gPj4gKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4+Pj4gKFhFTikgKiog V0FSTklORzogRW11bGF0aW9uIG9mIEJUUyBGZWF0dXJlIGlzIHN3aXRjaGVkIG9uICoqDQo+ID4+ Pj4gKFhFTikgKiogVXNpbmcgdGhpcyBwcm9jZXNzb3IgZmVhdHVyZSBpbiBhIHZpcnR1YWxpemVk ICoqDQo+ID4+Pj4gKFhFTikgKiogZW52aXJvbm1lbnQgaXMgbm90IDEwMCUgc2FmZS4gKioNCj4g Pj4+PiAoWEVOKSAqKiBTZXR0aW5nIHRoZSBEUyBidWZmZXIgYWRkcmVzcyB3aXRoIHdyb25nIHZh bHVlcyAqKg0KPiA+Pj4+IChYRU4pICoqIG1heSBsZWFkIHRvIGh5cGVydmlzb3IgaGFuZ3Mgb3Ig Y3Jhc2hlcy4gKioNCj4gPj4+PiAoWEVOKSAqKiBJdCBpcyBOT1QgcmVjb21tZW5kZWQgZm9yIHBy b2R1Y3Rpb24gdXNlISAqKg0KPiA+Pj4+IChYRU4pDQo+ID4+ICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiA+Pj4gWWVzLCBJIHNhdyB0aGF0 LiBJdCBkb2VzbuKAmXQgc3RhdGUgdGhhdCBCVFMgaXMgbm90IHdvcmtpbmcgYXQgYWxsLCBqdXN0 IHRoYXQgaXQgaXMNCj4gPj4gbm90IHRoYXQgc2FmZSB0byB1c2UuDQo+ID4+PiBBcyBJIHVuZGVy c3RhbmQgaXQgYXMgbG9uZyBhcyBJIHNldCB0aGUgRFMgYnVmZmVyIGFkZHJlc3MgY29ycmVjdGx5 IEkgc2hvdWxkDQo+IGJlDQo+ID4+IGZpbmUsIHJpZ2h0Pw0KPiA+Pg0KPiA+PiBSaWdodC4gRXhj ZXB0IHRoYXQgSSBhbSBub3QgY29udmluY2VkIHlvdSBkaWQgc2V0IHRoaXMgYnVmZmVyIGNvcnJl Y3RseSwNCj4gPj4gd2hpY2ggaXMgcG9zc2libHkgd2h5IHlvdXIgaHlwZXJ2aXNvciBjcmFzaGVk IChJIGFtIG5vdCBzdXJlIEkNCj4gPj4gdW5kZXJzdG9vZCB1bmRlciB3aGF0IGNpcmN1bXN0YW5j ZXMgdGhvdWdoKS4NCj4gPj4NCj4gPj4gLWJvcmlzDQo+ID4gV2UgYXJlIHRoaW5raW5nIHZlcnkg bXVjaCBhbGlrZS4gSSBhbHNvIGFtIG5vdCBjb252aW5jZWQgSSBzZXQgdGhlIGJ1ZmZlcg0KPiBj b3JyZWN0bHkuIF5eDQo+ID4gQnV0IHNpbmNlIEkgZ2V0IGEgcmVib290IGFzIHNvb24gYXMNCj4g PiByZXR1cm4gdnBtdS0+YXJjaF92cG11X29wcy0+ZG9fd3Jtc3IobXNyLCBtc3JfY29udGVudCk7 IGdldHMgY2FsbGVkDQo+IEkgZG9u4oCZdCB0aGluayB0aGF0IHRoZSBzZXR1cCBvZiB0aGUgYnVm ZmVyIGlzIHRoZSBwcm9ibGVtICh3aGVuIHVzaW5nIHRoZQ0KPiBvcmlnaW5hbCB2bXhfbXNyX3dy aXRlX2ludGVyY2VwdCksIGJ1dCByYXRoZXIgc29tZXRoaW5nIHdpdGggdGhlIHNldHVwIG9mDQo+ IHRoZSB2cG11Lg0KPiA+IFdoZW4gSSB1c2UgbXkgb3duIHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0 IHdpdGggdGhlIGQtPnZjcHVbMF0gaW5zdGVhZA0KPiBvZiBjdXJyZW50IHRoZSB3cml0aW5nIHN1 Y2NlZWRzIGJ1dCB0aGUgZ3Vlc3QgY3Jhc2hlcy9nZXRzIGtpbGxlZCB3aGVuIHRoZQ0KPiBCVFMg aXMgZW5hYmxlZC4NCj4gPiBTbyBpbiB0aGlzIHNlY29uZCBjYXNlIHRoZSBzZXR1cCBvZiB0aGUg YnVmZmVyIHNlZW1zIHRvIGJlIHRoZSBwcm9ibGVtLg0KPiA+DQo+ID4gS2V2aW4NCj4gPg0KPiA+ Pj4gU2luY2UgSSBkb27igJl0IHdhbnQgdG8gdXNlIGZvciBwcm9kdWN0aW9uIHRoYXQgaXMgZmlu ZSB3aXRoIG1lLiBBdCBsZWFzdCBmb3INCj4gPj4gbm93Lg0KPiA+Pj4NCj4gPj4+IEtldmluDQo+ ID4+Pj4gLWJvcmlzDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+PiBUaGUgbW9kaWZpZWQgdmVyc2lv biBvZiB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCB0YWtlcyBhIHZjcHUtc3RydWN0DQo+IGFzDQo+ ID4+Pj4+IGEgcGFyYW1ldGVyIGFuZCB1c2VzIHRoaXMgaW5zdGVhZCBvZiB0aGUgY3VycmVudCB2 Y3B1Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJbnN0ZWFkIG9mDQo+ID4+Pj4+DQo+ID4+Pj4+IHN0YXRp Y2ludCB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdA0K PiA+Pj4+IG1zcl9jb250ZW50KQ0KPiA+Pj4+PiB7DQo+ID4+Pj4+DQo+ID4+Pj4+ICAgICAgIHN0 cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsNCj4gPj4+Pj4NCj4gPj4+Pj4gSSBqdXN0IGhhdmUNCj4g Pj4+Pj4NCj4gPj4+Pj4gc3RhdGljaW50IG93bl92bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNp Z25lZCBpbnQgbXNyLCB1aW50NjRfdA0KPiA+Pj4+PiBtc3JfY29udGVudCwgc3RydWN0IHZjcHUg KnYpDQo+ID4+Pj4+DQo+ID4+Pj4+IEkgZ2V0IHRoaXMgdmNwdSBieSBkLT52Y3B1WzBdIGFzIEkg aGF2ZSBsaW1pdGVkIG15IGd1ZXN0IGRvbWFpbiB0byBvbmUNCj4gPj4+Pj4gdmNwdSBhdG0uDQo+ ID4+Pj4+DQo+ID4+Pj4+IE9mIGNvdXJzZSBJIGFsc28gdXNlIHNpbWlsYXJseSBtb2RpZmllZCB2 ZXJzaW9uIG9mIHRoZSBjYWxsZWQNCj4gPj4+Pj4gZnVuY3Rpb25zKHZwbXVfZG9fd3Jtc3Is4oCm KS4NCj4gPj4+Pj4NCj4gPj4+Pj4gScK0bSBwcmV0dHkgc3VyZSB0aGF0IG15IHByb2JsZW0gaXMg d2l0aCBhIHdyb25nIHNjb3BlL3VzYWdlIG9mIHRoZQ0KPiA+Pj4+PiB2Y3B1cy9tZW1vcnksIGJ1 dCBJIGhhdmUgbm8gaWRlYSBob3cgdG8gZml4IHRoaXMuDQo+ID4+Pj4+DQo+ID4+Pj4+IEkgY2Fu IHNlZSBhIHBvdGVudGlhbCBwcm9ibGVtIHdpdGggdGhlIG1lbW9yeSBhbGxvY2F0aW9uIChpbiB0 aGUgaG9zdCkNCj4gPj4+Pj4gaW50byB3aGljaCB0aGUgY3B1IGluIGd1ZXN0LW1vZGUgaXMgc3Vw cG9zZWQgdG8gd3JpdGUuDQo+ID4+Pj4+DQo+ID4+Pj4+IE9yIG1heWJlIEkgZ290IHRoZSBwcmlu Y2lwbGUgb2YgYSB2Y3B1L3ZwbXUgYWxsIHdyb25nLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaW5jZSBJ IGNvdWxkbuKAmXQgZmluZCBhbnkgcHJvamVjdCB0aGF0IHVzZXMgdGhlIEJUUyBmb3IgdGhlIGd1 ZXN0LCBJDQo+ID4+Pj4+IGFtIHdvbmRlcmluZyBpZiBhbnlvbmUgaGFzIGV2ZXIgZG9uZSB0aGlz IGFuZCBpZiBpdCBpcyBwb3NzaWJsZSBhdCBhbGwuDQo+ID4+Pj4+DQo+ID4+Pj4+IEFueSBpbnB1 dCBpcyB3ZWxjb21lIGFzIEkgYW0gcHJldHR5IG11Y2ggc3R1Y2sgYXRt4oCmDQo+ID4+Pj4+DQo+ ID4+Pj4+IENoZWVycw0KPiA+Pj4+Pg0KPiA+Pj4+PiBLZXZpbg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0K PiA+Pj4+PiBfX19fX19fX19fX18NCj4gPj4+Pj4gVmlydXMgY2hlY2tlZCBieSBHIERhdGEgTWFp bFNlY3VyaXR5DQo+ID4+Pj4+IFZlcnNpb246IEFWQSAyNS40MDQgZGF0ZWQgMjQuMDIuMjAxNQ0K PiA+Pj4+PiBWaXJ1cyBuZXdzOiB3d3cuYW50aXZpcnVzbGFiLmNvbSA8aHR0cDovL3d3dy5hbnRp dmlydXNsYWIuY29tPg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4+PiBYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0DQo+ID4+Pj4+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnDQo+ID4+Pj4+IGh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbA0KPiA+Pj4gX19fX19fX19fX19fDQo+ID4+PiBWaXJ1cyBj aGVja2VkIGJ5IEcgRGF0YSBNYWlsU2VjdXJpdHkNCj4gPj4+IFZlcnNpb246IEFWQSAyNS40MTgg ZGF0ZWQgMjUuMDIuMjAxNQ0KPiA+Pj4gVmlydXMgbmV3czogd3d3LmFudGl2aXJ1c2xhYi5jb20N Cj4gPiBfX19fX19fX19fX18NCj4gPiBWaXJ1cyBjaGVja2VkIGJ5IEcgRGF0YSBNYWlsU2VjdXJp dHkNCj4gPiBWZXJzaW9uOiBBVkEgMjUuNDIwIGRhdGVkIDI1LjAyLjIwMTUNCj4gPiBWaXJ1cyBu ZXdzOiB3d3cuYW50aXZpcnVzbGFiLmNvbQ0KDQpfX19fX19fX19fX18NClZpcnVzIGNoZWNrZWQg YnkgRyBEYXRhIE1haWxTZWN1cml0eQ0KVmVyc2lvbjogQVZBIDI1LjQzMyBkYXRlZCAyNi4wMi4y MDE1DQpWaXJ1cyBuZXdzOiB3d3cuYW50aXZpcnVzbGFiLmNvbQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dietmar Hahn Subject: Re: Branch Trace Storage for guests and VPMUinitialization Date: Thu, 26 Feb 2015 09:56:28 +0100 Message-ID: <5820128.XDeVCQ4qG6@amur> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54EDF8E3.2060609@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Boris Ostrovsky , Kevin.Mayer@gdata.de List-Id: xen-devel@lists.xenproject.org QW0gTWl0dHdvY2ggMjUgRmVicnVhciAyMDE1LCAxMTozMTozMSBzY2hyaWViIEJvcmlzIE9zdHJv dnNreToKPiBPbiAwMi8yNS8yMDE1IDEwOjEyIEFNLCBLZXZpbi5NYXllckBnZGF0YS5kZSB3cm90 ZToKPiA+PiAtLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tCj4gPj4gVm9uOiBCb3Jp cyBPc3Ryb3Zza3kgW21haWx0bzpib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbV0KPiA+PiBHZXNl bmRldDogRGllbnN0YWcsIDI0LiBGZWJydWFyIDIwMTUgMTg6MTMKPiA+PiBBbjogTWF5ZXIsIEtl dmluOyB4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+ID4+IEJldHJlZmY6IFJlOiBbWGVuLWRldmVs XSBCcmFuY2ggVHJhY2UgU3RvcmFnZSBmb3IgZ3Vlc3RzIGFuZCBWUE1VCj4gPj4gaW5pdGlhbGl6 YXRpb24KPiA+Pgo+ID4+IE9uIDAyLzI0LzIwMTUgMTA6MjcgQU0sIEtldmluLk1heWVyQGdkYXRh LmRlIHdyb3RlOgo+ID4+PiBIaSBndXlzCj4gPj4+Cj4gPj4+IElgbSB0cnlpbmcgdG8gc2V0IHVw IHRoZSBCVFMgc28gdGhhdCBJIGNhbiBsb2cgdGhlIGJyYW5jaGVzIHRha2VuIGluCj4gPj4+IHRo ZSBndWVzdCB1c2luZyBYZW4gNC40LjEgd2l0aCBhIFdpblhQIFNQMyBndWVzdCBvbiBhIENvcmUg aTcgU2FuZHkKPiA+Pj4gQnJpZGdlLgo+ID4+Pgo+ID4+PiBJIGFkZGVkIHRoZSB2cG11PWJ0cyBi b290IHBhcmFtZXRlciB0byBteSBncnViMiBjb25maWd1cmF0aW9uIGFuZAo+ID4+PiBleHRlbmRl ZCB0aGUgbGlieGwsbGlieGMsZG9tY3RsLOKApiB3aXRoIGFuIG93biBjb21tYW5kIHNvIHRoYXQg SSBjYW4KPiA+Pj4gdHJpZ2dlciB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgQlRTIHdoZW5ldmVyIEkg d2FudC4KPiA+Pj4KPiA+Pgo+ID4+IEkgYW0gbm90IHN1cmUgd2h5IHlvdSBhcmUgZG9pbmcgYWxs IHRoZXNlIGNoYW5nZXMgdG8gWGVuIGNvZGUuIEJUUyBpcwo+ID4+IHN1cHBvc2VkIHRvIGJlIG1h bmFnZWQgZnJvbSB0aGUgZ3Vlc3QuIEZvciBleGFtcGxlLCBhIEZlZG9yYSBIVk0gZ3Vlc3QKPiA+ PiB3aWxsIHByb2R1Y2UgdGhpczoKPiA+Pgo+ID4+IFtyb290QGRoY3AtYnVybGluZ3RvbjctMm5k LUItZWFzdC0xMC0xNTItNTUtMTQwIH5dIyBwZXJmIHJlY29yZCAtZQo+ID4+IGJyYW5jaGVzOnUg LWMgMSAtZCBzbGVlcCAxIFsgcGVyZiByZWNvcmQ6IFdva2VuIHVwIDM4MzggdGltZXMgdG8gd3Jp dGUgZGF0YSBdIFsKPiA+PiBwZXJmIHJlY29yZDogQ2FwdHVyZWQgYW5kIHdyb3RlIDAuNzA0IE1C IHBlcmYuZGF0YSAofjMwNzU2IHNhbXBsZXMpIF0KPiA+PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243 LTJuZC1CLWVhc3QtMTAtMTUyLTU1LTE0MCB+XSMgcGVyZiBzY3JpcHQgLWYKPiA+PiBpcCxhZGRy LHN5bSxkc28sc3ltb2ZmIC0tc2hvdy1rZXJuZWwtcGF0aAo+ID4+ICAgIGZmZmZmZmZmODE2N2Mz NDcgbmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9Pgo+ID4+IDMyOGMw MDE1OTAgW3Vua25vd25dICgvcHJvYy9rY29yZSkKPiA+PiAgICBmZmZmZmZmZjgxNjdjMzQ3IG5h dGl2ZV9pcnFfcmV0dXJuX2lyZXQrMHgwICgvcHJvYy9rY29yZSkgPT4KPiA+PiAzMjhjMDAxNTkw IFt1bmtub3duXSAoW3Vua25vd25dKQo+ID4+ICAgICAgICAgIDMyOGMwMDE1OTMgW3Vua25vd25d IChbdW5rbm93bl0pID0+ICAgICAgIDMyOGMwMDRiNzAgW3Vua25vd25dCj4gPj4gKFt1bmtub3du XSkKPiA+PiAuLi4KPiA+Pgo+ID4gSSB3YW50IHRvIGJlIGFibGUgdG8gbG9nIHRoZSB0YWtlbiBi cmFuY2hlcyAob2YgdGhlIGd1ZXN0KSB3aXRob3V0IHRoZSBuZWVkIHRvIG1vZGlmeSB0aGUgZ3Vl c3QgYXQgYWxsLgo+ID4gVGhpcyBtZWFucyBJIGhhdmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0 aGUgaHlwZXJ2aXNvciwgb3IgYW0gSSB3cm9uZz8KPiAKPiBJbiB0aGF0IGNhc2UsIHllcy4gQnV0 IHRoZW4geW91IGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQgYXQgbGVhc3QKPiAgICogeW91IGRvbid0 IGxvYWQgZ3Vlc3QncyBWUE1VIChvciwgYXQgbGVhc3QsIEJUUy1yZWxhdGVkIHJlZ2lzdGVycykg b24gCj4gY29udGV4dCBzd2l0Y2gKCkJ1dCB5b3UgbmVlZCB0byBtb2RpZnkgUE1VIHJlZ2lzdGVy cyB3aGVuIHN3aXRjaGluZyB0by9mcm9tIHRoZSBndWVzdCBjb250ZXh0CnRvIGdldCBQTVUgcnVu bmluZy4KSSBkaWRuJ3QgdGhpbmsgb2YgdXNpbmcgdGhlIFZQTVUgc3R1ZmYgd2l0aCBtb2RpZnlp bmcgdGhlIGNvbnRleHQgZnJvbSBvdXRzaWRlCnRoZSBndWVzdC4KCj4gICAqIFlvdSBkb24ndCBz ZW5kIHRoZSBpbnRlcnJ1cHQgdG8gdGhlIGd1ZXN0IChtZWFuaW5nIHRoYXQgeW91IHdpbGwgCj4g bmVlZCB0byBzb21laG93IGluZm9ybSBkb20wIG9mIHRoZSBCVFMgaW50ZXJydXB0KQo+IAo+IGFu ZCBwcm9iYWJseSBtb3JlLgo+IAo+IEVzc2VudGlhbGx5LCB5b3Ugd2FudCBkb20wIHRvIHByb2Zp bGUgdGhlIGd1ZXN0LiBJIGhhdmUgYmVlbiB3b3JraW5nIG9uCj4gcGF0Y2hlcyB0aGF0IHdvdWxk IGFsbG93IHRoYXQgYnV0IHRoZXkgYXJlIHN0aWxsIHVuZGVyIHJldmlldy4KPiAKPiAKPiA+Cj4g Pj4+IEluIHRoaXMgY29tbWFuZCBJIGRvIHRoZSBmb2xsb3dpbmc6Cj4gPj4+Cj4gPj4+IEkgc2V0 IHVwIHRoZSBtZW1vcnkgcmVnaW9uIGZvciB0aGUgQlRTIEJ1ZmZlciBhbmQgdGhlIERTIEJ1ZmZl cgo+ID4+PiBNYW5hZ2VtZW50IEFyZWEgdXNpbmcgeHphbGxvY19ieXRlcwo+ID4+Pgo+ID4+Cj4g Pj4gSSBkb24ndCB0aGluayB5b3Ugc2hvdWxkIGJlIGFsbG9jYXRpbmcgQlRTIGJ1ZmZlcnMgaW4g dGhlIGh5cGVydmlzb3IsIHRoZXkgYXJlCj4gPj4gaW4gZ3Vlc3QncyBtZW1vcnkuCj4gPiBJIGFn cmVlLiBBcyBJIHNhaWQgSSB0aGluayB0aGlzIGlzIHdoZXJlIG15IG1haW4gcHJvYmxlbSBpcyBh dCB0aGUgbW9tZW50Lgo+ID4gSXMgdGhlcmUgYW55IHdheSBJIGNhbiBhbGxvY2F0ZSBtZW1vcnkg aW4gdGhlIGh5cGVydmlzb3IgaW4gYSB3YXkgdGhlIGd1ZXN0IGNhbiBhY2Nlc3MgaXQ/Cj4gCj4g SSBhbSBub3Qgc3VyZSB0aGlzIGlzIHdoYXQgeW91IHdhbnQgc2luY2UgeW91IHNlZW0gdG8gKm5v dCogd2FudCB0aGUgCj4gZ3Vlc3QgdG8gcHJvY2VzcyB0aGUgc2FtcGxlcywgcmlnaHQ/Cj4gCj4g QnV0IHllcywgeW91IGNhbi4gRS5nLiBzb21ldGhpbmcgbGlrZSB3aGF0IG1hcF92Y3B1X2luZm8o KSBkb2VzLiAoSSBoYXZlIAo+IG5vIGlkZWEgaG93IHlvdSdkIGRvIHRoaXMgZnJvbSBXaW5kb3dz LikKClRoZSBEUyBidWZmZXIgaGFzIHRvIGJlIG1hcHBlZCB3aXRoaW4gdGhlIGd1ZXN0cyBhZGRy ZXNzIHNwYWNlIHNvIHRoZSBDUFUKcnVubmluZyBpbiBndWVzdCBjb250ZXh0IGNhbiBhY2Nlc3Mg dGhpcyBhcmVhLiBPdGhlcndpc2UgeW91IGdldCB0aGlzCnRyaXBsZSBmYXVsdC4KU28gSSB3b3Vs ZCB0aGluayB5b3UgbmVlZCBhIG1peHR1cmUgb2Ygd3JpdGluZyBzb21lIHN0dWZmIGluIFdpbmRv d3MgYW5kCnBhdGNoaW5nIHRoZSBoeXBlcnZpc29yLgoKRGlldG1hci4KCj4gCj4gCj4gPiBPZiBj b3Vyc2UgdGhlIGd1ZXN0IG11c3Qgbm90IGJlIGFibGUgdG8gdXNlIHRoaXMgbWVtb3J5IGluIGl0 cyBub3JtYWwgb3BlcmF0aW9ucyBidXQganVzdCBmb3IgQlRTLgo+ID4gSXMgdGhpcyBldmVuIHBv c3NpYmxlPyBJIGFtIHJhdGhlciBjb25mdXNlZCBhdCB0aGUgbW9tZW50LiA6LUQKPiA+Cj4gPj4+ IFRoZW4gSSB3cml0ZSB0aGUgcG9pbnRlciB0byB0aGUgQlRTIEJ1ZmZlciBpbnRvIHRoZSBEUyBC dWZmZXIKPiA+Pj4gTWFuYWdlbWVudCBBcmVhIGF0ICsweDAgYW5kICsweDggKEJUUyBCdWZmZXIg QmFzZSBhbmQgQlRTIEluZGV4KQo+ID4+Pgo+ID4+PiBXaGVuIEkgdXNlIHZteF9tc3Jfd3JpdGVf aW50ZXJjZXB0IHRvIHN0b3JlIHRoZSB2YWx1ZSBpbgo+ID4+PiBNU1JfSUEzMl9EU19BUkVBIHRo ZSBob3N0IHJlYm9vdHMgKG15IGlkZWEgaXMgaGUgdHJpZXMgdG8gYWNjZXNzIGEKPiA+Pj4gdnBt dS1zdHJ1Y3QgdGhhdCBpc27CtHQgdGhlcmUgaW4gdGhlIGN1cnJlbnQgdmNwdSBhbmQgcGFuaWNz KS4KPiAKPiAKPiBXaG8gaXMgdHJ5aW5nIHRvIHdyaXRlIHRvIE1TUl9JQTMyX0RTX0FSRUE/IFRo ZSBndWVzdCBvciBkb20wPyBJIHRob3VnaHQgCj4geW91IHNhaWQgdGhhdCB5b3Ugd2FudCBkb20w IHRvIGRvIHNhbXBsaW5nLiBPciBhcmUgeW91IHRyeWluZyB0byBzZXR1cCAKPiBEUyBhcmVhIGZy b20geW91ciBndWVzdCBhbmQgY29udHJvbCBpdCBmcm9tIGRvbTA/IEkgYW0gc29tZXdoYXQgY29u ZnVzZWQuCj4gCj4gPj4+Cj4gPj4gQ2FuIHlvdSBwb3N0IGh5cGVydmlzb3IgbG9nPyAoaGFyZCB0 byBzYXkgaG93IGhlbHBmdWwgaXQgd2lsbCBiZSB3aXRob3V0Cj4gPj4gc2VlaW5nIHlvdXIgY29k ZSBjaGFuZ2VzIHRob3VnaCkKPiA+Pgo+ID4gUmlnaHQgYWZ0ZXIgZW5hYmxpbmcgdGhlIEJUUyBJ IGdldCBhIHRyaXBsZSBmYXVsdC4KPiA+IGh2bS5jOjEzNTc6ZDIgVHJpcGxlIGZhdWx0IG9uIFZD UFUwIC0gaW52b2tpbmcgSFZNIHNodXRkb3duIGFjdGlvbiAxLgo+IAo+IAo+IFRoYXQncyBub3Qg aG9zdCByZWJvb3QsIHRoaXMgaXMgeW91ciBndWVzdCBkeWluZy4KPiAKPiAKPiA+Cj4gPj4+IFdo ZW4gSSB1c2UgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0IEkg ZG9u4oCZdCBnZXQKPiA+Pj4gYW55IGNyYXNoZXMgYXMgbG9uZyBhcyBJIGRvbuKAmXQgZW5hYmxl IEJUUyBhbmQgVFIgaW4gdGhlCj4gPj4+IEdVRVNUX0lBMzJfREVCVUdDVEwgKEJUUiB3b3Jrcyku IFdoZW4gSSBlbmFibGUgdGhlIEJUUyAoYW5kIFRSKSB0aGUKPiA+Pj4gZ3Vlc3QgY3Jhc2hlcy4g SSBzdXBwb3NlIGhlIGdldHMga2lsbGVkIGJ5IHRoZSBoeXBlcnZpc29yIGZvcgo+ID4+PiBhY2Nl c3NpbmcgZm9yYmlkZGVuIG1lbW9yeS4KPiA+Pj4KPiA+PiBQb3NzaWJseSBiZWNhdXNlIERTIGFy ZWEgcG9pbnQgdG8gaHlwZXJ2aXNvciBtZW1vcnkuCj4gPj4KPiA+Pgo+ID4+IEhhdmluZyBzYWlk IGFsbCB0aGlzLCBJIGFtIG5vdCBzdXJlIGhvdyB3ZWxsIEJUUyB3b3Jrcy4gWW91IGRpZCBub3Rp Y2UKPiA+PiB0aGlzIGluIHRoZSBoeXBlcnZpc29yIGxvZzoKPiA+Pgo+ID4+IChYRU4pICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ID4+IChY RU4pICoqIFdBUk5JTkc6IEVtdWxhdGlvbiBvZiBCVFMgRmVhdHVyZSBpcyBzd2l0Y2hlZCBvbiAq Kgo+ID4+IChYRU4pICoqIFVzaW5nIHRoaXMgcHJvY2Vzc29yIGZlYXR1cmUgaW4gYSB2aXJ0dWFs aXplZCAqKgo+ID4+IChYRU4pICoqIGVudmlyb25tZW50IGlzIG5vdCAxMDAlIHNhZmUuICoqCj4g Pj4gKFhFTikgKiogU2V0dGluZyB0aGUgRFMgYnVmZmVyIGFkZHJlc3Mgd2l0aCB3cm9uZyB2YWx1 ZXMgKioKPiA+PiAoWEVOKSAqKiBtYXkgbGVhZCB0byBoeXBlcnZpc29yIGhhbmdzIG9yIGNyYXNo ZXMuICoqCj4gPj4gKFhFTikgKiogSXQgaXMgTk9UIHJlY29tbWVuZGVkIGZvciBwcm9kdWN0aW9u IHVzZSEgKioKPiA+PiAoWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKPiA+Pgo+ID4gWWVzLCBJIHNhdyB0aGF0LiBJdCBkb2VzbuKAmXQg c3RhdGUgdGhhdCBCVFMgaXMgbm90IHdvcmtpbmcgYXQgYWxsLCBqdXN0IHRoYXQgaXQgaXMgbm90 IHRoYXQgc2FmZSB0byB1c2UuCj4gPiBBcyBJIHVuZGVyc3RhbmQgaXQgYXMgbG9uZyBhcyBJIHNl dCB0aGUgRFMgYnVmZmVyIGFkZHJlc3MgY29ycmVjdGx5IEkgc2hvdWxkIGJlIGZpbmUsIHJpZ2h0 Pwo+IAo+IFJpZ2h0LiBFeGNlcHQgdGhhdCBJIGFtIG5vdCBjb252aW5jZWQgeW91IGRpZCBzZXQg dGhpcyBidWZmZXIgY29ycmVjdGx5LCAKPiB3aGljaCBpcyBwb3NzaWJseSB3aHkgeW91ciBoeXBl cnZpc29yIGNyYXNoZWQgKEkgYW0gbm90IHN1cmUgSSAKPiB1bmRlcnN0b29kIHVuZGVyIHdoYXQg Y2lyY3Vtc3RhbmNlcyB0aG91Z2gpLgo+IAo+IC1ib3Jpcwo+IAo+ID4gU2luY2UgSSBkb27igJl0 IHdhbnQgdG8gdXNlIGZvciBwcm9kdWN0aW9uIHRoYXQgaXMgZmluZSB3aXRoIG1lLiBBdCBsZWFz dCBmb3Igbm93Lgo+ID4KPiA+Cj4gPiBLZXZpbgo+ID4+IC1ib3Jpcwo+ID4+Cj4gPj4KPiA+Pj4g VGhlIG1vZGlmaWVkIHZlcnNpb24gb2Ygdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdGFrZXMgYSB2 Y3B1LXN0cnVjdCBhcwo+ID4+PiBhIHBhcmFtZXRlciBhbmQgdXNlcyB0aGlzIGluc3RlYWQgb2Yg dGhlIGN1cnJlbnQgdmNwdS4KPiA+Pj4KPiA+Pj4gSW5zdGVhZCBvZgo+ID4+Pgo+ID4+PiBzdGF0 aWNpbnQgdm14X21zcl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QK PiA+PiBtc3JfY29udGVudCkKPiA+Pj4gewo+ID4+Pgo+ID4+PiAgICAgIHN0cnVjdCB2Y3B1ICp2 ID0gY3VycmVudDsKPiA+Pj4KPiA+Pj4gSSBqdXN0IGhhdmUKPiA+Pj4KPiA+Pj4gc3RhdGljaW50 IG93bl92bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdAo+ ID4+PiBtc3JfY29udGVudCwgc3RydWN0IHZjcHUgKnYpCj4gPj4+Cj4gPj4+IEkgZ2V0IHRoaXMg dmNwdSBieSBkLT52Y3B1WzBdIGFzIEkgaGF2ZSBsaW1pdGVkIG15IGd1ZXN0IGRvbWFpbiB0byBv bmUKPiA+Pj4gdmNwdSBhdG0uCj4gPj4+Cj4gPj4+IE9mIGNvdXJzZSBJIGFsc28gdXNlIHNpbWls YXJseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBjYWxsZWQKPiA+Pj4gZnVuY3Rpb25zKHZwbXVf ZG9fd3Jtc3Is4oCmKS4KPiA+Pj4KPiA+Pj4gScK0bSBwcmV0dHkgc3VyZSB0aGF0IG15IHByb2Js ZW0gaXMgd2l0aCBhIHdyb25nIHNjb3BlL3VzYWdlIG9mIHRoZQo+ID4+PiB2Y3B1cy9tZW1vcnks IGJ1dCBJIGhhdmUgbm8gaWRlYSBob3cgdG8gZml4IHRoaXMuCj4gPj4+Cj4gPj4+IEkgY2FuIHNl ZSBhIHBvdGVudGlhbCBwcm9ibGVtIHdpdGggdGhlIG1lbW9yeSBhbGxvY2F0aW9uIChpbiB0aGUg aG9zdCkKPiA+Pj4gaW50byB3aGljaCB0aGUgY3B1IGluIGd1ZXN0LW1vZGUgaXMgc3VwcG9zZWQg dG8gd3JpdGUuCj4gPj4+Cj4gPj4+IE9yIG1heWJlIEkgZ290IHRoZSBwcmluY2lwbGUgb2YgYSB2 Y3B1L3ZwbXUgYWxsIHdyb25nLgo+ID4+Pgo+ID4+PiBTaW5jZSBJIGNvdWxkbuKAmXQgZmluZCBh bnkgcHJvamVjdCB0aGF0IHVzZXMgdGhlIEJUUyBmb3IgdGhlIGd1ZXN0LCBJCj4gPj4+IGFtIHdv bmRlcmluZyBpZiBhbnlvbmUgaGFzIGV2ZXIgZG9uZSB0aGlzIGFuZCBpZiBpdCBpcyBwb3NzaWJs ZSBhdCBhbGwuCj4gPj4+Cj4gPj4+IEFueSBpbnB1dCBpcyB3ZWxjb21lIGFzIEkgYW0gcHJldHR5 IG11Y2ggc3R1Y2sgYXRt4oCmCj4gPj4+Cj4gPj4+IENoZWVycwo+ID4+Pgo+ID4+PiBLZXZpbgoK Ci0tIApDb21wYW55IGRldGFpbHM6IGh0dHA6Ly90cy5mdWppdHN1LmNvbS9pbXByaW50Lmh0bWwK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: Branch Trace Storage for guests and VPMUinitialization Date: Thu, 26 Feb 2015 11:35:26 -0500 Message-ID: <54EF4B4E.4050206@oracle.com> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> <5820128.XDeVCQ4qG6@amur> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5820128.XDeVCQ4qG6@amur> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Dietmar Hahn , xen-devel@lists.xen.org Cc: Kevin.Mayer@gdata.de List-Id: xen-devel@lists.xenproject.org T24gMDIvMjYvMjAxNSAwMzo1NiBBTSwgRGlldG1hciBIYWhuIHdyb3RlOgo+IEFtIE1pdHR3b2No IDI1IEZlYnJ1YXIgMjAxNSwgMTE6MzE6MzEgc2NocmllYiBCb3JpcyBPc3Ryb3Zza3k6Cj4+IE9u IDAyLzI1LzIwMTUgMTA6MTIgQU0sIEtldmluLk1heWVyQGdkYXRhLmRlIHdyb3RlOgo+Pj4+IC0t LS0tVXJzcHLDvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0KPj4+PiBWb246IEJvcmlzIE9zdHJvdnNr eSBbbWFpbHRvOmJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tXQo+Pj4+IEdlc2VuZGV0OiBEaWVu c3RhZywgMjQuIEZlYnJ1YXIgMjAxNSAxODoxMwo+Pj4+IEFuOiBNYXllciwgS2V2aW47IHhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCj4+Pj4gQmV0cmVmZjogUmU6IFtYZW4tZGV2ZWxdIEJyYW5jaCBU cmFjZSBTdG9yYWdlIGZvciBndWVzdHMgYW5kIFZQTVUKPj4+PiBpbml0aWFsaXphdGlvbgo+Pj4+ Cj4+Pj4gT24gMDIvMjQvMjAxNSAxMDoyNyBBTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6 Cj4+Pj4+IEhpIGd1eXMKPj4+Pj4KPj4+Pj4gSWBtIHRyeWluZyB0byBzZXQgdXAgdGhlIEJUUyBz byB0aGF0IEkgY2FuIGxvZyB0aGUgYnJhbmNoZXMgdGFrZW4gaW4KPj4+Pj4gdGhlIGd1ZXN0IHVz aW5nIFhlbiA0LjQuMSB3aXRoIGEgV2luWFAgU1AzIGd1ZXN0IG9uIGEgQ29yZSBpNyBTYW5keQo+ Pj4+PiBCcmlkZ2UuCj4+Pj4+Cj4+Pj4+IEkgYWRkZWQgdGhlIHZwbXU9YnRzIGJvb3QgcGFyYW1l dGVyIHRvIG15IGdydWIyIGNvbmZpZ3VyYXRpb24gYW5kCj4+Pj4+IGV4dGVuZGVkIHRoZSBsaWJ4 bCxsaWJ4Yyxkb21jdGws4oCmIHdpdGggYW4gb3duIGNvbW1hbmQgc28gdGhhdCBJIGNhbgo+Pj4+ PiB0cmlnZ2VyIHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBCVFMgd2hlbmV2ZXIgSSB3YW50Lgo+Pj4+ Pgo+Pj4+IEkgYW0gbm90IHN1cmUgd2h5IHlvdSBhcmUgZG9pbmcgYWxsIHRoZXNlIGNoYW5nZXMg dG8gWGVuIGNvZGUuIEJUUyBpcwo+Pj4+IHN1cHBvc2VkIHRvIGJlIG1hbmFnZWQgZnJvbSB0aGUg Z3Vlc3QuIEZvciBleGFtcGxlLCBhIEZlZG9yYSBIVk0gZ3Vlc3QKPj4+PiB3aWxsIHByb2R1Y2Ug dGhpczoKPj4+Pgo+Pj4+IFtyb290QGRoY3AtYnVybGluZ3RvbjctMm5kLUItZWFzdC0xMC0xNTIt NTUtMTQwIH5dIyBwZXJmIHJlY29yZCAtZQo+Pj4+IGJyYW5jaGVzOnUgLWMgMSAtZCBzbGVlcCAx IFsgcGVyZiByZWNvcmQ6IFdva2VuIHVwIDM4MzggdGltZXMgdG8gd3JpdGUgZGF0YSBdIFsKPj4+ PiBwZXJmIHJlY29yZDogQ2FwdHVyZWQgYW5kIHdyb3RlIDAuNzA0IE1CIHBlcmYuZGF0YSAofjMw NzU2IHNhbXBsZXMpIF0KPj4+PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243LTJuZC1CLWVhc3QtMTAt MTUyLTU1LTE0MCB+XSMgcGVyZiBzY3JpcHQgLWYKPj4+PiBpcCxhZGRyLHN5bSxkc28sc3ltb2Zm IC0tc2hvdy1rZXJuZWwtcGF0aAo+Pj4+ICAgICBmZmZmZmZmZjgxNjdjMzQ3IG5hdGl2ZV9pcnFf cmV0dXJuX2lyZXQrMHgwICgvcHJvYy9rY29yZSkgPT4KPj4+PiAzMjhjMDAxNTkwIFt1bmtub3du XSAoL3Byb2Mva2NvcmUpCj4+Pj4gICAgIGZmZmZmZmZmODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1 cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9Pgo+Pj4+IDMyOGMwMDE1OTAgW3Vua25vd25dIChb dW5rbm93bl0pCj4+Pj4gICAgICAgICAgIDMyOGMwMDE1OTMgW3Vua25vd25dIChbdW5rbm93bl0p ID0+ICAgICAgIDMyOGMwMDRiNzAgW3Vua25vd25dCj4+Pj4gKFt1bmtub3duXSkKPj4+PiAuLi4K Pj4+Pgo+Pj4gSSB3YW50IHRvIGJlIGFibGUgdG8gbG9nIHRoZSB0YWtlbiBicmFuY2hlcyAob2Yg dGhlIGd1ZXN0KSB3aXRob3V0IHRoZSBuZWVkIHRvIG1vZGlmeSB0aGUgZ3Vlc3QgYXQgYWxsLgo+ Pj4gVGhpcyBtZWFucyBJIGhhdmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0aGUgaHlwZXJ2aXNv ciwgb3IgYW0gSSB3cm9uZz8KPj4gSW4gdGhhdCBjYXNlLCB5ZXMuIEJ1dCB0aGVuIHlvdSBoYXZl IHRvIG1ha2Ugc3VyZSB0aGF0IGF0IGxlYXN0Cj4+ICAgICogeW91IGRvbid0IGxvYWQgZ3Vlc3Qn cyBWUE1VIChvciwgYXQgbGVhc3QsIEJUUy1yZWxhdGVkIHJlZ2lzdGVycykgb24KPj4gY29udGV4 dCBzd2l0Y2gKPiBCdXQgeW91IG5lZWQgdG8gbW9kaWZ5IFBNVSByZWdpc3RlcnMgd2hlbiBzd2l0 Y2hpbmcgdG8vZnJvbSB0aGUgZ3Vlc3QgY29udGV4dAo+IHRvIGdldCBQTVUgcnVubmluZy4KCgoK SSB3YXMgdGhpbmtpbmcgdGhhdCBhbGwgQlRTIHN0dWZmIGNhbiBiZSBjb250cm9sbGVkIGZyb20g ZG9tMCBhbmQgc28gd2UgCmNhbiB1c2UgZG9tMCdzIHZlcnNpb24gb2YgdGhlc2UgcmVnaXN0ZXJz LiBJIGRpZG4ndCByZWFsaXplIHRoYXQgRFNfQVJFQSAKd291bGQgaGF2ZSB0byBiZSBhY2Nlc3Nl ZCBpbiBndWVzdCdzIGFkZHJlc3Mgc3BhY2UgKGFuZCB0aGF0IERFQlVHQ1RMIGlzIApsb2FkZWQg ZnJvbSBWTUNTKS4KCldoaWNoIGlzIHdoYXQgSSB0aGluayBJIHNhaWQgaW4gcmVzcG9uc2UgdG8g dGhpcyBtZXNzYWdlICh3aGljaCBkaWRuJ3QgCnNob3cgdXAgb24gdGhlIGxpc3QgYmVjYXVzZSBL ZXZpbiBhY2NpZGVudGFsbHkgZHJvcHBlZCB4ZW4tZGV2ZWwpLgoKLWJvcmlzCgoKCj4gSSBkaWRu J3QgdGhpbmsgb2YgdXNpbmcgdGhlIFZQTVUgc3R1ZmYgd2l0aCBtb2RpZnlpbmcgdGhlIGNvbnRl eHQgZnJvbSBvdXRzaWRlCj4gdGhlIGd1ZXN0Lgo+Cj4+ICAgICogWW91IGRvbid0IHNlbmQgdGhl IGludGVycnVwdCB0byB0aGUgZ3Vlc3QgKG1lYW5pbmcgdGhhdCB5b3Ugd2lsbAo+PiBuZWVkIHRv IHNvbWVob3cgaW5mb3JtIGRvbTAgb2YgdGhlIEJUUyBpbnRlcnJ1cHQpCj4+Cj4+IGFuZCBwcm9i YWJseSBtb3JlLgo+Pgo+PiBFc3NlbnRpYWxseSwgeW91IHdhbnQgZG9tMCB0byBwcm9maWxlIHRo ZSBndWVzdC4gSSBoYXZlIGJlZW4gd29ya2luZyBvbgo+PiBwYXRjaGVzIHRoYXQgd291bGQgYWxs b3cgdGhhdCBidXQgdGhleSBhcmUgc3RpbGwgdW5kZXIgcmV2aWV3Lgo+Pgo+Pgo+Pj4+PiBJbiB0 aGlzIGNvbW1hbmQgSSBkbyB0aGUgZm9sbG93aW5nOgo+Pj4+Pgo+Pj4+PiBJIHNldCB1cCB0aGUg bWVtb3J5IHJlZ2lvbiBmb3IgdGhlIEJUUyBCdWZmZXIgYW5kIHRoZSBEUyBCdWZmZXIKPj4+Pj4g TWFuYWdlbWVudCBBcmVhIHVzaW5nIHh6YWxsb2NfYnl0ZXMKPj4+Pj4KPj4+PiBJIGRvbid0IHRo aW5rIHlvdSBzaG91bGQgYmUgYWxsb2NhdGluZyBCVFMgYnVmZmVycyBpbiB0aGUgaHlwZXJ2aXNv ciwgdGhleSBhcmUKPj4+PiBpbiBndWVzdCdzIG1lbW9yeS4KPj4+IEkgYWdyZWUuIEFzIEkgc2Fp ZCBJIHRoaW5rIHRoaXMgaXMgd2hlcmUgbXkgbWFpbiBwcm9ibGVtIGlzIGF0IHRoZSBtb21lbnQu Cj4+PiBJcyB0aGVyZSBhbnkgd2F5IEkgY2FuIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUgaHlwZXJ2 aXNvciBpbiBhIHdheSB0aGUgZ3Vlc3QgY2FuIGFjY2VzcyBpdD8KPj4gSSBhbSBub3Qgc3VyZSB0 aGlzIGlzIHdoYXQgeW91IHdhbnQgc2luY2UgeW91IHNlZW0gdG8gKm5vdCogd2FudCB0aGUKPj4g Z3Vlc3QgdG8gcHJvY2VzcyB0aGUgc2FtcGxlcywgcmlnaHQ/Cj4+Cj4+IEJ1dCB5ZXMsIHlvdSBj YW4uIEUuZy4gc29tZXRoaW5nIGxpa2Ugd2hhdCBtYXBfdmNwdV9pbmZvKCkgZG9lcy4gKEkgaGF2 ZQo+PiBubyBpZGVhIGhvdyB5b3UnZCBkbyB0aGlzIGZyb20gV2luZG93cy4pCj4gVGhlIERTIGJ1 ZmZlciBoYXMgdG8gYmUgbWFwcGVkIHdpdGhpbiB0aGUgZ3Vlc3RzIGFkZHJlc3Mgc3BhY2Ugc28g dGhlIENQVQo+IHJ1bm5pbmcgaW4gZ3Vlc3QgY29udGV4dCBjYW4gYWNjZXNzIHRoaXMgYXJlYS4g T3RoZXJ3aXNlIHlvdSBnZXQgdGhpcwo+IHRyaXBsZSBmYXVsdC4KPiBTbyBJIHdvdWxkIHRoaW5r IHlvdSBuZWVkIGEgbWl4dHVyZSBvZiB3cml0aW5nIHNvbWUgc3R1ZmYgaW4gV2luZG93cyBhbmQK PiBwYXRjaGluZyB0aGUgaHlwZXJ2aXNvci4KPgo+IERpZXRtYXIuCj4KPj4KPj4+IE9mIGNvdXJz ZSB0aGUgZ3Vlc3QgbXVzdCBub3QgYmUgYWJsZSB0byB1c2UgdGhpcyBtZW1vcnkgaW4gaXRzIG5v cm1hbCBvcGVyYXRpb25zIGJ1dCBqdXN0IGZvciBCVFMuCj4+PiBJcyB0aGlzIGV2ZW4gcG9zc2li bGU/IEkgYW0gcmF0aGVyIGNvbmZ1c2VkIGF0IHRoZSBtb21lbnQuIDotRAo+Pj4KPj4+Pj4gVGhl biBJIHdyaXRlIHRoZSBwb2ludGVyIHRvIHRoZSBCVFMgQnVmZmVyIGludG8gdGhlIERTIEJ1ZmZl cgo+Pj4+PiBNYW5hZ2VtZW50IEFyZWEgYXQgKzB4MCBhbmQgKzB4OCAoQlRTIEJ1ZmZlciBCYXNl IGFuZCBCVFMgSW5kZXgpCj4+Pj4+Cj4+Pj4+IFdoZW4gSSB1c2Ugdm14X21zcl93cml0ZV9pbnRl cmNlcHQgdG8gc3RvcmUgdGhlIHZhbHVlIGluCj4+Pj4+IE1TUl9JQTMyX0RTX0FSRUEgdGhlIGhv c3QgcmVib290cyAobXkgaWRlYSBpcyBoZSB0cmllcyB0byBhY2Nlc3MgYQo+Pj4+PiB2cG11LXN0 cnVjdCB0aGF0IGlzbsK0dCB0aGVyZSBpbiB0aGUgY3VycmVudCB2Y3B1IGFuZCBwYW5pY3MpLgo+ Pgo+PiBXaG8gaXMgdHJ5aW5nIHRvIHdyaXRlIHRvIE1TUl9JQTMyX0RTX0FSRUE/IFRoZSBndWVz dCBvciBkb20wPyBJIHRob3VnaHQKPj4geW91IHNhaWQgdGhhdCB5b3Ugd2FudCBkb20wIHRvIGRv IHNhbXBsaW5nLiBPciBhcmUgeW91IHRyeWluZyB0byBzZXR1cAo+PiBEUyBhcmVhIGZyb20geW91 ciBndWVzdCBhbmQgY29udHJvbCBpdCBmcm9tIGRvbTA/IEkgYW0gc29tZXdoYXQgY29uZnVzZWQu Cj4+Cj4+Pj4gQ2FuIHlvdSBwb3N0IGh5cGVydmlzb3IgbG9nPyAoaGFyZCB0byBzYXkgaG93IGhl bHBmdWwgaXQgd2lsbCBiZSB3aXRob3V0Cj4+Pj4gc2VlaW5nIHlvdXIgY29kZSBjaGFuZ2VzIHRo b3VnaCkKPj4+Pgo+Pj4gUmlnaHQgYWZ0ZXIgZW5hYmxpbmcgdGhlIEJUUyBJIGdldCBhIHRyaXBs ZSBmYXVsdC4KPj4+IGh2bS5jOjEzNTc6ZDIgVHJpcGxlIGZhdWx0IG9uIFZDUFUwIC0gaW52b2tp bmcgSFZNIHNodXRkb3duIGFjdGlvbiAxLgo+Pgo+PiBUaGF0J3Mgbm90IGhvc3QgcmVib290LCB0 aGlzIGlzIHlvdXIgZ3Vlc3QgZHlpbmcuCj4+Cj4+Cj4+Pj4+IFdoZW4gSSB1c2UgYSBtb2RpZmll ZCB2ZXJzaW9uIG9mIHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0IEkgZG9u4oCZdCBnZXQKPj4+Pj4g YW55IGNyYXNoZXMgYXMgbG9uZyBhcyBJIGRvbuKAmXQgZW5hYmxlIEJUUyBhbmQgVFIgaW4gdGhl Cj4+Pj4+IEdVRVNUX0lBMzJfREVCVUdDVEwgKEJUUiB3b3JrcykuIFdoZW4gSSBlbmFibGUgdGhl IEJUUyAoYW5kIFRSKSB0aGUKPj4+Pj4gZ3Vlc3QgY3Jhc2hlcy4gSSBzdXBwb3NlIGhlIGdldHMg a2lsbGVkIGJ5IHRoZSBoeXBlcnZpc29yIGZvcgo+Pj4+PiBhY2Nlc3NpbmcgZm9yYmlkZGVuIG1l bW9yeS4KPj4+Pj4KPj4+PiBQb3NzaWJseSBiZWNhdXNlIERTIGFyZWEgcG9pbnQgdG8gaHlwZXJ2 aXNvciBtZW1vcnkuCj4+Pj4KPj4+Pgo+Pj4+IEhhdmluZyBzYWlkIGFsbCB0aGlzLCBJIGFtIG5v dCBzdXJlIGhvdyB3ZWxsIEJUUyB3b3Jrcy4gWW91IGRpZCBub3RpY2UKPj4+PiB0aGlzIGluIHRo ZSBoeXBlcnZpc29yIGxvZzoKPj4+Pgo+Pj4+IChYRU4pICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+Pj4+IChYRU4pICoqIFdBUk5JTkc6IEVt dWxhdGlvbiBvZiBCVFMgRmVhdHVyZSBpcyBzd2l0Y2hlZCBvbiAqKgo+Pj4+IChYRU4pICoqIFVz aW5nIHRoaXMgcHJvY2Vzc29yIGZlYXR1cmUgaW4gYSB2aXJ0dWFsaXplZCAqKgo+Pj4+IChYRU4p ICoqIGVudmlyb25tZW50IGlzIG5vdCAxMDAlIHNhZmUuICoqCj4+Pj4gKFhFTikgKiogU2V0dGlu ZyB0aGUgRFMgYnVmZmVyIGFkZHJlc3Mgd2l0aCB3cm9uZyB2YWx1ZXMgKioKPj4+PiAoWEVOKSAq KiBtYXkgbGVhZCB0byBoeXBlcnZpc29yIGhhbmdzIG9yIGNyYXNoZXMuICoqCj4+Pj4gKFhFTikg KiogSXQgaXMgTk9UIHJlY29tbWVuZGVkIGZvciBwcm9kdWN0aW9uIHVzZSEgKioKPj4+PiAoWEVO KSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK Pj4+Pgo+Pj4gWWVzLCBJIHNhdyB0aGF0LiBJdCBkb2VzbuKAmXQgc3RhdGUgdGhhdCBCVFMgaXMg bm90IHdvcmtpbmcgYXQgYWxsLCBqdXN0IHRoYXQgaXQgaXMgbm90IHRoYXQgc2FmZSB0byB1c2Uu Cj4+PiBBcyBJIHVuZGVyc3RhbmQgaXQgYXMgbG9uZyBhcyBJIHNldCB0aGUgRFMgYnVmZmVyIGFk ZHJlc3MgY29ycmVjdGx5IEkgc2hvdWxkIGJlIGZpbmUsIHJpZ2h0Pwo+PiBSaWdodC4gRXhjZXB0 IHRoYXQgSSBhbSBub3QgY29udmluY2VkIHlvdSBkaWQgc2V0IHRoaXMgYnVmZmVyIGNvcnJlY3Rs eSwKPj4gd2hpY2ggaXMgcG9zc2libHkgd2h5IHlvdXIgaHlwZXJ2aXNvciBjcmFzaGVkIChJIGFt IG5vdCBzdXJlIEkKPj4gdW5kZXJzdG9vZCB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgdGhvdWdo KS4KPj4KPj4gLWJvcmlzCj4+Cj4+PiBTaW5jZSBJIGRvbuKAmXQgd2FudCB0byB1c2UgZm9yIHBy b2R1Y3Rpb24gdGhhdCBpcyBmaW5lIHdpdGggbWUuIEF0IGxlYXN0IGZvciBub3cuCj4+Pgo+Pj4K Pj4+IEtldmluCj4+Pj4gLWJvcmlzCj4+Pj4KPj4+Pgo+Pj4+PiBUaGUgbW9kaWZpZWQgdmVyc2lv biBvZiB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCB0YWtlcyBhIHZjcHUtc3RydWN0IGFzCj4+Pj4+ IGEgcGFyYW1ldGVyIGFuZCB1c2VzIHRoaXMgaW5zdGVhZCBvZiB0aGUgY3VycmVudCB2Y3B1Lgo+ Pj4+Pgo+Pj4+PiBJbnN0ZWFkIG9mCj4+Pj4+Cj4+Pj4+IHN0YXRpY2ludCB2bXhfbXNyX3dyaXRl X2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdAo+Pj4+IG1zcl9jb250ZW50KQo+ Pj4+PiB7Cj4+Pj4+Cj4+Pj4+ICAgICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKPj4+Pj4K Pj4+Pj4gSSBqdXN0IGhhdmUKPj4+Pj4KPj4+Pj4gc3RhdGljaW50IG93bl92bXhfbXNyX3dyaXRl X2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdAo+Pj4+PiBtc3JfY29udGVudCwg c3RydWN0IHZjcHUgKnYpCj4+Pj4+Cj4+Pj4+IEkgZ2V0IHRoaXMgdmNwdSBieSBkLT52Y3B1WzBd IGFzIEkgaGF2ZSBsaW1pdGVkIG15IGd1ZXN0IGRvbWFpbiB0byBvbmUKPj4+Pj4gdmNwdSBhdG0u Cj4+Pj4+Cj4+Pj4+IE9mIGNvdXJzZSBJIGFsc28gdXNlIHNpbWlsYXJseSBtb2RpZmllZCB2ZXJz aW9uIG9mIHRoZSBjYWxsZWQKPj4+Pj4gZnVuY3Rpb25zKHZwbXVfZG9fd3Jtc3Is4oCmKS4KPj4+ Pj4KPj4+Pj4gScK0bSBwcmV0dHkgc3VyZSB0aGF0IG15IHByb2JsZW0gaXMgd2l0aCBhIHdyb25n IHNjb3BlL3VzYWdlIG9mIHRoZQo+Pj4+PiB2Y3B1cy9tZW1vcnksIGJ1dCBJIGhhdmUgbm8gaWRl YSBob3cgdG8gZml4IHRoaXMuCj4+Pj4+Cj4+Pj4+IEkgY2FuIHNlZSBhIHBvdGVudGlhbCBwcm9i bGVtIHdpdGggdGhlIG1lbW9yeSBhbGxvY2F0aW9uIChpbiB0aGUgaG9zdCkKPj4+Pj4gaW50byB3 aGljaCB0aGUgY3B1IGluIGd1ZXN0LW1vZGUgaXMgc3VwcG9zZWQgdG8gd3JpdGUuCj4+Pj4+Cj4+ Pj4+IE9yIG1heWJlIEkgZ290IHRoZSBwcmluY2lwbGUgb2YgYSB2Y3B1L3ZwbXUgYWxsIHdyb25n Lgo+Pj4+Pgo+Pj4+PiBTaW5jZSBJIGNvdWxkbuKAmXQgZmluZCBhbnkgcHJvamVjdCB0aGF0IHVz ZXMgdGhlIEJUUyBmb3IgdGhlIGd1ZXN0LCBJCj4+Pj4+IGFtIHdvbmRlcmluZyBpZiBhbnlvbmUg aGFzIGV2ZXIgZG9uZSB0aGlzIGFuZCBpZiBpdCBpcyBwb3NzaWJsZSBhdCBhbGwuCj4+Pj4+Cj4+ Pj4+IEFueSBpbnB1dCBpcyB3ZWxjb21lIGFzIEkgYW0gcHJldHR5IG11Y2ggc3R1Y2sgYXRt4oCm Cj4+Pj4+Cj4+Pj4+IENoZWVycwo+Pj4+Pgo+Pj4+PiBLZXZpbgo+CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: Branch Trace Storage for guestsandVPMUinitialization Date: Thu, 26 Feb 2015 12:53:53 -0500 Message-ID: <54EF5DB1.4040205@oracle.com> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <54ECB114.6040101@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA47347@e1.gdata.de> <54EE4A8E.3030207@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA474FB@e1.gdata.de> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; Format="flowed" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <5C9C3B9BEF1B354596EAE3D6800D876BA474FB@e1.gdata.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Kevin.Mayer@gdata.de Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 02/26/2015 08:44 AM, Kevin.Mayer@gdata.de wrote: > >> -----Urspr=FCngliche Nachricht----- >> Von: Boris Ostrovsky [mailto:boris.ostrovsky@oracle.com] >> Gesendet: Mittwoch, 25. Februar 2015 23:20 >> An: Mayer, Kevin >> Betreff: Re: AW: AW: [Xen-devel] Branch Trace Storage for guests >> andVPMUinitialization >> >> On 02/25/2015 01:23 PM, Kevin.Mayer@gdata.de wrote: >>>> -----Urspr=FCngliche Nachricht----- >>>> Von: Boris Ostrovsky [mailto:boris.ostrovsky@oracle.com] >>>> Gesendet: Mittwoch, 25. Februar 2015 17:32 >>>> An: Mayer, Kevin >>>> Cc: xen-devel@lists.xen.org >>>> Betreff: Re: AW: [Xen-devel] Branch Trace Storage for guests and >>>> VPMUinitialization >>>> >>>> On 02/25/2015 10:12 AM, Kevin.Mayer@gdata.de wrote: >>>>>> -----Urspr=FCngliche Nachricht----- >>>>>> Von: Boris Ostrovsky [mailto:boris.ostrovsky@oracle.com] >>>>>> Gesendet: Dienstag, 24. Februar 2015 18:13 >>>>>> An: Mayer, Kevin; xen-devel@lists.xen.org >>>>>> Betreff: Re: [Xen-devel] Branch Trace Storage for guests and VPMU >>>>>> initialization >>>>>> >>>>>> On 02/24/2015 10:27 AM, Kevin.Mayer@gdata.de wrote: >>>>>>> Hi guys >>>>>>> >>>>>>> I`m trying to set up the BTS so that I can log the branches taken >>>>>>> in the guest using Xen 4.4.1 with a WinXP SP3 guest on a Core i7 >>>>>>> Sandy Bridge. >>>>>>> >>>>>>> I added the vpmu=3Dbts boot parameter to my grub2 configuration and >>>>>>> extended the libxl,libxc,domctl,=85 with an own command so that I >>>>>>> can trigger the activation of the BTS whenever I want. >>>>>>> >>>>>> I am not sure why you are doing all these changes to Xen code. BTS >>>>>> is supposed to be managed from the guest. For example, a Fedora >> HVM >>>>>> guest will produce this: >>>>>> >>>>>> [root@dhcp-burlington7-2nd-B-east-10-152-55-140 ~]# perf record -e >>>>>> branches:u -c 1 -d sleep 1 [ perf record: Woken up 3838 times to >>>>>> write data ] [ perf record: Captured and wrote 0.704 MB perf.data >>>>>> (~30756 samples) ] >>>>>> [root@dhcp-burlington7-2nd-B-east-10-152-55-140 ~]# perf script -f >>>>>> ip,addr,sym,dso,symoff --show-kernel-path >>>>>> ffffffff8167c347 native_irq_return_iret+0x0 (/proc/kcore) =3D> >>>>>> 328c001590 [unknown] (/proc/kcore) >>>>>> ffffffff8167c347 native_irq_return_iret+0x0 (/proc/kcore) =3D> >>>>>> 328c001590 [unknown] ([unknown]) >>>>>> 328c001593 [unknown] ([unknown]) =3D> 328c004b70 [u= nknown] >>>>>> ([unknown]) >>>>>> ... >>>>>> >>>>> I want to be able to log the taken branches (of the guest) without >>>>> the need >>>> to modify the guest at all. >>>>> This means I have to do all the logic in the hypervisor, or am I wron= g? >>>> In that case, yes. But then you have to make sure that at least >>>> * you don't load guest's VPMU (or, at least, BTS-related >>>> registers) on context switch >>>> * You don't send the interrupt to the guest (meaning that you will >>>> need to somehow inform dom0 of the BTS interrupt) >>>> >>>> and probably more. >>>> >>>> Essentially, you want dom0 to profile the guest. I have been working >>>> on patches that would allow that but they are still under review. >>>> >>> Yes, this is exactly what I want to do. >>> Too bad that your patches are under review. Would have been pretty >> helpful I think. >> >> To be honest, I never tested them for BTS so they may not work in that >> mode. In fact, as you will realize by reading what I said below, they pr= obably >> don't ;-( >> >>> Maybe I should point out that I=B4m a total noob with xen and I definit= ely >> don=92t understand all parts yet. >>> So there may be some dumb mistakes in my assumptions. >>> >>>>>>> In this command I do the following: >>>>>>> >>>>>>> I set up the memory region for the BTS Buffer and the DS Buffer >>>>>>> Management Area using xzalloc_bytes >>>>>>> >>>>>> I don't think you should be allocating BTS buffers in the >>>>>> hypervisor, they >>>> are >>>>>> in guest's memory. >>>>> I agree. As I said I think this is where my main problem is at the mo= ment. >>>>> Is there any way I can allocate memory in the hypervisor in a way >>>>> the guest >>>> can access it? >>>> >>>> I am not sure this is what you want since you seem to *not* want the >>>> guest to process the samples, right? >>>> >>>> But yes, you can. E.g. something like what map_vcpu_info() does. (I >>>> have no idea how you'd do this from Windows.) >>> Right again. As you said my goal is to profile the guest from dom0. So >> whenever the CPU is in guestmode and a branch is taken it should be stor= ed >> in the BTS, but not when the CPU is running dom0. My idea was basically = to >> set up the memory for the BTS and the GUEST_IA32_DEBUGCTL so when >> there is a vmexit the logging stops and starts again when there is a vme= nter. >> As far as I understand the IA32_DEBUGCTL gets switched between the >> dom0-value and the guest-value (stored in vmcs) when there is a >> vmexit/vmenter, right? >> >> Right. And now I am not longer sure whether your buffer should be in >> hypervisor or guest's space: after VMENTER the hardware will load guest's >> versions of IA32_DEBUGCTLMSR and MSR_IA32_DS_AREA. I don't know >> whether you can prevent this from happening (need to look in the spec). >> And if that's the case then you might be able to: >> >> 1. Map DS area and BTS buffer in both guest and hypervisor. I believe yo= ur >> guest will have to have this mapped since these ares will be accessed via >> guest's EPT. As I said, I don't know how you'd do this in Windows --- I = know >> nothing about programming there. I assume it can be done since there are >> Windows PV drivers for Xen. >> 2. Have dom0 set appropriate bits in IA32_DEBUGCTLMSR to start tracing. >> You will need to first pause your guest's VCPUs, then update appropriate >> register in VMCS (bracketed with vmx_vmcs_enter/exit) and then unpause >> it. >> 3. If you program BTS to generate interrupts you may need to do something >> about it in vpmu_interrupt() to prevent those interrupts from going into= the >> guest as this will likely confuse it and it will die (the interrupt I th= ink will be an >> NMI, making things real bad for the guest). >> 3. Now you should be able to read buffers from hypervisor. > Why should I prevent the loading of guest IA32_DEBUGCTLMSR and MSR_IA32_D= S_AREA? I was hoping that you might then keep the buffer in hypervisor space. = But I don't think it's possible to make HW not virtualize those two = registers (DS_AREA in particular). > The idea was to access/setup the guest IA32_DEBUGCTLMSR and MSR_IA32_DS_A= REA when in dom0. > So when there is a VMENTER the guest registers get loaded and the BTS sta= rts to log. > And stops of course when there is an VMEXIT. > > Regarding 1. > I`m not sure how I know at which address the BTS is located in this case. > Let=B4s say I setup the BTS in the guest at address x. To get this addres= s x I need to > read the guest MSR_IA32_DS_AREA, right? If the guest wrote this address to MSR_IA32_DS_AREA then yes. > For this I would need to access the vcpu->arch_vcpu-> hvm_vcpu->vpmu > used by the guest since the MSR_IA32_DS_AREA isn`t part of the vmcs > (and therefore cannot be accessed by the handy __vmread()). > Is there a good way to get this information during a vpmu_interrupt() (si= nce I believe > The BTINT will have to be handled there), or maybe a VMEXIT? I believe the interrupt can only happen when the guest is running on the = physical processor so you should be able to get to guest's VPMU as = vcpu_vpmu(v)->context->ds_area. Same for VMEXIT. > > 2. I already use the vmx_vmcs_enter/exit but didn=92t think about pausing= the vpcu. > I will add that. > > 3. I didn=92t look at the BTINT yet, but this sounds reasonable. > >>> This would be "the guest is logging the branch traces", but it is setup= and >> controlled from the dom0. So more or less a hybrid I think. >>>>> Of course the guest must not be able to use this memory in its >>>>> normal >>>> operations but just for BTS. >>>>> Is this even possible? I am rather confused at the moment. :-D >>>>> >>>>>>> Then I write the pointer to the BTS Buffer into the DS Buffer >>>>>>> Management Area at +0x0 and +0x8 (BTS Buffer Base and BTS Index) >>>>>>> >>>>>>> When I use vmx_msr_write_intercept to store the value in >>>>>>> MSR_IA32_DS_AREA the host reboots (my idea is he tries to access a >>>>>>> vpmu-struct that isn=B4t there in the current vcpu and panics). >>>> Who is trying to write to MSR_IA32_DS_AREA? The guest or dom0? I >>>> thought you said that you want dom0 to do sampling. Or are you trying >>>> to setup DS area from your guest and control it from dom0? I am >> somewhat confused. >>> The dom0 writes to MSR_IA32_DS_AREA. I want to do all the setup and >>> controlling from dom0 in a way that enables the guest to store branch >>> traces in the BTS (that was setup by the dom0) >> I think I understand why you crash hypervisor now. I mentioned above that >> writing into vmcs requires bracketing by vmx_vmcs_enter/exit. So, in >> addition to having new vcpu parameter to vmx_msr_write_intercept(), you >> need to add those two. See vmx_vlapic_msr_changed(), right above >> vmx_msr_write_intercept(). And don't forget to pause guest's vcpu (I am >> pretty sure you need that since your guest may be running somewhere else >> at this time). >> >> >>> Sorry if my explanations are a bit confusing. I myself am confused about >> this part of the Xen-code. >>>>>> Can you post hypervisor log? (hard to say how helpful it will be >>>>>> without seeing your code changes though) >>>>>> >>>>> Right after enabling the BTS I get a triple fault. >>>>> hvm.c:1357:d2 Triple fault on VCPU0 - invoking HVM shutdown action 1. >>>> That's not host reboot, this is your guest dying. >>> Yes >>> When I use my own vmx_msr_write_intercept (which explicitly uses the >> vcpu of my guest domain instead of the "current") and my own >> core2_vpmu_do_wrmsr , core2_vpmu_msr_common_check I don=92t get a >> host reboot, but a dying guest when I try to enable BTS. As you said most >> likely because the MSR_IA32_DS_AREA points to dom0-memory and the >> hypervisor is not amused when a guest tries to write stuff there. >>> When I use the build in ones (which all use struct vcpu *v =3D current;= ) I get a >> host reboot. >>> Maybe because of a missing vpmu-structs as I notice that only one vcpu_= id >> gets initialized in vpmu_initialise during boot. >>> So when using the build in vmx_msr_write_intercept the writing ends in >>> vpmu_do_wrmsr at if ( vpmu->arch_vpmu_ops && vpmu- >>> arch_vpmu_ops->do_wrmsr ) >>> return vpmu->arch_vpmu_ops->do_wrmsr(msr, msr_content); and >>> the host reboots. >>> Maybe I need some special kind of initialization before I call >> vmx_msr_write_intercept? >>> Even with >>> struct vcpu *current_v=3Dcurrent; >>> vpmu_initialise(current_v); >>> return_value=3D vmx_msr_write_intercept(MSR_IA32_DS_AREA, >>> ds_buffer_management_area); I get an instant host reboot at the above >>> mentioned return vpmu->arch_vpmu_ops->do_wrmsr(msr, msr_content); >> Right. Because you are trying to access VMCS from dom0 context. dom0 >> doesn't have VMCS as it is a PV guest. >> > I thought so, but isn=92t the if clause > if ( vpmu->arch_vpmu_ops && vpmu->arch_vpmu_ops->do_wrmsr ) > supposed to catch that? Yes, it should. BTW, why are you explicitly calling vpmu_initialise()? = It should be called during guest VCPU initialization. I'd need to see 'xl dmesg' output at time of reboot, possibly with = disassembly of code at RIP that presumably will be reported as causing = the reboot. -boris > > Kevin > >> -boris >> >>>>>>> When I use a modified version of vmx_msr_write_intercept I don=92t >> get >>>>>>> any crashes as long as I don=92t enable BTS and TR in the >>>>>>> GUEST_IA32_DEBUGCTL (BTR works). When I enable the BTS (and TR) >>>> the >>>>>>> guest crashes. I suppose he gets killed by the hypervisor for >>>>>>> accessing forbidden memory. >>>>>>> >>>>>> Possibly because DS area point to hypervisor memory. >>>>>> >>>>>> >>>>>> Having said all this, I am not sure how well BTS works. You did noti= ce >>>>>> this in the hypervisor log: >>>>>> >>>>>> (XEN) >>>> ****************************************************** >>>>>> (XEN) ** WARNING: Emulation of BTS Feature is switched on ** >>>>>> (XEN) ** Using this processor feature in a virtualized ** >>>>>> (XEN) ** environment is not 100% safe. ** >>>>>> (XEN) ** Setting the DS buffer address with wrong values ** >>>>>> (XEN) ** may lead to hypervisor hangs or crashes. ** >>>>>> (XEN) ** It is NOT recommended for production use! ** >>>>>> (XEN) >>>> ****************************************************** >>>>> Yes, I saw that. It doesn=92t state that BTS is not working at all, j= ust that it is >>>> not that safe to use. >>>>> As I understand it as long as I set the DS buffer address correctly I= should >> be >>>> fine, right? >>>> >>>> Right. Except that I am not convinced you did set this buffer correctl= y, >>>> which is possibly why your hypervisor crashed (I am not sure I >>>> understood under what circumstances though). >>>> >>>> -boris >>> We are thinking very much alike. I also am not convinced I set the buff= er >> correctly. ^^ >>> But since I get a reboot as soon as >>> return vpmu->arch_vpmu_ops->do_wrmsr(msr, msr_content); gets called >> I don=92t think that the setup of the buffer is the problem (when using = the >> original vmx_msr_write_intercept), but rather something with the setup of >> the vpmu. >>> When I use my own vmx_msr_write_intercept with the d->vcpu[0] instead >> of current the writing succeeds but the guest crashes/gets killed when t= he >> BTS is enabled. >>> So in this second case the setup of the buffer seems to be the problem. >>> >>> Kevin >>> >>>>> Since I don=92t want to use for production that is fine with me. At l= east for >>>> now. >>>>> Kevin >>>>>> -boris >>>>>> >>>>>> >>>>>>> The modified version of vmx_msr_write_intercept takes a vcpu-struct >> as >>>>>>> a parameter and uses this instead of the current vcpu. >>>>>>> >>>>>>> Instead of >>>>>>> >>>>>>> staticint vmx_msr_write_intercept(unsigned int msr, uint64_t >>>>>> msr_content) >>>>>>> { >>>>>>> >>>>>>> struct vcpu *v =3D current; >>>>>>> >>>>>>> I just have >>>>>>> >>>>>>> staticint own_vmx_msr_write_intercept(unsigned int msr, uint64_t >>>>>>> msr_content, struct vcpu *v) >>>>>>> >>>>>>> I get this vcpu by d->vcpu[0] as I have limited my guest domain to = one >>>>>>> vcpu atm. >>>>>>> >>>>>>> Of course I also use similarly modified version of the called >>>>>>> functions(vpmu_do_wrmsr,=85). >>>>>>> >>>>>>> I=B4m pretty sure that my problem is with a wrong scope/usage of the >>>>>>> vcpus/memory, but I have no idea how to fix this. >>>>>>> >>>>>>> I can see a potential problem with the memory allocation (in the ho= st) >>>>>>> into which the cpu in guest-mode is supposed to write. >>>>>>> >>>>>>> Or maybe I got the principle of a vcpu/vpmu all wrong. >>>>>>> >>>>>>> Since I couldn=92t find any project that uses the BTS for the guest= , I >>>>>>> am wondering if anyone has ever done this and if it is possible at = all. >>>>>>> >>>>>>> Any input is welcome as I am pretty much stuck atm=85 >>>>>>> >>>>>>> Cheers >>>>>>> >>>>>>> Kevin >>>>>>> >>>>>>> >>>>>>> ____________ >>>>>>> Virus checked by G Data MailSecurity >>>>>>> Version: AVA 25.404 dated 24.02.2015 >>>>>>> Virus news: www.antiviruslab.com >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Xen-devel mailing list >>>>>>> Xen-devel@lists.xen.org >>>>>>> http://lists.xen.org/xen-devel >>>>> ____________ >>>>> Virus checked by G Data MailSecurity >>>>> Version: AVA 25.418 dated 25.02.2015 >>>>> Virus news: www.antiviruslab.com >>> ____________ >>> Virus checked by G Data MailSecurity >>> Version: AVA 25.420 dated 25.02.2015 >>> Virus news: www.antiviruslab.com > ____________ > Virus checked by G Data MailSecurity > Version: AVA 25.433 dated 26.02.2015 > Virus news: www.antiviruslab.com From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Re: Branch Trace Storage for guests andVPMUinitialization Date: Thu, 26 Feb 2015 17:57:13 +0000 Message-ID: <5C9C3B9BEF1B354596EAE3D6800D876BA47F86@e1.gdata.de> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> <5820128.XDeVCQ4qG6@amur> <54EF4B4E.4050206@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54EF4B4E.4050206@oracle.com> Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: boris.ostrovsky@oracle.com, dietmar.hahn@ts.fujitsu.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org DQoNCj4gLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KPiBWb246IEJvcmlzIE9z dHJvdnNreSBbbWFpbHRvOmJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tXQ0KPiBHZXNlbmRldDog RG9ubmVyc3RhZywgMjYuIEZlYnJ1YXIgMjAxNSAxNzozNQ0KPiBBbjogRGlldG1hciBIYWhuOyB4 ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZw0KPiBDYzogTWF5ZXIsIEtldmluDQo+IEJldHJlZmY6IFJl OiBbWGVuLWRldmVsXSBCcmFuY2ggVHJhY2UgU3RvcmFnZSBmb3IgZ3Vlc3RzIGFuZA0KPiBWUE1V aW5pdGlhbGl6YXRpb24NCj4gDQo+IE9uIDAyLzI2LzIwMTUgMDM6NTYgQU0sIERpZXRtYXIgSGFo biB3cm90ZToNCj4gPiBBbSBNaXR0d29jaCAyNSBGZWJydWFyIDIwMTUsIDExOjMxOjMxIHNjaHJp ZWIgQm9yaXMgT3N0cm92c2t5Og0KPiA+PiBPbiAwMi8yNS8yMDE1IDEwOjEyIEFNLCBLZXZpbi5N YXllckBnZGF0YS5kZSB3cm90ZToNCj4gPj4+PiAtLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNo dC0tLS0tDQo+ID4+Pj4gVm9uOiBCb3JpcyBPc3Ryb3Zza3kgW21haWx0bzpib3Jpcy5vc3Ryb3Zz a3lAb3JhY2xlLmNvbV0NCj4gPj4+PiBHZXNlbmRldDogRGllbnN0YWcsIDI0LiBGZWJydWFyIDIw MTUgMTg6MTMNCj4gPj4+PiBBbjogTWF5ZXIsIEtldmluOyB4ZW4tZGV2ZWxAbGlzdHMueGVuLm9y Zw0KPiA+Pj4+IEJldHJlZmY6IFJlOiBbWGVuLWRldmVsXSBCcmFuY2ggVHJhY2UgU3RvcmFnZSBm b3IgZ3Vlc3RzIGFuZCBWUE1VDQo+ID4+Pj4gaW5pdGlhbGl6YXRpb24NCj4gPj4+Pg0KPiA+Pj4+ IE9uIDAyLzI0LzIwMTUgMTA6MjcgQU0sIEtldmluLk1heWVyQGdkYXRhLmRlIHdyb3RlOg0KPiA+ Pj4+PiBIaSBndXlzDQo+ID4+Pj4+DQo+ID4+Pj4+IElgbSB0cnlpbmcgdG8gc2V0IHVwIHRoZSBC VFMgc28gdGhhdCBJIGNhbiBsb2cgdGhlIGJyYW5jaGVzIHRha2VuDQo+ID4+Pj4+IGluIHRoZSBn dWVzdCB1c2luZyBYZW4gNC40LjEgd2l0aCBhIFdpblhQIFNQMyBndWVzdCBvbiBhIENvcmUgaTcN Cj4gPj4+Pj4gU2FuZHkgQnJpZGdlLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIGFkZGVkIHRoZSB2cG11 PWJ0cyBib290IHBhcmFtZXRlciB0byBteSBncnViMiBjb25maWd1cmF0aW9uIGFuZA0KPiA+Pj4+ PiBleHRlbmRlZCB0aGUgbGlieGwsbGlieGMsZG9tY3RsLOKApiB3aXRoIGFuIG93biBjb21tYW5k IHNvIHRoYXQgSQ0KPiA+Pj4+PiBjYW4gdHJpZ2dlciB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgQlRT IHdoZW5ldmVyIEkgd2FudC4NCj4gPj4+Pj4NCj4gPj4+PiBJIGFtIG5vdCBzdXJlIHdoeSB5b3Ug YXJlIGRvaW5nIGFsbCB0aGVzZSBjaGFuZ2VzIHRvIFhlbiBjb2RlLiBCVFMNCj4gPj4+PiBpcyBz dXBwb3NlZCB0byBiZSBtYW5hZ2VkIGZyb20gdGhlIGd1ZXN0LiBGb3IgZXhhbXBsZSwgYSBGZWRv cmENCj4gSFZNDQo+ID4+Pj4gZ3Vlc3Qgd2lsbCBwcm9kdWNlIHRoaXM6DQo+ID4+Pj4NCj4gPj4+ PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243LTJuZC1CLWVhc3QtMTAtMTUyLTU1LTE0MCB+XSMgcGVy ZiByZWNvcmQgLWUNCj4gPj4+PiBicmFuY2hlczp1IC1jIDEgLWQgc2xlZXAgMSBbIHBlcmYgcmVj b3JkOiBXb2tlbiB1cCAzODM4IHRpbWVzIHRvDQo+ID4+Pj4gd3JpdGUgZGF0YSBdIFsgcGVyZiBy ZWNvcmQ6IENhcHR1cmVkIGFuZCB3cm90ZSAwLjcwNCBNQiBwZXJmLmRhdGENCj4gPj4+PiAofjMw NzU2IHNhbXBsZXMpIF0NCj4gPj4+PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243LTJuZC1CLWVhc3Qt MTAtMTUyLTU1LTE0MCB+XSMgcGVyZiBzY3JpcHQgLWYNCj4gPj4+PiBpcCxhZGRyLHN5bSxkc28s c3ltb2ZmIC0tc2hvdy1rZXJuZWwtcGF0aA0KPiA+Pj4+ICAgICBmZmZmZmZmZjgxNjdjMzQ3IG5h dGl2ZV9pcnFfcmV0dXJuX2lyZXQrMHgwICgvcHJvYy9rY29yZSkgPT4NCj4gPj4+PiAzMjhjMDAx NTkwIFt1bmtub3duXSAoL3Byb2Mva2NvcmUpDQo+ID4+Pj4gICAgIGZmZmZmZmZmODE2N2MzNDcg bmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tjb3JlKSA9Pg0KPiA+Pj4+IDMyOGMw MDE1OTAgW3Vua25vd25dIChbdW5rbm93bl0pDQo+ID4+Pj4gICAgICAgICAgIDMyOGMwMDE1OTMg W3Vua25vd25dIChbdW5rbm93bl0pID0+ICAgICAgIDMyOGMwMDRiNzAgW3Vua25vd25dDQo+ID4+ Pj4gKFt1bmtub3duXSkNCj4gPj4+PiAuLi4NCj4gPj4+Pg0KPiA+Pj4gSSB3YW50IHRvIGJlIGFi bGUgdG8gbG9nIHRoZSB0YWtlbiBicmFuY2hlcyAob2YgdGhlIGd1ZXN0KSB3aXRob3V0IHRoZQ0K PiBuZWVkIHRvIG1vZGlmeSB0aGUgZ3Vlc3QgYXQgYWxsLg0KPiA+Pj4gVGhpcyBtZWFucyBJIGhh dmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0aGUgaHlwZXJ2aXNvciwgb3IgYW0gSSB3cm9uZz8N Cj4gPj4gSW4gdGhhdCBjYXNlLCB5ZXMuIEJ1dCB0aGVuIHlvdSBoYXZlIHRvIG1ha2Ugc3VyZSB0 aGF0IGF0IGxlYXN0DQo+ID4+ICAgICogeW91IGRvbid0IGxvYWQgZ3Vlc3QncyBWUE1VIChvciwg YXQgbGVhc3QsIEJUUy1yZWxhdGVkDQo+ID4+IHJlZ2lzdGVycykgb24gY29udGV4dCBzd2l0Y2gN Cj4gPiBCdXQgeW91IG5lZWQgdG8gbW9kaWZ5IFBNVSByZWdpc3RlcnMgd2hlbiBzd2l0Y2hpbmcg dG8vZnJvbSB0aGUgZ3Vlc3QNCj4gPiBjb250ZXh0IHRvIGdldCBQTVUgcnVubmluZy4NCj4gDQo+ IA0KPiANCj4gSSB3YXMgdGhpbmtpbmcgdGhhdCBhbGwgQlRTIHN0dWZmIGNhbiBiZSBjb250cm9s bGVkIGZyb20gZG9tMCBhbmQgc28gd2UgY2FuDQo+IHVzZSBkb20wJ3MgdmVyc2lvbiBvZiB0aGVz ZSByZWdpc3RlcnMuIEkgZGlkbid0IHJlYWxpemUgdGhhdCBEU19BUkVBIHdvdWxkDQo+IGhhdmUg dG8gYmUgYWNjZXNzZWQgaW4gZ3Vlc3QncyBhZGRyZXNzIHNwYWNlIChhbmQgdGhhdCBERUJVR0NU TCBpcyBsb2FkZWQNCj4gZnJvbSBWTUNTKS4NCj4gDQo+IFdoaWNoIGlzIHdoYXQgSSB0aGluayBJ IHNhaWQgaW4gcmVzcG9uc2UgdG8gdGhpcyBtZXNzYWdlICh3aGljaCBkaWRuJ3Qgc2hvdyB1cA0K PiBvbiB0aGUgbGlzdCBiZWNhdXNlIEtldmluIGFjY2lkZW50YWxseSBkcm9wcGVkIHhlbi1kZXZl bCkuDQo+IA0KPiAtYm9yaXMNCiANClRlcnJpYmx5IHNvcnJ5IGFib3V0IHRoYXQuLi4NCg0KU28g dGhlIFZQTVUgZG9lc27igJl0IGdldCBsb2FkZWQgd2hlbiB0aGVyZSBpcyBhIFZNRU5URVI/DQpJ IHRob3VnaHQgSSBjb3VsZCBzZXQgdGhlIGRvbVUtPnZjcHUtPnZwbXUgdG8gZW5hYmxlIEJUUyB3 aGlsZSBpbiBkb20wICh3aXRoIG1vZGlmaWVkIHZlcnNpb25zIG9mIG1zcl93cml0ZV9pbnRlcmNl cHQsIHZwbXVfZG9fd3Jtc3IgYW5kIGNvcmUyX3ZwbXVfZG9fd3Jtc3Igb2YgY291cnNlIHNpbmNl IHRoZSBidWlsZCBpbiBvbmVzIHVzZSB0aGUgY3VycmVudC12Y3B1IHdoaWNoIHdvdWxkIGJlIHRo ZSBkb20wLXZjcHUpDQphbmQgYXMgc29vbiBhcyB0aGVyZSBpcyBhIGNvbnRleHQgc3dpdGNoIHRv IGRvbVUgdGhlIHZwbXUgZ2V0cyBsb2FkZWQgYW5kIHRoZSBndWVzdCBzdGFydHMgbG9nZ2luZy4N CklmIHRoZSBkZXNjcmliZWQgYmVoYXZpb3IgaXMgY29ycmVjdCB0aGUgb25seSBwcm9ibGVtIEkg Y2FuIHNlZSBpcyB3aXRoIGFsbG9jYXRpbmcgbWVtb3J5IGluIGRvbTAgaW4gYSB3YXkgdGhhdCB0 aGUgZ3Vlc3QgY2FuIGFjY2VzcyBpdC4NCkJ1dCBpZiBJIGdvdCBpdCB3cm9uZyBwbGVhc2UgZXhw bGFpbiBob3cgdGhlIHZwbXUgcmVhbGx5IHdvcmtzLg0KDQpDaGVlcnMNCg0KS2V2aW4NCg0KDQo+ IA0KPiANCj4gPiBJIGRpZG4ndCB0aGluayBvZiB1c2luZyB0aGUgVlBNVSBzdHVmZiB3aXRoIG1v ZGlmeWluZyB0aGUgY29udGV4dCBmcm9tDQo+ID4gb3V0c2lkZSB0aGUgZ3Vlc3QuDQo+ID4NCj4g Pj4gICAgKiBZb3UgZG9uJ3Qgc2VuZCB0aGUgaW50ZXJydXB0IHRvIHRoZSBndWVzdCAobWVhbmlu ZyB0aGF0IHlvdSB3aWxsDQo+ID4+IG5lZWQgdG8gc29tZWhvdyBpbmZvcm0gZG9tMCBvZiB0aGUg QlRTIGludGVycnVwdCkNCj4gPj4NCj4gPj4gYW5kIHByb2JhYmx5IG1vcmUuDQo+ID4+DQo+ID4+ IEVzc2VudGlhbGx5LCB5b3Ugd2FudCBkb20wIHRvIHByb2ZpbGUgdGhlIGd1ZXN0LiBJIGhhdmUg YmVlbiB3b3JraW5nDQo+ID4+IG9uIHBhdGNoZXMgdGhhdCB3b3VsZCBhbGxvdyB0aGF0IGJ1dCB0 aGV5IGFyZSBzdGlsbCB1bmRlciByZXZpZXcuDQo+ID4+DQo+ID4+DQo+ID4+Pj4+IEluIHRoaXMg Y29tbWFuZCBJIGRvIHRoZSBmb2xsb3dpbmc6DQo+ID4+Pj4+DQo+ID4+Pj4+IEkgc2V0IHVwIHRo ZSBtZW1vcnkgcmVnaW9uIGZvciB0aGUgQlRTIEJ1ZmZlciBhbmQgdGhlIERTIEJ1ZmZlcg0KPiA+ Pj4+PiBNYW5hZ2VtZW50IEFyZWEgdXNpbmcgeHphbGxvY19ieXRlcw0KPiA+Pj4+Pg0KPiA+Pj4+ IEkgZG9uJ3QgdGhpbmsgeW91IHNob3VsZCBiZSBhbGxvY2F0aW5nIEJUUyBidWZmZXJzIGluIHRo ZQ0KPiA+Pj4+IGh5cGVydmlzb3IsIHRoZXkgYXJlIGluIGd1ZXN0J3MgbWVtb3J5Lg0KPiA+Pj4g SSBhZ3JlZS4gQXMgSSBzYWlkIEkgdGhpbmsgdGhpcyBpcyB3aGVyZSBteSBtYWluIHByb2JsZW0g aXMgYXQgdGhlIG1vbWVudC4NCj4gPj4+IElzIHRoZXJlIGFueSB3YXkgSSBjYW4gYWxsb2NhdGUg bWVtb3J5IGluIHRoZSBoeXBlcnZpc29yIGluIGEgd2F5IHRoZQ0KPiBndWVzdCBjYW4gYWNjZXNz IGl0Pw0KPiA+PiBJIGFtIG5vdCBzdXJlIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCBzaW5jZSB5b3Ug c2VlbSB0byAqbm90KiB3YW50IHRoZQ0KPiA+PiBndWVzdCB0byBwcm9jZXNzIHRoZSBzYW1wbGVz LCByaWdodD8NCj4gPj4NCj4gPj4gQnV0IHllcywgeW91IGNhbi4gRS5nLiBzb21ldGhpbmcgbGlr ZSB3aGF0IG1hcF92Y3B1X2luZm8oKSBkb2VzLiAoSQ0KPiA+PiBoYXZlIG5vIGlkZWEgaG93IHlv dSdkIGRvIHRoaXMgZnJvbSBXaW5kb3dzLikNCj4gPiBUaGUgRFMgYnVmZmVyIGhhcyB0byBiZSBt YXBwZWQgd2l0aGluIHRoZSBndWVzdHMgYWRkcmVzcyBzcGFjZSBzbyB0aGUNCj4gPiBDUFUgcnVu bmluZyBpbiBndWVzdCBjb250ZXh0IGNhbiBhY2Nlc3MgdGhpcyBhcmVhLiBPdGhlcndpc2UgeW91 IGdldA0KPiA+IHRoaXMgdHJpcGxlIGZhdWx0Lg0KPiA+IFNvIEkgd291bGQgdGhpbmsgeW91IG5l ZWQgYSBtaXh0dXJlIG9mIHdyaXRpbmcgc29tZSBzdHVmZiBpbiBXaW5kb3dzDQo+ID4gYW5kIHBh dGNoaW5nIHRoZSBoeXBlcnZpc29yLg0KPiA+DQo+ID4gRGlldG1hci4NCj4gPg0KPiA+Pg0KPiA+ Pj4gT2YgY291cnNlIHRoZSBndWVzdCBtdXN0IG5vdCBiZSBhYmxlIHRvIHVzZSB0aGlzIG1lbW9y eSBpbiBpdHMgbm9ybWFsDQo+IG9wZXJhdGlvbnMgYnV0IGp1c3QgZm9yIEJUUy4NCj4gPj4+IElz IHRoaXMgZXZlbiBwb3NzaWJsZT8gSSBhbSByYXRoZXIgY29uZnVzZWQgYXQgdGhlIG1vbWVudC4g Oi1EDQo+ID4+Pg0KPiA+Pj4+PiBUaGVuIEkgd3JpdGUgdGhlIHBvaW50ZXIgdG8gdGhlIEJUUyBC dWZmZXIgaW50byB0aGUgRFMgQnVmZmVyDQo+ID4+Pj4+IE1hbmFnZW1lbnQgQXJlYSBhdCArMHgw IGFuZCArMHg4IChCVFMgQnVmZmVyIEJhc2UgYW5kIEJUUyBJbmRleCkNCj4gPj4+Pj4NCj4gPj4+ Pj4gV2hlbiBJIHVzZSB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCB0byBzdG9yZSB0aGUgdmFsdWUg aW4NCj4gPj4+Pj4gTVNSX0lBMzJfRFNfQVJFQSB0aGUgaG9zdCByZWJvb3RzIChteSBpZGVhIGlz IGhlIHRyaWVzIHRvIGFjY2VzcyBhDQo+ID4+Pj4+IHZwbXUtc3RydWN0IHRoYXQgaXNuwrR0IHRo ZXJlIGluIHRoZSBjdXJyZW50IHZjcHUgYW5kIHBhbmljcykuDQo+ID4+DQo+ID4+IFdobyBpcyB0 cnlpbmcgdG8gd3JpdGUgdG8gTVNSX0lBMzJfRFNfQVJFQT8gVGhlIGd1ZXN0IG9yIGRvbTA/IEkN Cj4gPj4gdGhvdWdodCB5b3Ugc2FpZCB0aGF0IHlvdSB3YW50IGRvbTAgdG8gZG8gc2FtcGxpbmcu IE9yIGFyZSB5b3UgdHJ5aW5nDQo+ID4+IHRvIHNldHVwIERTIGFyZWEgZnJvbSB5b3VyIGd1ZXN0 IGFuZCBjb250cm9sIGl0IGZyb20gZG9tMD8gSSBhbQ0KPiBzb21ld2hhdCBjb25mdXNlZC4NCj4g Pj4NCj4gPj4+PiBDYW4geW91IHBvc3QgaHlwZXJ2aXNvciBsb2c/IChoYXJkIHRvIHNheSBob3cg aGVscGZ1bCBpdCB3aWxsIGJlDQo+ID4+Pj4gd2l0aG91dCBzZWVpbmcgeW91ciBjb2RlIGNoYW5n ZXMgdGhvdWdoKQ0KPiA+Pj4+DQo+ID4+PiBSaWdodCBhZnRlciBlbmFibGluZyB0aGUgQlRTIEkg Z2V0IGEgdHJpcGxlIGZhdWx0Lg0KPiA+Pj4gaHZtLmM6MTM1NzpkMiBUcmlwbGUgZmF1bHQgb24g VkNQVTAgLSBpbnZva2luZyBIVk0gc2h1dGRvd24gYWN0aW9uIDEuDQo+ID4+DQo+ID4+IFRoYXQn cyBub3QgaG9zdCByZWJvb3QsIHRoaXMgaXMgeW91ciBndWVzdCBkeWluZy4NCj4gPj4NCj4gPj4N Cj4gPj4+Pj4gV2hlbiBJIHVzZSBhIG1vZGlmaWVkIHZlcnNpb24gb2Ygdm14X21zcl93cml0ZV9p bnRlcmNlcHQgSSBkb27igJl0DQo+ID4+Pj4+IGdldCBhbnkgY3Jhc2hlcyBhcyBsb25nIGFzIEkg ZG9u4oCZdCBlbmFibGUgQlRTIGFuZCBUUiBpbiB0aGUNCj4gPj4+Pj4gR1VFU1RfSUEzMl9ERUJV R0NUTCAoQlRSIHdvcmtzKS4gV2hlbiBJIGVuYWJsZSB0aGUgQlRTIChhbmQgVFIpDQo+ID4+Pj4+ IHRoZSBndWVzdCBjcmFzaGVzLiBJIHN1cHBvc2UgaGUgZ2V0cyBraWxsZWQgYnkgdGhlIGh5cGVy dmlzb3IgZm9yDQo+ID4+Pj4+IGFjY2Vzc2luZyBmb3JiaWRkZW4gbWVtb3J5Lg0KPiA+Pj4+Pg0K PiA+Pj4+IFBvc3NpYmx5IGJlY2F1c2UgRFMgYXJlYSBwb2ludCB0byBoeXBlcnZpc29yIG1lbW9y eS4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gSGF2aW5nIHNhaWQgYWxsIHRoaXMsIEkgYW0gbm90 IHN1cmUgaG93IHdlbGwgQlRTIHdvcmtzLiBZb3UgZGlkDQo+ID4+Pj4gbm90aWNlIHRoaXMgaW4g dGhlIGh5cGVydmlzb3IgbG9nOg0KPiA+Pj4+DQo+ID4+Pj4gKFhFTikNCj4gKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4+Pj4gKFhFTikg KiogV0FSTklORzogRW11bGF0aW9uIG9mIEJUUyBGZWF0dXJlIGlzIHN3aXRjaGVkIG9uICoqDQo+ ID4+Pj4gKFhFTikgKiogVXNpbmcgdGhpcyBwcm9jZXNzb3IgZmVhdHVyZSBpbiBhIHZpcnR1YWxp emVkICoqDQo+ID4+Pj4gKFhFTikgKiogZW52aXJvbm1lbnQgaXMgbm90IDEwMCUgc2FmZS4gKioN Cj4gPj4+PiAoWEVOKSAqKiBTZXR0aW5nIHRoZSBEUyBidWZmZXIgYWRkcmVzcyB3aXRoIHdyb25n IHZhbHVlcyAqKg0KPiA+Pj4+IChYRU4pICoqIG1heSBsZWFkIHRvIGh5cGVydmlzb3IgaGFuZ3Mg b3IgY3Jhc2hlcy4gKioNCj4gPj4+PiAoWEVOKSAqKiBJdCBpcyBOT1QgcmVjb21tZW5kZWQgZm9y IHByb2R1Y3Rpb24gdXNlISAqKg0KPiA+Pj4+IChYRU4pDQo+ICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiA+Pj4+DQo+ID4+PiBZZXMsIEkg c2F3IHRoYXQuIEl0IGRvZXNu4oCZdCBzdGF0ZSB0aGF0IEJUUyBpcyBub3Qgd29ya2luZyBhdCBh bGwsIGp1c3QgdGhhdCBpdCBpcw0KPiBub3QgdGhhdCBzYWZlIHRvIHVzZS4NCj4gPj4+IEFzIEkg dW5kZXJzdGFuZCBpdCBhcyBsb25nIGFzIEkgc2V0IHRoZSBEUyBidWZmZXIgYWRkcmVzcyBjb3Jy ZWN0bHkgSSBzaG91bGQNCj4gYmUgZmluZSwgcmlnaHQ/DQo+ID4+IFJpZ2h0LiBFeGNlcHQgdGhh dCBJIGFtIG5vdCBjb252aW5jZWQgeW91IGRpZCBzZXQgdGhpcyBidWZmZXINCj4gPj4gY29ycmVj dGx5LCB3aGljaCBpcyBwb3NzaWJseSB3aHkgeW91ciBoeXBlcnZpc29yIGNyYXNoZWQgKEkgYW0g bm90DQo+ID4+IHN1cmUgSSB1bmRlcnN0b29kIHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyB0aG91 Z2gpLg0KPiA+Pg0KPiA+PiAtYm9yaXMNCj4gPj4NCj4gPj4+IFNpbmNlIEkgZG9u4oCZdCB3YW50 IHRvIHVzZSBmb3IgcHJvZHVjdGlvbiB0aGF0IGlzIGZpbmUgd2l0aCBtZS4gQXQgbGVhc3QgZm9y DQo+IG5vdy4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gS2V2aW4NCj4gPj4+PiAtYm9yaXMNCj4gPj4+ Pg0KPiA+Pj4+DQo+ID4+Pj4+IFRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIHZteF9tc3Jfd3JpdGVf aW50ZXJjZXB0IHRha2VzIGENCj4gPj4+Pj4gdmNwdS1zdHJ1Y3QgYXMgYSBwYXJhbWV0ZXIgYW5k IHVzZXMgdGhpcyBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IHZjcHUuDQo+ID4+Pj4+DQo+ID4+Pj4+ IEluc3RlYWQgb2YNCj4gPj4+Pj4NCj4gPj4+Pj4gc3RhdGljaW50IHZteF9tc3Jfd3JpdGVfaW50 ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90DQo+ID4+Pj4gbXNyX2NvbnRlbnQpDQo+ ID4+Pj4+IHsNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50 Ow0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIGp1c3QgaGF2ZQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBzdGF0aWNp bnQgb3duX3ZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90 DQo+ID4+Pj4+IG1zcl9jb250ZW50LCBzdHJ1Y3QgdmNwdSAqdikNCj4gPj4+Pj4NCj4gPj4+Pj4g SSBnZXQgdGhpcyB2Y3B1IGJ5IGQtPnZjcHVbMF0gYXMgSSBoYXZlIGxpbWl0ZWQgbXkgZ3Vlc3Qg ZG9tYWluIHRvDQo+ID4+Pj4+IG9uZSB2Y3B1IGF0bS4NCj4gPj4+Pj4NCj4gPj4+Pj4gT2YgY291 cnNlIEkgYWxzbyB1c2Ugc2ltaWxhcmx5IG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGNhbGxlZA0K PiA+Pj4+PiBmdW5jdGlvbnModnBtdV9kb193cm1zcizigKYpLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJ wrRtIHByZXR0eSBzdXJlIHRoYXQgbXkgcHJvYmxlbSBpcyB3aXRoIGEgd3Jvbmcgc2NvcGUvdXNh Z2Ugb2YgdGhlDQo+ID4+Pj4+IHZjcHVzL21lbW9yeSwgYnV0IEkgaGF2ZSBubyBpZGVhIGhvdyB0 byBmaXggdGhpcy4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBjYW4gc2VlIGEgcG90ZW50aWFsIHByb2Js ZW0gd2l0aCB0aGUgbWVtb3J5IGFsbG9jYXRpb24gKGluIHRoZQ0KPiA+Pj4+PiBob3N0KSBpbnRv IHdoaWNoIHRoZSBjcHUgaW4gZ3Vlc3QtbW9kZSBpcyBzdXBwb3NlZCB0byB3cml0ZS4NCj4gPj4+ Pj4NCj4gPj4+Pj4gT3IgbWF5YmUgSSBnb3QgdGhlIHByaW5jaXBsZSBvZiBhIHZjcHUvdnBtdSBh bGwgd3JvbmcuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpbmNlIEkgY291bGRu4oCZdCBmaW5kIGFueSBw cm9qZWN0IHRoYXQgdXNlcyB0aGUgQlRTIGZvciB0aGUgZ3Vlc3QsDQo+ID4+Pj4+IEkgYW0gd29u ZGVyaW5nIGlmIGFueW9uZSBoYXMgZXZlciBkb25lIHRoaXMgYW5kIGlmIGl0IGlzIHBvc3NpYmxl IGF0IGFsbC4NCj4gPj4+Pj4NCj4gPj4+Pj4gQW55IGlucHV0IGlzIHdlbGNvbWUgYXMgSSBhbSBw cmV0dHkgbXVjaCBzdHVjayBhdG3igKYNCj4gPj4+Pj4NCj4gPj4+Pj4gQ2hlZXJzDQo+ID4+Pj4+ DQo+ID4+Pj4+IEtldmluDQo+ID4NCg0KX19fX19fX19fX19fDQpWaXJ1cyBjaGVja2VkIGJ5IEcg RGF0YSBNYWlsU2VjdXJpdHkNClZlcnNpb246IEFWQSAyNS40MzUgZGF0ZWQgMjYuMDIuMjAxNQ0K VmlydXMgbmV3czogd3d3LmFudGl2aXJ1c2xhYi5jb20KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: Branch Trace Storage for guests andVPMUinitialization Date: Thu, 26 Feb 2015 13:38:29 -0500 Message-ID: <54EF6825.2030902@oracle.com> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> <5820128.XDeVCQ4qG6@amur> <54EF4B4E.4050206@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA47F86@e1.gdata.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5C9C3B9BEF1B354596EAE3D6800D876BA47F86@e1.gdata.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Kevin.Mayer@gdata.de, dietmar.hahn@ts.fujitsu.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gMDIvMjYvMjAxNSAxMjo1NyBQTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6Cj4KPgo+ PiAtLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tCj4+IFZvbjogQm9yaXMgT3N0cm92 c2t5IFttYWlsdG86Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb21dCj4+IEdlc2VuZGV0OiBEb25u ZXJzdGFnLCAyNi4gRmVicnVhciAyMDE1IDE3OjM1Cj4+IEFuOiBEaWV0bWFyIEhhaG47IHhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCj4+IENjOiBNYXllciwgS2V2aW4KPj4gQmV0cmVmZjogUmU6IFtY ZW4tZGV2ZWxdIEJyYW5jaCBUcmFjZSBTdG9yYWdlIGZvciBndWVzdHMgYW5kCj4+IFZQTVVpbml0 aWFsaXphdGlvbgo+Pgo+PiBPbiAwMi8yNi8yMDE1IDAzOjU2IEFNLCBEaWV0bWFyIEhhaG4gd3Jv dGU6Cj4+PiBBbSBNaXR0d29jaCAyNSBGZWJydWFyIDIwMTUsIDExOjMxOjMxIHNjaHJpZWIgQm9y aXMgT3N0cm92c2t5Ogo+Pj4+IE9uIDAyLzI1LzIwMTUgMTA6MTIgQU0sIEtldmluLk1heWVyQGdk YXRhLmRlIHdyb3RlOgo+Pj4+Pj4gLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQo+ Pj4+Pj4gVm9uOiBCb3JpcyBPc3Ryb3Zza3kgW21haWx0bzpib3Jpcy5vc3Ryb3Zza3lAb3JhY2xl LmNvbV0KPj4+Pj4+IEdlc2VuZGV0OiBEaWVuc3RhZywgMjQuIEZlYnJ1YXIgMjAxNSAxODoxMwo+ Pj4+Pj4gQW46IE1heWVyLCBLZXZpbjsgeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPj4+Pj4+IEJl dHJlZmY6IFJlOiBbWGVuLWRldmVsXSBCcmFuY2ggVHJhY2UgU3RvcmFnZSBmb3IgZ3Vlc3RzIGFu ZCBWUE1VCj4+Pj4+PiBpbml0aWFsaXphdGlvbgo+Pj4+Pj4KPj4+Pj4+IE9uIDAyLzI0LzIwMTUg MTA6MjcgQU0sIEtldmluLk1heWVyQGdkYXRhLmRlIHdyb3RlOgo+Pj4+Pj4+IEhpIGd1eXMKPj4+ Pj4+Pgo+Pj4+Pj4+IElgbSB0cnlpbmcgdG8gc2V0IHVwIHRoZSBCVFMgc28gdGhhdCBJIGNhbiBs b2cgdGhlIGJyYW5jaGVzIHRha2VuCj4+Pj4+Pj4gaW4gdGhlIGd1ZXN0IHVzaW5nIFhlbiA0LjQu MSB3aXRoIGEgV2luWFAgU1AzIGd1ZXN0IG9uIGEgQ29yZSBpNwo+Pj4+Pj4+IFNhbmR5IEJyaWRn ZS4KPj4+Pj4+Pgo+Pj4+Pj4+IEkgYWRkZWQgdGhlIHZwbXU9YnRzIGJvb3QgcGFyYW1ldGVyIHRv IG15IGdydWIyIGNvbmZpZ3VyYXRpb24gYW5kCj4+Pj4+Pj4gZXh0ZW5kZWQgdGhlIGxpYnhsLGxp YnhjLGRvbWN0bCzigKYgd2l0aCBhbiBvd24gY29tbWFuZCBzbyB0aGF0IEkKPj4+Pj4+PiBjYW4g dHJpZ2dlciB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgQlRTIHdoZW5ldmVyIEkgd2FudC4KPj4+Pj4+ Pgo+Pj4+Pj4gSSBhbSBub3Qgc3VyZSB3aHkgeW91IGFyZSBkb2luZyBhbGwgdGhlc2UgY2hhbmdl cyB0byBYZW4gY29kZS4gQlRTCj4+Pj4+PiBpcyBzdXBwb3NlZCB0byBiZSBtYW5hZ2VkIGZyb20g dGhlIGd1ZXN0LiBGb3IgZXhhbXBsZSwgYSBGZWRvcmEKPj4gSFZNCj4+Pj4+PiBndWVzdCB3aWxs IHByb2R1Y2UgdGhpczoKPj4+Pj4+Cj4+Pj4+PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243LTJuZC1C LWVhc3QtMTAtMTUyLTU1LTE0MCB+XSMgcGVyZiByZWNvcmQgLWUKPj4+Pj4+IGJyYW5jaGVzOnUg LWMgMSAtZCBzbGVlcCAxIFsgcGVyZiByZWNvcmQ6IFdva2VuIHVwIDM4MzggdGltZXMgdG8KPj4+ Pj4+IHdyaXRlIGRhdGEgXSBbIHBlcmYgcmVjb3JkOiBDYXB0dXJlZCBhbmQgd3JvdGUgMC43MDQg TUIgcGVyZi5kYXRhCj4+Pj4+PiAofjMwNzU2IHNhbXBsZXMpIF0KPj4+Pj4+IFtyb290QGRoY3At YnVybGluZ3RvbjctMm5kLUItZWFzdC0xMC0xNTItNTUtMTQwIH5dIyBwZXJmIHNjcmlwdCAtZgo+ Pj4+Pj4gaXAsYWRkcixzeW0sZHNvLHN5bW9mZiAtLXNob3cta2VybmVsLXBhdGgKPj4+Pj4+ICAg ICAgZmZmZmZmZmY4MTY3YzM0NyBuYXRpdmVfaXJxX3JldHVybl9pcmV0KzB4MCAoL3Byb2Mva2Nv cmUpID0+Cj4+Pj4+PiAzMjhjMDAxNTkwIFt1bmtub3duXSAoL3Byb2Mva2NvcmUpCj4+Pj4+PiAg ICAgIGZmZmZmZmZmODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tj b3JlKSA9Pgo+Pj4+Pj4gMzI4YzAwMTU5MCBbdW5rbm93bl0gKFt1bmtub3duXSkKPj4+Pj4+ICAg ICAgICAgICAgMzI4YzAwMTU5MyBbdW5rbm93bl0gKFt1bmtub3duXSkgPT4gICAgICAgMzI4YzAw NGI3MCBbdW5rbm93bl0KPj4+Pj4+IChbdW5rbm93bl0pCj4+Pj4+PiAuLi4KPj4+Pj4+Cj4+Pj4+ IEkgd2FudCB0byBiZSBhYmxlIHRvIGxvZyB0aGUgdGFrZW4gYnJhbmNoZXMgKG9mIHRoZSBndWVz dCkgd2l0aG91dCB0aGUKPj4gbmVlZCB0byBtb2RpZnkgdGhlIGd1ZXN0IGF0IGFsbC4KPj4+Pj4g VGhpcyBtZWFucyBJIGhhdmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0aGUgaHlwZXJ2aXNvciwg b3IgYW0gSSB3cm9uZz8KPj4+PiBJbiB0aGF0IGNhc2UsIHllcy4gQnV0IHRoZW4geW91IGhhdmUg dG8gbWFrZSBzdXJlIHRoYXQgYXQgbGVhc3QKPj4+PiAgICAgKiB5b3UgZG9uJ3QgbG9hZCBndWVz dCdzIFZQTVUgKG9yLCBhdCBsZWFzdCwgQlRTLXJlbGF0ZWQKPj4+PiByZWdpc3RlcnMpIG9uIGNv bnRleHQgc3dpdGNoCj4+PiBCdXQgeW91IG5lZWQgdG8gbW9kaWZ5IFBNVSByZWdpc3RlcnMgd2hl biBzd2l0Y2hpbmcgdG8vZnJvbSB0aGUgZ3Vlc3QKPj4+IGNvbnRleHQgdG8gZ2V0IFBNVSBydW5u aW5nLgo+Pgo+Pgo+Pgo+PiBJIHdhcyB0aGlua2luZyB0aGF0IGFsbCBCVFMgc3R1ZmYgY2FuIGJl IGNvbnRyb2xsZWQgZnJvbSBkb20wIGFuZCBzbyB3ZSBjYW4KPj4gdXNlIGRvbTAncyB2ZXJzaW9u IG9mIHRoZXNlIHJlZ2lzdGVycy4gSSBkaWRuJ3QgcmVhbGl6ZSB0aGF0IERTX0FSRUEgd291bGQK Pj4gaGF2ZSB0byBiZSBhY2Nlc3NlZCBpbiBndWVzdCdzIGFkZHJlc3Mgc3BhY2UgKGFuZCB0aGF0 IERFQlVHQ1RMIGlzIGxvYWRlZAo+PiBmcm9tIFZNQ1MpLgo+Pgo+PiBXaGljaCBpcyB3aGF0IEkg dGhpbmsgSSBzYWlkIGluIHJlc3BvbnNlIHRvIHRoaXMgbWVzc2FnZSAod2hpY2ggZGlkbid0IHNo b3cgdXAKPj4gb24gdGhlIGxpc3QgYmVjYXVzZSBLZXZpbiBhY2NpZGVudGFsbHkgZHJvcHBlZCB4 ZW4tZGV2ZWwpLgo+Pgo+PiAtYm9yaXMKPgo+IFRlcnJpYmx5IHNvcnJ5IGFib3V0IHRoYXQuLi4K Pgo+IFNvIHRoZSBWUE1VIGRvZXNu4oCZdCBnZXQgbG9hZGVkIHdoZW4gdGhlcmUgaXMgYSBWTUVO VEVSPwoKCk5vdCBleGFjdGx5LiBGb3IgQlRTLCBERUJVR0NUTCByZWdpc3Rlciwgd2hpY2ggbGl2 ZXMgaW4gVk1DUywgZG9lcyBnZXQgCmxvYWRlZC4gQnV0IG5vdCBEU19BUkVBIC0tLSBpdCBnZXRz IGxvYWRlZCBieSBTVyBkdXJpbmcgCmNvbnRleHRfc3dpdGNoKCktPnZwbXVfbG9hZCgpLgoKKEFz IGZvciBnZW5lcmFsIFZQTVUgcmVnaXN0ZXJzIHN1Y2ggYXMgY291bnRlcnMgLS0tIHRoZXkgYXJl IGFsc28gbG9hZGVkIApkdXJpbmcgY29udGV4dF9zd2l0Y2goKS4gQnV0IEkgZG9uJ3QgdGhpbmsg eW91IGNhcmUgYWJvdXQgdGhvc2UuIEZyb20gCndoYXQgbGl0dGxlIEkga25vdyBhYm91dCBCVFMs IERFQlVHQ1RMIGFuZCBEU19BUkVBIGFyZSB0aGUgb25seSB0d28gCnJlZ2lzdGVycyB5b3UgYXJl IGludGVyZXN0ZWQgaW4pCgo+IEkgdGhvdWdodCBJIGNvdWxkIHNldCB0aGUgZG9tVS0+dmNwdS0+ dnBtdSB0byBlbmFibGUgQlRTIHdoaWxlIGluIGRvbTAgKHdpdGggbW9kaWZpZWQgdmVyc2lvbnMg b2YgbXNyX3dyaXRlX2ludGVyY2VwdCwgdnBtdV9kb193cm1zciBhbmQgY29yZTJfdnBtdV9kb193 cm1zciBvZiBjb3Vyc2Ugc2luY2UgdGhlIGJ1aWxkIGluIG9uZXMgdXNlIHRoZSBjdXJyZW50LXZj cHUgd2hpY2ggd291bGQgYmUgdGhlIGRvbTAtdmNwdSkKPiBhbmQgYXMgc29vbiBhcyB0aGVyZSBp cyBhIGNvbnRleHQgc3dpdGNoIHRvIGRvbVUgdGhlIHZwbXUgZ2V0cyBsb2FkZWQgYW5kIHRoZSBn dWVzdCBzdGFydHMgbG9nZ2luZy4KCkFuZCBpdCBzaG91bGQgd29yaywgcHJvdmlkZWQgdGhhdCBE U19BUkVBIGlzIHNldCB1cCBjb3JyZWN0bHkuCgo+IElmIHRoZSBkZXNjcmliZWQgYmVoYXZpb3Ig aXMgY29ycmVjdCB0aGUgb25seSBwcm9ibGVtIEkgY2FuIHNlZSBpcyB3aXRoIGFsbG9jYXRpbmcg bWVtb3J5IGluIGRvbTAgaW4gYSB3YXkgdGhhdCB0aGUgZ3Vlc3QgY2FuIGFjY2VzcyBpdC4KClRo aXMgc291bmRzIHJpZ2h0LiBBbGwgeW91IGhhdmUgdG8gZG8gbm93IGlzIGltcGxlbWVudGF0aW9u IGRldGFpbHMgOy0pCgotYm9yaXMKCgo+IEJ1dCBpZiBJIGdvdCBpdCB3cm9uZyBwbGVhc2UgZXhw bGFpbiBob3cgdGhlIHZwbXUgcmVhbGx5IHdvcmtzLgo+Cj4gQ2hlZXJzCj4KPiBLZXZpbgo+Cj4K Pj4KPj4KPj4+IEkgZGlkbid0IHRoaW5rIG9mIHVzaW5nIHRoZSBWUE1VIHN0dWZmIHdpdGggbW9k aWZ5aW5nIHRoZSBjb250ZXh0IGZyb20KPj4+IG91dHNpZGUgdGhlIGd1ZXN0Lgo+Pj4KPj4+PiAg ICAgKiBZb3UgZG9uJ3Qgc2VuZCB0aGUgaW50ZXJydXB0IHRvIHRoZSBndWVzdCAobWVhbmluZyB0 aGF0IHlvdSB3aWxsCj4+Pj4gbmVlZCB0byBzb21laG93IGluZm9ybSBkb20wIG9mIHRoZSBCVFMg aW50ZXJydXB0KQo+Pj4+Cj4+Pj4gYW5kIHByb2JhYmx5IG1vcmUuCj4+Pj4KPj4+PiBFc3NlbnRp YWxseSwgeW91IHdhbnQgZG9tMCB0byBwcm9maWxlIHRoZSBndWVzdC4gSSBoYXZlIGJlZW4gd29y a2luZwo+Pj4+IG9uIHBhdGNoZXMgdGhhdCB3b3VsZCBhbGxvdyB0aGF0IGJ1dCB0aGV5IGFyZSBz dGlsbCB1bmRlciByZXZpZXcuCj4+Pj4KPj4+Pgo+Pj4+Pj4+IEluIHRoaXMgY29tbWFuZCBJIGRv IHRoZSBmb2xsb3dpbmc6Cj4+Pj4+Pj4KPj4+Pj4+PiBJIHNldCB1cCB0aGUgbWVtb3J5IHJlZ2lv biBmb3IgdGhlIEJUUyBCdWZmZXIgYW5kIHRoZSBEUyBCdWZmZXIKPj4+Pj4+PiBNYW5hZ2VtZW50 IEFyZWEgdXNpbmcgeHphbGxvY19ieXRlcwo+Pj4+Pj4+Cj4+Pj4+PiBJIGRvbid0IHRoaW5rIHlv dSBzaG91bGQgYmUgYWxsb2NhdGluZyBCVFMgYnVmZmVycyBpbiB0aGUKPj4+Pj4+IGh5cGVydmlz b3IsIHRoZXkgYXJlIGluIGd1ZXN0J3MgbWVtb3J5Lgo+Pj4+PiBJIGFncmVlLiBBcyBJIHNhaWQg SSB0aGluayB0aGlzIGlzIHdoZXJlIG15IG1haW4gcHJvYmxlbSBpcyBhdCB0aGUgbW9tZW50Lgo+ Pj4+PiBJcyB0aGVyZSBhbnkgd2F5IEkgY2FuIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUgaHlwZXJ2 aXNvciBpbiBhIHdheSB0aGUKPj4gZ3Vlc3QgY2FuIGFjY2VzcyBpdD8KPj4+PiBJIGFtIG5vdCBz dXJlIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCBzaW5jZSB5b3Ugc2VlbSB0byAqbm90KiB3YW50IHRo ZQo+Pj4+IGd1ZXN0IHRvIHByb2Nlc3MgdGhlIHNhbXBsZXMsIHJpZ2h0Pwo+Pj4+Cj4+Pj4gQnV0 IHllcywgeW91IGNhbi4gRS5nLiBzb21ldGhpbmcgbGlrZSB3aGF0IG1hcF92Y3B1X2luZm8oKSBk b2VzLiAoSQo+Pj4+IGhhdmUgbm8gaWRlYSBob3cgeW91J2QgZG8gdGhpcyBmcm9tIFdpbmRvd3Mu KQo+Pj4gVGhlIERTIGJ1ZmZlciBoYXMgdG8gYmUgbWFwcGVkIHdpdGhpbiB0aGUgZ3Vlc3RzIGFk ZHJlc3Mgc3BhY2Ugc28gdGhlCj4+PiBDUFUgcnVubmluZyBpbiBndWVzdCBjb250ZXh0IGNhbiBh Y2Nlc3MgdGhpcyBhcmVhLiBPdGhlcndpc2UgeW91IGdldAo+Pj4gdGhpcyB0cmlwbGUgZmF1bHQu Cj4+PiBTbyBJIHdvdWxkIHRoaW5rIHlvdSBuZWVkIGEgbWl4dHVyZSBvZiB3cml0aW5nIHNvbWUg c3R1ZmYgaW4gV2luZG93cwo+Pj4gYW5kIHBhdGNoaW5nIHRoZSBoeXBlcnZpc29yLgo+Pj4KPj4+ IERpZXRtYXIuCj4+Pgo+Pj4+Cj4+Pj4+IE9mIGNvdXJzZSB0aGUgZ3Vlc3QgbXVzdCBub3QgYmUg YWJsZSB0byB1c2UgdGhpcyBtZW1vcnkgaW4gaXRzIG5vcm1hbAo+PiBvcGVyYXRpb25zIGJ1dCBq dXN0IGZvciBCVFMuCj4+Pj4+IElzIHRoaXMgZXZlbiBwb3NzaWJsZT8gSSBhbSByYXRoZXIgY29u ZnVzZWQgYXQgdGhlIG1vbWVudC4gOi1ECj4+Pj4+Cj4+Pj4+Pj4gVGhlbiBJIHdyaXRlIHRoZSBw b2ludGVyIHRvIHRoZSBCVFMgQnVmZmVyIGludG8gdGhlIERTIEJ1ZmZlcgo+Pj4+Pj4+IE1hbmFn ZW1lbnQgQXJlYSBhdCArMHgwIGFuZCArMHg4IChCVFMgQnVmZmVyIEJhc2UgYW5kIEJUUyBJbmRl eCkKPj4+Pj4+Pgo+Pj4+Pj4+IFdoZW4gSSB1c2Ugdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdG8g c3RvcmUgdGhlIHZhbHVlIGluCj4+Pj4+Pj4gTVNSX0lBMzJfRFNfQVJFQSB0aGUgaG9zdCByZWJv b3RzIChteSBpZGVhIGlzIGhlIHRyaWVzIHRvIGFjY2VzcyBhCj4+Pj4+Pj4gdnBtdS1zdHJ1Y3Qg dGhhdCBpc27CtHQgdGhlcmUgaW4gdGhlIGN1cnJlbnQgdmNwdSBhbmQgcGFuaWNzKS4KPj4+Pgo+ Pj4+IFdobyBpcyB0cnlpbmcgdG8gd3JpdGUgdG8gTVNSX0lBMzJfRFNfQVJFQT8gVGhlIGd1ZXN0 IG9yIGRvbTA/IEkKPj4+PiB0aG91Z2h0IHlvdSBzYWlkIHRoYXQgeW91IHdhbnQgZG9tMCB0byBk byBzYW1wbGluZy4gT3IgYXJlIHlvdSB0cnlpbmcKPj4+PiB0byBzZXR1cCBEUyBhcmVhIGZyb20g eW91ciBndWVzdCBhbmQgY29udHJvbCBpdCBmcm9tIGRvbTA/IEkgYW0KPj4gc29tZXdoYXQgY29u ZnVzZWQuCj4+Pj4KPj4+Pj4+IENhbiB5b3UgcG9zdCBoeXBlcnZpc29yIGxvZz8gKGhhcmQgdG8g c2F5IGhvdyBoZWxwZnVsIGl0IHdpbGwgYmUKPj4+Pj4+IHdpdGhvdXQgc2VlaW5nIHlvdXIgY29k ZSBjaGFuZ2VzIHRob3VnaCkKPj4+Pj4+Cj4+Pj4+IFJpZ2h0IGFmdGVyIGVuYWJsaW5nIHRoZSBC VFMgSSBnZXQgYSB0cmlwbGUgZmF1bHQuCj4+Pj4+IGh2bS5jOjEzNTc6ZDIgVHJpcGxlIGZhdWx0 IG9uIFZDUFUwIC0gaW52b2tpbmcgSFZNIHNodXRkb3duIGFjdGlvbiAxLgo+Pj4+Cj4+Pj4gVGhh dCdzIG5vdCBob3N0IHJlYm9vdCwgdGhpcyBpcyB5b3VyIGd1ZXN0IGR5aW5nLgo+Pj4+Cj4+Pj4K Pj4+Pj4+PiBXaGVuIEkgdXNlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB2bXhfbXNyX3dyaXRlX2lu dGVyY2VwdCBJIGRvbuKAmXQKPj4+Pj4+PiBnZXQgYW55IGNyYXNoZXMgYXMgbG9uZyBhcyBJIGRv buKAmXQgZW5hYmxlIEJUUyBhbmQgVFIgaW4gdGhlCj4+Pj4+Pj4gR1VFU1RfSUEzMl9ERUJVR0NU TCAoQlRSIHdvcmtzKS4gV2hlbiBJIGVuYWJsZSB0aGUgQlRTIChhbmQgVFIpCj4+Pj4+Pj4gdGhl IGd1ZXN0IGNyYXNoZXMuIEkgc3VwcG9zZSBoZSBnZXRzIGtpbGxlZCBieSB0aGUgaHlwZXJ2aXNv ciBmb3IKPj4+Pj4+PiBhY2Nlc3NpbmcgZm9yYmlkZGVuIG1lbW9yeS4KPj4+Pj4+Pgo+Pj4+Pj4g UG9zc2libHkgYmVjYXVzZSBEUyBhcmVhIHBvaW50IHRvIGh5cGVydmlzb3IgbWVtb3J5Lgo+Pj4+ Pj4KPj4+Pj4+Cj4+Pj4+PiBIYXZpbmcgc2FpZCBhbGwgdGhpcywgSSBhbSBub3Qgc3VyZSBob3cg d2VsbCBCVFMgd29ya3MuIFlvdSBkaWQKPj4+Pj4+IG5vdGljZSB0aGlzIGluIHRoZSBoeXBlcnZp c29yIGxvZzoKPj4+Pj4+Cj4+Pj4+PiAoWEVOKQo+PiAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4+Pj4+IChYRU4pICoqIFdBUk5JTkc6IEVt dWxhdGlvbiBvZiBCVFMgRmVhdHVyZSBpcyBzd2l0Y2hlZCBvbiAqKgo+Pj4+Pj4gKFhFTikgKiog VXNpbmcgdGhpcyBwcm9jZXNzb3IgZmVhdHVyZSBpbiBhIHZpcnR1YWxpemVkICoqCj4+Pj4+PiAo WEVOKSAqKiBlbnZpcm9ubWVudCBpcyBub3QgMTAwJSBzYWZlLiAqKgo+Pj4+Pj4gKFhFTikgKiog U2V0dGluZyB0aGUgRFMgYnVmZmVyIGFkZHJlc3Mgd2l0aCB3cm9uZyB2YWx1ZXMgKioKPj4+Pj4+ IChYRU4pICoqIG1heSBsZWFkIHRvIGh5cGVydmlzb3IgaGFuZ3Mgb3IgY3Jhc2hlcy4gKioKPj4+ Pj4+IChYRU4pICoqIEl0IGlzIE5PVCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbiB1c2UhICoq Cj4+Pj4+PiAoWEVOKQo+PiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPj4+Pj4+Cj4+Pj4+IFllcywgSSBzYXcgdGhhdC4gSXQgZG9lc27igJl0 IHN0YXRlIHRoYXQgQlRTIGlzIG5vdCB3b3JraW5nIGF0IGFsbCwganVzdCB0aGF0IGl0IGlzCj4+ IG5vdCB0aGF0IHNhZmUgdG8gdXNlLgo+Pj4+PiBBcyBJIHVuZGVyc3RhbmQgaXQgYXMgbG9uZyBh cyBJIHNldCB0aGUgRFMgYnVmZmVyIGFkZHJlc3MgY29ycmVjdGx5IEkgc2hvdWxkCj4+IGJlIGZp bmUsIHJpZ2h0Pwo+Pj4+IFJpZ2h0LiBFeGNlcHQgdGhhdCBJIGFtIG5vdCBjb252aW5jZWQgeW91 IGRpZCBzZXQgdGhpcyBidWZmZXIKPj4+PiBjb3JyZWN0bHksIHdoaWNoIGlzIHBvc3NpYmx5IHdo eSB5b3VyIGh5cGVydmlzb3IgY3Jhc2hlZCAoSSBhbSBub3QKPj4+PiBzdXJlIEkgdW5kZXJzdG9v ZCB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgdGhvdWdoKS4KPj4+Pgo+Pj4+IC1ib3Jpcwo+Pj4+ Cj4+Pj4+IFNpbmNlIEkgZG9u4oCZdCB3YW50IHRvIHVzZSBmb3IgcHJvZHVjdGlvbiB0aGF0IGlz IGZpbmUgd2l0aCBtZS4gQXQgbGVhc3QgZm9yCj4+IG5vdy4KPj4+Pj4KPj4+Pj4KPj4+Pj4gS2V2 aW4KPj4+Pj4+IC1ib3Jpcwo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gVGhlIG1vZGlmaWVkIHZlcnNp b24gb2Ygdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdGFrZXMgYQo+Pj4+Pj4+IHZjcHUtc3RydWN0 IGFzIGEgcGFyYW1ldGVyIGFuZCB1c2VzIHRoaXMgaW5zdGVhZCBvZiB0aGUgY3VycmVudCB2Y3B1 Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gSW5zdGVhZCBvZgo+Pj4+Pj4+Cj4+Pj4+Pj4gc3RhdGljaW50IHZt eF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90Cj4+Pj4+PiBt c3JfY29udGVudCkKPj4+Pj4+PiB7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgc3RydWN0IHZjcHUg KnYgPSBjdXJyZW50Owo+Pj4+Pj4+Cj4+Pj4+Pj4gSSBqdXN0IGhhdmUKPj4+Pj4+Pgo+Pj4+Pj4+ IHN0YXRpY2ludCBvd25fdm14X21zcl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwg dWludDY0X3QKPj4+Pj4+PiBtc3JfY29udGVudCwgc3RydWN0IHZjcHUgKnYpCj4+Pj4+Pj4KPj4+ Pj4+PiBJIGdldCB0aGlzIHZjcHUgYnkgZC0+dmNwdVswXSBhcyBJIGhhdmUgbGltaXRlZCBteSBn dWVzdCBkb21haW4gdG8KPj4+Pj4+PiBvbmUgdmNwdSBhdG0uCj4+Pj4+Pj4KPj4+Pj4+PiBPZiBj b3Vyc2UgSSBhbHNvIHVzZSBzaW1pbGFybHkgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgY2FsbGVk Cj4+Pj4+Pj4gZnVuY3Rpb25zKHZwbXVfZG9fd3Jtc3Is4oCmKS4KPj4+Pj4+Pgo+Pj4+Pj4+IEnC tG0gcHJldHR5IHN1cmUgdGhhdCBteSBwcm9ibGVtIGlzIHdpdGggYSB3cm9uZyBzY29wZS91c2Fn ZSBvZiB0aGUKPj4+Pj4+PiB2Y3B1cy9tZW1vcnksIGJ1dCBJIGhhdmUgbm8gaWRlYSBob3cgdG8g Zml4IHRoaXMuCj4+Pj4+Pj4KPj4+Pj4+PiBJIGNhbiBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSB3 aXRoIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiAoaW4gdGhlCj4+Pj4+Pj4gaG9zdCkgaW50byB3aGlj aCB0aGUgY3B1IGluIGd1ZXN0LW1vZGUgaXMgc3VwcG9zZWQgdG8gd3JpdGUuCj4+Pj4+Pj4KPj4+ Pj4+PiBPciBtYXliZSBJIGdvdCB0aGUgcHJpbmNpcGxlIG9mIGEgdmNwdS92cG11IGFsbCB3cm9u Zy4KPj4+Pj4+Pgo+Pj4+Pj4+IFNpbmNlIEkgY291bGRu4oCZdCBmaW5kIGFueSBwcm9qZWN0IHRo YXQgdXNlcyB0aGUgQlRTIGZvciB0aGUgZ3Vlc3QsCj4+Pj4+Pj4gSSBhbSB3b25kZXJpbmcgaWYg YW55b25lIGhhcyBldmVyIGRvbmUgdGhpcyBhbmQgaWYgaXQgaXMgcG9zc2libGUgYXQgYWxsLgo+ Pj4+Pj4+Cj4+Pj4+Pj4gQW55IGlucHV0IGlzIHdlbGNvbWUgYXMgSSBhbSBwcmV0dHkgbXVjaCBz dHVjayBhdG3igKYKPj4+Pj4+Pgo+Pj4+Pj4+IENoZWVycwo+Pj4+Pj4+Cj4+Pj4+Pj4gS2V2aW4K Pj4+Cj4KPiBfX19fX19fX19fX18KPiBWaXJ1cyBjaGVja2VkIGJ5IEcgRGF0YSBNYWlsU2VjdXJp dHkKPiBWZXJzaW9uOiBBVkEgMjUuNDM1IGRhdGVkIDI2LjAyLjIwMTUKPiBWaXJ1cyBuZXdzOiB3 d3cuYW50aXZpcnVzbGFiLmNvbQo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK