From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ED326C3524D for ; Mon, 3 Feb 2020 19:49:27 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B21222086A for ; Mon, 3 Feb 2020 19:49:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="OUkaZD8z" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B21222086A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iyhiP-0001Uo-SJ; Mon, 03 Feb 2020 19:49:01 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iyhiO-0001Uj-B9 for xen-devel@lists.xenproject.org; Mon, 03 Feb 2020 19:49:00 +0000 X-Inumbo-ID: 376b8096-46be-11ea-b211-bc764e2007e4 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 376b8096-46be-11ea-b211-bc764e2007e4; Mon, 03 Feb 2020 19:48:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1580759337; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=7Ymlg6hAT/L6TprFLAPLHeDC1d0zeetmWot0/jeB5+A=; b=OUkaZD8zJpCwY0QYi35IGhygsk8W5KdB852ClzYI5RS/SpIUckQe4j/A 2g8C7ViK9OcFt2zvgnOeYWmWZTPM1cJ8/lZ5wWY37iYAbMKuFehzyIyWK C8MIHsY3kaWLAihcgvk0+eHJc73OSe1gx1HKvA36fyrvFSaMRAMGE+Ber k=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: wNggGSVAacpR+iX8hwEJ2dWBZT2TbuJfOgI0Y6Qv0h7f17fITorjHcZigv6YveFcmlnMsmHLKe 5Ol1bxwJl/J39n3abjlwtkjSaD0K+eeYI/R/jFHc6gBnw3l5+E58Xz2jZw8DwcmKsC12PXSed1 tXTV3WESP4FEx3xfvi7fnVKdz9e1mCWy4eZpntJx9ucEjjpB9yS13jjSB0LO+5qY/4jHz8noep ESDQeYO4Ttz9NThFDOVixcvY37UmKPAKwU04QTL1RFYW1YCTWtIVXOJF5vxpqE91imWDnBg4xr nrg= X-SBRS: 2.7 X-MesageID: 12241435 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.70,398,1574139600"; d="scan'208";a="12241435" To: Jan Beulich , "xen-devel@lists.xenproject.org" References: From: Andrew Cooper Openpgp: preference=signencrypt Autocrypt: addr=andrew.cooper3@citrix.com; prefer-encrypt=mutual; keydata= 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 6+ahAA== Message-ID: <8a2beec3-1be3-e1f8-89bc-dde28a16eea0@citrix.com> Date: Mon, 3 Feb 2020 19:48:52 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB X-ClientProxiedBy: AMSPEX02CAS01.citrite.net (10.69.22.112) To AMSPEX02CL01.citrite.net (10.69.22.125) Subject: Re: [Xen-devel] [PATCH v4 4/7] x86/HVM: implement memory read caching for insn emulation X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Wei Liu , Paul Durrant , George Dunlap , Jun Nakajima , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMzEvMDEvMjAyMCAxNjo0NCwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gRW11bGF0aW9uIHJlcXVp cmluZyBkZXZpY2UgbW9kZWwgYXNzaXN0YW5jZSB1c2VzIGEgZm9ybSBvZiBpbnN0cnVjdGlvbgo+ IHJlLWV4ZWN1dGlvbiwgYXNzdW1pbmcgdGhhdCB0aGUgc2Vjb25kIChhbmQgYW55IGZ1cnRoZXIp IHBhc3MgdGFrZXMKPiBleGFjdGx5IHRoZSBzYW1lIHBhdGguIFRoaXMgaXMgYSB2YWxpZCBhc3N1 bXB0aW9uIGFzIGZhciBhcyB1c2Ugb2YgQ1BVCj4gcmVnaXN0ZXJzIGdvZXMgKGFzIHRob3NlIGNh bid0IGNoYW5nZSB3aXRob3V0IGFueSBvdGhlciBpbnN0cnVjdGlvbgo+IGV4ZWN1dGluZyBpbiBi ZXR3ZWVuKSwgYnV0IGlzIHdyb25nIGZvciBtZW1vcnkgYWNjZXNzZXMuCgpUaGlzIHN0YXRlbWVu dCBpc24ndCBxdWl0ZSBhY2N1cmF0ZS7CoCBWYXJpb3VzIGh5cGVyY2FsbHMgYW5kIElQSXMgY2Fu CnBsYXkgd2l0aCBHUFIgc3RhdGUgaW4gdGhlIG1pZGRsZSBvZiBlbXVsYXRpb24uCgpXaGF0IG1h dHRlcnMgaXMgdGhhdCB0aGUgR1BSIHZhbHVlcyBhcmVuJ3QgZXhwZWN0ZWQgdG8gY2hhbmdlLCBh bmQgYQpndWVzdCBnZXRzIHRvIGtlZXAgYWxsIHRoZSBwaWVjZXMgaWYgdGhleSB0cnkgdG8gcGxh eSBnYW1lcyBpbiB0aGlzIGFyZWEuCgo+ICBJbiBwYXJ0aWN1bGFyCj4gaXQgaGFzIGJlZW4gb2Jz ZXJ2ZWQgdGhhdCBXaW5kb3dzIG1pZ2h0IHBhZ2Ugb3V0IGJ1ZmZlcnMgdW5kZXJuZWF0aCBhbgo+ IGluc3RydWN0aW9uIGN1cnJlbnRseSB1bmRlciBlbXVsYXRpb24gKGhpdHRpbmcgYmV0d2VlbiB0 d28gcGFzc2VzKS4gSWYKPiB0aGUgZmlyc3QgcGFzcyByZWFkIGEgbWVtb3J5IG9wZXJhbmQgc3Vj Y2Vzc2Z1bGx5LCBhbnkgc3Vic2VxdWVudCBwYXNzCj4gbmVlZHMgdG8gZ2V0IHRvIHNlZSB0aGUg ZXhhY3Qgc2FtZSB2YWx1ZS4KPgo+IEludHJvZHVjZSBhIGNhY2hlIHRvIG1ha2Ugc3VyZSBhYm92 ZSBkZXNjcmliZWQgYXNzdW1wdGlvbiBob2xkcy4gVGhpcwo+IGlzIGEgdmVyeSBzaW1wbGlzdGlj IGltcGxlbWVudGF0aW9uIGZvciBub3c6IE9ubHkgZXhhY3QgbWF0Y2hlcyBhcmUKPiBzYXRpc2Zp ZWQgKG5vIG92ZXJsYXBzIG9yIHBhcnRpYWwgcmVhZHMgb3IgYW55dGhpbmcpOyB0aGlzIGlzIHN1 ZmZpY2llbnQKPiBmb3IgdGhlIGltbWVkaWF0ZSBwdXJwb3NlIG9mIG1ha2luZyByZS1leGVjdXRp b24gYW4gZXhhY3QgcmVwbGF5LiBUaGUKPiBjYWNoZSBhbHNvIHdvbid0IGJlIHVzZWQganVzdCB5 ZXQgZm9yIGd1ZXN0IHBhZ2Ugd2Fsa3M7IHRoYXQnbGwgYmUgdGhlCj4gc3ViamVjdCBvZiBhIHN1 YnNlcXVlbnQgY2hhbmdlLgo+Cj4gV2l0aCB0aGUgY2FjaGUgYmVpbmcgZ2VuZXJhbGx5IHRyYW5z cGFyZW50IHRvIHVwcGVyIGxheWVycywgYnV0IHdpdGggaXQKPiBoYXZpbmcgbGltaXRlZCBjYXBh Y2l0eSB5ZXQgYmVpbmcgcmVxdWlyZWQgZm9yIGNvcnJlY3RuZXNzLCBjZXJ0YWluCj4gdXNlcnMg b2YgaHZtX2NvcHlfZnJvbV9ndWVzdF8qKCkgbmVlZCB0byBkaXNhYmxlIGNhY2hpbmcgdGVtcG9y YXJpbHksCj4gd2l0aG91dCBpbnZhbGlkYXRpbmcgdGhlIGNhY2hlLiBOb3RlIHRoYXQgdGhlIGFk anVzdG1lbnRzIGhlcmUgdG8KPiBodm1faHlwZXJjYWxsKCkgYW5kIGh2bV90YXNrX3N3aXRjaCgp IGFyZSBiZW5pZ24gYXQgdGhpcyBwb2ludDsgdGhleSdsbAo+IGJlY29tZSByZWxldmFudCBvbmNl IHdlIHN0YXJ0IHRvIGJlIGFibGUgdG8gZW11bGF0ZSByZXNwZWN0aXZlIGluc25zCj4gdGhyb3Vn aCB0aGUgbWFpbiBlbXVsYXRvciAoYW5kIG1vcmUgY2hhbmdlcyB3aWxsIHRoZW4gbGlrZWx5IGJl IG5lZWRlZAo+IHRvIG5lc3RlZCBjb2RlKS4KPgo+IEFzIHRvIHRoZSBhY3R1YWwgZGF0YSBwYWdl IGluIHRoaXMgc2NlbmFyaW8sIHRoZXJlIGFyZSBhIGNvdXBsZSBvZgo+IGFzcGVjdHMgdG8gdGFr ZSBpbnRvIGNvbnNpZGVyYXRpb246Cj4gLSBXZSBtdXN0IGJlIHRhbGtpbmcgYWJvdXQgYW4gaW5z biBhY2Nlc3NpbmcgdHdvIGxvY2F0aW9ucyAodHdvIG1lbW9yeQo+ICAgb25lcywgb25lIG9mIHdo aWNoIGlzIE1NSU8sIG9yIGEgbWVtb3J5IGFuZCBhbiBJL08gb25lKS4KClJlYWxseT8KCldlJ3Jl IHRhbGtpbmcgYWJvdXQgYWxsIGluc3RydWN0aW9ucywgZXZlbiB3aXRob3V0IGFueSBtZW1vcnkg b3BlcmFuZHMsCmJlY2F1c2UgYXQgdGhlIHZlcnkgbWluaW11bSB3ZSBjYWNoZSB0aGUgaW5zdHJ1 Y3Rpb24gc3RyZWFtLCBhbmQgKHdpdGgKdGhlIGZvbGxvd2luZyBwYXRjaCksIHRoZSBwYWdld2Fs ayB0byBpdC4KCj4gLSBJZiB0aGUgbm9uIEkvTyAvIE1NSU8gc2lkZSBpcyBiZWluZyByZWFkLCB0 aGUgcmUtcmVhZCAoaWYgaXQgb2NjdXJzIGF0Cj4gICBhbGwpIGlzIGhhdmluZyBpdHMgcmVzdWx0 IGRpc2NhcmRlZCwgYnkgdGFraW5nIHRoZSBzaG9ydGN1dCB0aHJvdWdoCj4gICB0aGUgZmlyc3Qg c3dpdGNoKCkncyBTVEFURV9JT1JFU1BfUkVBRFkgY2FzZSBpbiBodm1lbXVsX2RvX2lvKCkuIE5v dGUKPiAgIGhvdywgYW1vbmcgYWxsIHRoZSByZS1pc3N1ZSBzYW5pdHkgY2hlY2tzIHRoZXJlLCB3 ZSBhdm9pZCBjb21wYXJpbmcKPiAgIHRoZSBhY3R1YWwgZGF0YS4KPiAtIElmIHRoZSBub24gSS9P IC8gTU1JTyBzaWRlIGlzIGJlaW5nIHdyaXR0ZW4sIGl0IGlzIHRoZSBPU2VzCj4gICByZXNwb25z aWJpbGl0eSB0byBhdm9pZCBhY3R1YWxseSBtb3ZpbmcgcGFnZSBjb250ZW50cyB0byBkaXNrIHdo aWxlCj4gICB0aGVyZSBtaWdodCBzdGlsbCBiZSBhIHdyaXRlIGFjY2VzcyBpbiBmbGlnaHQgLSB0 aGlzIGlzIG5vIGRpZmZlcmVudAo+ICAgaW4gYmVoYXZpb3IgZnJvbSBiYXJlIGhhcmR3YXJlLgo+ IC0gUmVhZC1tb2RpZnktd3JpdGUgYWNjZXNzZXMgYXJlLCBhcyBhbHdheXMsIGNvbXBsaWNhdGVk LCBhbmQgd2hpbGUgd2UKPiAgIGRlYWwgd2l0aCB0aGVtIGJldHRlciBub3dhZGF5cyB0aGFuIHdl IGRpZCBpbiB0aGUgcGFzdCwgd2UncmUgc3RpbGwKPiAgIG5vdCBxdWl0ZSB0aGVyZSB0byBndWFy YW50ZWUgaGFyZHdhcmUgbGlrZSBiZWhhdmlvciBpbiBhbGwgY2FzZXMKPiAgIGFueXdheS4gTm90 aGluZyBpcyBnZXR0aW5nIHdvcnNlIGJ5IHRoZSBjaGFuZ2VzIG1hZGUgaGVyZSwgYWZhaWN0Lgo+ Cj4gSW4gX19odm1fY29weSgpIGFsc28gcmVkdWNlIHAncyBzY29wZSBhbmQgY2hhbmdlIGl0cyB0 eXBlIHRvIHZvaWQgKi4KPgo+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KPiAtLS0KPiBUQkQ6IEluIHByaW5jaXBsZSB0aGUgY2FjaGluZyBoZXJlIHlpZWxk cyB1bm5lY2Vzc2FyeSB0aGUgb25lIHVzZWQgZm9yCj4gICAgICBpbnNuIGJ5dGVzICh2aW8tPm1t aW9faW5zbnssX2J5dGVzfS4gSG93ZXZlciwgdG8gc2VlZCB0aGUgY2FjaGUKPiAgICAgIHdpdGgg dGhlIGRhdGEgU1ZNIG1heSBoYXZlIG1hZGUgYXZhaWxhYmxlLCB3ZSdkIGhhdmUgdG8gYWxzbyBr bm93Cj4gICAgICB0aGUgY29ycmVzcG9uZGluZyBHUEEuIEl0J3Mgbm90IHNhZmUsIGhvd2V2ZXIs IHRvIHJlLXdhbGsgdGhlIHBhZ2UKPiAgICAgIHRhYmxlcyB0byBmaW5kIG91dCwgYXMgdGhlIHBh Z2UgdGFibGVzIG1heSBoYXZlIGNoYW5nZWQgaW4gdGhlCj4gICAgICBtZWFudGltZS4gVGhlcmVm b3JlIEkgZ3Vlc3Mgd2UgbmVlZCB0byBrZWVwIHRoZSBkdXBsaWNhdGUKPiAgICAgIGZ1bmN0aW9u YWxpdHkgZm9yIG5vdy4gQSBwb3NzaWJsZSBzb2x1dGlvbiB0byB0aGlzIGNvdWxkIGJlIHRvIHVz ZQo+ICAgICAgYSBwaHlzaWNhbC1hZGRyZXNzLWJhc2VkIGNhY2hlIGZvciBwYWdlIHRhYmxlIGFj Y2Vzc2VzIChhbmQgbG9va2luZwo+ICAgICAgZm9yd2FyZCBhbHNvIGUuZy4gU1ZNL1ZNWCBpbnNu IGVtdWxhdGlvbiksIGFuZCBhIGxpbmVhci1hZGRyZXNzLQo+ICAgICAgYmFzZWQgb25lIGZvciBh bGwgb3RoZXIgcmVhZHMuCgpTcGxpdHRpbmcgY2FjaGluZyBsaWtlIHRoYXQgd2lsbCByZS1pbnRy b2R1Y2UgdGhlIHNhbWUgYnVncyBJIHBvaW50ZWQKb3V0IGluIGVhcmxpZXIgcmV2aXNpb25zIG9m IHRoaXMgc2VyaWVzLsKgIEl0IGlzIG5vdCBjb3JyZWN0IHRvIGhhdmUKbXVsdGlwbGUgKGFuZCB0 aGVyZWZvcmUsIG5vbi1jb2hlcmVudCkgY2FjaGVzIG9mIG1lbW9yeS4KClRoZSBBTUQgaW5zdHJ1 Y3Rpb24gc3RyZWFtIGJ5dGVzIHN1cHBvcnQgaXMgYnkgbm8gbWVhbnMgcGVyZmVjdCBlaXRoZXIu wqAKSXQgZG9lc24ndCBmdW5jdGlvbiBwcm9wZXJseSB3aGVuIFNNQVAgaXMgYWN0aXZlIChFcnJh dHVtICMxMDk2KSwgd2hpY2gKaXMgYWN0dWFsbHkgY2F1c2VkIGJ5IHRoZSBpbnN0cnVjdGlvbiBz dHJlYW0gYmVpbmcgcmUtZmV0Y2hlZCBhdCB2bWV4aXQKdGltZSwgd2l0aCBhIGRhdGEgc2lkZSBh Y2Nlc3MgKGhlbmNlIHRoZSBpbnRlcmFjdGlvbiB3aXRoIFNNQVApLgoKSnVzdCBhcyB3aXRoIHRo ZSBlbXVsYXRpb24gZm9yIG5vbi1OcmlwcyBoYXJkd2FyZSwgdGhlIGNvbnRlbnRzIG9mIHRoZQpp bnN0cnVjdGlvbiBidWZmZXIgKGlmIHZhbGlkKSBuZWVkIGNyb3NzIHJlZmVyZW5jaW5nIHdpdGgg dGhlIHZtZXhpdApyZWFzb24gdG8gc3BvdCByYWNlcywgYW5kIHRoZSBzYW1lIGNoZWNraW5nIHdv dWxkIG1ha2UgaXQgc2FmZSB0bwpkZWR1cGxpY2F0ZSB0aGUgY2FjaGluZy4KCj4gLS0tIGEveGVu L2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUu Ywo+IEBAIC0yOCw2ICsyOCwxNyBAQAo+ICAjaW5jbHVkZSA8YXNtL2lvY2FwLmg+Cj4gICNpbmNs dWRlIDxhc20vdm1fZXZlbnQuaD4KPiAgCj4gK3N0cnVjdCBodm1lbXVsX2NhY2hlCj4gK3sKClRo aXMgbmVlZHMgYSBjb21tZW50IChzZWUgYmVsb3cuKQoKPiArICAgIHVuc2lnbmVkIGludCBudW1f ZW50czsKPiArICAgIHVuc2lnbmVkIGludCBtYXhfZW50czsKPiArICAgIHN0cnVjdCB7Cj4gKyAg ICAgICAgcGFkZHJfdCBncGE6UEFERFJfQklUUzsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgc2l6 ZTpCSVRTX1BFUl9MT05HIC0gUEFERFJfQklUUzsKClRoaXMgd291bGQgcHJvYmFibHkgcmVzdWx0 IGluIHJhdGhlciBiZXR0ZXIgY29kZSBpZiBzaXplIHdhcyA4IGJpdHMKcmF0aGVyIHRoYW4gMTIu CgpMb25nZXIgdGVybSwgdGhlIHNpemUgZmllbGQgc2hvdWxkIGRpc2FwcGVhciBhbmQgZnVuY3Rp b25hbGl0eSBhZGp1c3RlZAp0byBhbHdheXMgcmVhZCBhbGlnbmVkIDggKG9yIGxhcmdlcikgYnl0 ZSB2YWx1ZXMuwqAgVGhhdCB3YXksIHRoZSBjYWNoZQpiZWhhdmVzIG11Y2ggbW9yZSBsaWtlIGNh Y2hlcyBpbiByZWFsIHByb2Nlc3NvcnMuCgo+IEBAIC0yODM4LDYgKzI4NjgsMTIzIEBAIHZvaWQg aHZtX2R1bXBfZW11bGF0aW9uX3N0YXRlKGNvbnN0IGNoYXIKPiAgICAgICAgICAgICBodm1lbXVs X2N0eHQtPmluc25fYnVmKTsKPiAgfQo+ICAKPiAraW50IGh2bWVtdWxfY2FjaGVfaW5pdChzdHJ1 Y3QgdmNwdSAqdikKPiArewo+ICsgICAgLyoKPiArICAgICAqIE5vIGluc24gY2FuIGFjY2VzcyBt b3JlIHRoYW4gMTYgaW5kZXBlbmRlbnQgbGluZWFyIGFkZHJlc3NlcyAoQVZYNTEyRgo+ICsgICAg ICogc2NhdHRlcnMvZ2F0aGVycyBiZWluZyB0aGUgd29yc3QpLgoKSXQgaXMgYXQgbGVhc3QgNSBt b3JlIHRoYW4gdGhlIHdvcnNlIGNhc2UgbnVtYmVyIG9mIHJlZ3VsYXIgb3BlcmFuZHMsIHRvCmNv dmVyIGV4Y2VwdGlvbnMsIGFuZCB0aGVyZWZvcmUgYWNjZXNzZXMgaW50byB0aGUgSURUL0dEVC9M RFQgYW5kIFRSIGFuZApzdGFjay4KCllvdSBjYW4gbWFuYWdlIHRoYXQgd2l0aCBhIDMyYml0IGd1 ZXN0IHdpdGggYW4gZXhjZXB0aW9uLCAlY3MgYW5kICVzcyBpbgpkaWZmZXJlbnQgdGFibGVzLCBh bmQgaGF2aW5nIHRvIGNyb3NzIGEgcGFnZSBib3VuZGFyeSB3aGVuIHB1c2hpbmcgdGhlCmVzcDAg ZXhjZXB0aW9uIGZyYW1lLgoKSXQgaXMgb25lIGZld2VyIGdlbmVyYWxseSBpbiA2NGJpdCBtb2Rl LCBiZWNhdXNlIHRoZXJlIGFyZSBubyAlc3MKcmVmZXJlbmNlcyB0byBkZWFsIHdpdGgsIGJ1dCBi b3RoIGNhc2VzIGdldCBldmVuIG1vcmUgY29tcGxpY2F0ZWQgZm9yIGEKY29udHJpYnV0b3J5IGV4 Y2VwdGlvbiwgYXMgdGhlIHNlY29uZCAlY3MgY2FuIGJlIGRpZmZlcmVudCB0byAlY3MgZm9yCnRo ZSBmaXJzdCBleGNlcHRpb24uCgo+ICBFYWNoIHN1Y2ggbGluZWFyIHJhbmdlIGNhbiBzcGFuIGEK PiArICAgICAqIHBhZ2UgYm91bmRhcnksIGkuZS4gbWF5IHJlcXVpcmUgdHdvIHBhZ2Ugd2Fsa3Mu IEFjY291bnQgZm9yIGVhY2ggaW5zbgo+ICsgICAgICogYnl0ZSBpbmRpdmlkdWFsbHkuCgpXaHkg YXJlIHdlIGNvdW50aW5nIDUgZW50cmllcyBmb3IgZXZlcnkgaW5zdHJ1Y3Rpb24gYnl0ZT/CoCBH aXZlbiBhbgo4LWJ5dGUgbWF4aW11bSBjYWNoZWQgc2l6ZSwgd2UgbmVlZCBhdCBtb3N0IDIgZW50 cmllcyB0byBjb3ZlciBhIHNpbmdsZQppbnN0cnVjdGlvbi4KCj4gKyAgICAgKi8KPiArICAgIGNv bnN0IHVuc2lnbmVkIGludCBuZW50cyA9IChDT05GSUdfUEFHSU5HX0xFVkVMUyArIDEpICoKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChNQVhfSU5TVF9MRU4gKyAxNiAqIDIpOwo+ ICsgICAgc3RydWN0IGh2bWVtdWxfY2FjaGUgKmNhY2hlID0geG1hbGxvY19mbGV4X3N0cnVjdChz dHJ1Y3QgaHZtZW11bF9jYWNoZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW50cywgbmVudHMpOwo+ICsKPiArICAgIGlmICggIWNhY2hl ICkKPiArICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAvKiBDYWNoZSBpcyBkaXNh YmxlZCBpbml0aWFsbHkuICovCj4gKyAgICBjYWNoZS0+bnVtX2VudHMgPSBuZW50cyArIDE7Cj4g KyAgICBjYWNoZS0+bWF4X2VudHMgPSBuZW50czsKCihCZWxvdzopIFlvdSBuZWVkIHRvIGRvY3Vt ZW50IHRoZSBpbnRlcm5hbCBzZW1hbnRpY3MgKHByb2JhYmx5IGJlc3QgaW4KdGhlIHN0cnVjdCBk ZWZpbml0aW9uLikKCkkgdGhvdWdodCBJJ2QgcmV2ZXJzZSBlbmdpbmVlcmVkIGhvdyBkaXNhYmxp bmcgd29ya3MgKHN0YXJ0aW5nIGZyb20gdGhlCmNvbXBsZXRlbHkgb2JzY3VyZSBodm1lbXVsX2Nh Y2hlX2Rpc2FibGVkKCkpLCBidXQgZ2l2ZW4gdGhhdCB0aGUgY2FjaGUKaXMgYXBwYXJlbnRseSBk aXNhYmxlZCBieSBkZWZhdWx0LCBJIG5vdyBjYW4ndCBmaWd1cmUgb3V0IGhvdyBpdCBldmVyCmdl dHMgZW5hYmxlZC4KCkkgY2FuJ3Qgc2VlIGFueSBjb2RlIHBhdGggd2hlcmUgbnVtX2VudHMgZW5k cyB1cCBsb3dlciB0aGFuIG1heF9lbnRzLAphbmQgdGhlIHJlYWQvd3JpdGUgaGVscGVycyBiZWxv dyBkb24ndCB0YWtlIHRoZWlyIGVhcmx5IGV4aXQgcGF0aC4KCj4gK2Jvb2wgaHZtZW11bF9yZWFk X2NhY2hlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBwYWRkcl90IGdwYSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgdm9pZCAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgc2l6ZSkKPiArewo+ICsgICAg Y29uc3Qgc3RydWN0IGh2bWVtdWxfY2FjaGUgKmNhY2hlID0gdi0+YXJjaC5odm0uaHZtX2lvLmNh Y2hlOwo+ICsgICAgdW5zaWduZWQgaW50IGk7Cj4gKwo+ICsgICAgLyogQ2FjaGUgdW5hdmFpbGFi bGU/ICovCj4gKyAgICBpZiAoIGNhY2hlLT5udW1fZW50cyA+IGNhY2hlLT5tYXhfZW50cyApCj4g KyAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICsKPiArICAgIHdoaWxlICggc2l6ZSA+IHNpemVvZihj YWNoZS0+ZW50cy0+ZGF0YSkgKQo+ICsgICAgewo+ICsgICAgICAgIGkgPSBncGEgJiAoc2l6ZW9m KGNhY2hlLT5lbnRzLT5kYXRhKSAtIDEpCj4gKyAgICAgICAgICAgID8gLWdwYSAmIChzaXplb2Yo Y2FjaGUtPmVudHMtPmRhdGEpIC0gMSkKPiArICAgICAgICAgICAgOiBzaXplb2YoY2FjaGUtPmVu dHMtPmRhdGEpOwo+ICsgICAgICAgIGlmICggIWh2bWVtdWxfcmVhZF9jYWNoZSh2LCBncGEsIGJ1 ZmZlciwgaSkgKQo+ICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CgpXaGF0IGlzIHRoaXMgY2Fs bCB0cnlpbmcgdG8gYWNoaWV2ZT8KCj4gKyAgICAgICAgZ3BhICs9IGk7Cj4gKyAgICAgICAgYnVm ZmVyICs9IGk7Cj4gKyAgICAgICAgc2l6ZSAtPSBpOwo+ICsgICAgfQo+ICsKPiArICAgIGZvciAo IGkgPSAwOyBpIDwgY2FjaGUtPm51bV9lbnRzOyArK2kgKQo+ICsgICAgICAgIGlmICggY2FjaGUt PmVudHNbaV0uZ3BhID09IGdwYSAmJiBjYWNoZS0+ZW50c1tpXS5zaXplID09IHNpemUgKQoKV2l0 aCBudW1fZW50cyBjdXJyZW50bHkgdG9wcGluZyBvdXQgYXQgMjM1IChhbmQgbmVlZGluZyB0byBp bmNyZWFzZQphbnl3YXkpLCB0aGlzIGNhbiBlbmQgdXAgYmVpbmcgYSB2ZXJ5IGxvbmcgbG9vcC4K CkdpdmVuIHRoYXQgaXQgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCBoaWdoZXIgbGV2ZWwgUFRFcyB0 byBiZWluZyB3aXRoLAp0aGUgY29tbW9uIGNhc2Ugb2YgYWNjZXNzaW5nIHJlYWwgZGF0YSB3aWxs IGJlIGF0IHRoZSBlbmQgb2YgdGhlIE8obikKc2VhcmNoIHJhdGhlciB0aGFuIHRoZSBzdGFydC4K ClRoZSBjYWNoZSBpcyBhIHNpbmdsZSBibG9jayBvZiBtZW1vcnksIHNvIGl0IGlzIGFsbW9zdCBj ZXJ0YWlubHkgYmV0dGVyCnRvIGtlZXAgaXQgc29ydGVkLsKgIFRoYXQgc2FpZCwgaXQgaXMgcHJv YmxlbWF0aWMgZHVlIHRvIHRoZSBvdmVybGFwIG9mCnNpemVzLCB3aGljaCBJJ20gc3RpbGwgY29u Y2VybmVkIGNvbmNlcm5lZCBhYm91dCBnZW5lcmFsbHkuCgo+IC0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2VtdWxhdGUuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxh dGUuaAo+IEBAIC0xMyw2ICsxMyw3IEBACj4gICNkZWZpbmUgX19BU01fWDg2X0hWTV9FTVVMQVRF X0hfXwo+ICAKPiAgI2luY2x1ZGUgPHhlbi9lcnIuaD4KPiArI2luY2x1ZGUgPHhlbi9zY2hlZC5o Pgo+ICAjaW5jbHVkZSA8YXNtL2h2bS9odm0uaD4KPiAgI2luY2x1ZGUgPGFzbS94ODZfZW11bGF0 ZS5oPgo+ICAKPiBAQCAtOTYsNiArOTcsMzEgQEAgaW50IGh2bWVtdWxfZG9fcGlvX2J1ZmZlcih1 aW50MTZfdCBwb3J0LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgZGlyLAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmJ1ZmZlcik7Cj4gIAo+ICsjaWZkZWYg Q09ORklHX0hWTQoKVGhpcyBuZWVkcyBhIGNvbW1lbnQgYmxvY2sgc3RhdGluZywgYXQgYSBtaW5p bXVtLCB0aGUgc2VtYW50aWNzIGFuZApleHBlY3RlZCB1c2UgZm9yIHRoZSBjYWNoZS4KCk90aGVy d2lzZSwgdGhpcyBpcyB+MTUwIGxpbmVzIG9mIHRvdGFsbHkgdW5kb2N1bWVudGVkIGFuZCBwcmFj dGljYWxseQp1bmNvbW1lbnRlZCwgY3JpdGljYWwgYW5kIHN1YnRsZSBpbmZyYXN0cnVjdHVyZS4K Cn5BbmRyZXcKCj4gK2ludCBfX211c3RfY2hlY2sgaHZtZW11bF9jYWNoZV9pbml0KHN0cnVjdCB2 Y3B1ICp2KTsKPiArc3RhdGljIGlubGluZSB2b2lkIGh2bWVtdWxfY2FjaGVfZGVzdHJveShzdHJ1 Y3QgdmNwdSAqdikKPiArewo+ICsgICAgWEZSRUUodi0+YXJjaC5odm0uaHZtX2lvLmNhY2hlKTsK PiArfQo+ICtib29sIGh2bWVtdWxfcmVhZF9jYWNoZShjb25zdCBzdHJ1Y3QgdmNwdSAqLCBwYWRk cl90IGdwYSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmZmVyLCB1bnNpZ25l ZCBpbnQgc2l6ZSk7Cj4gK3ZvaWQgaHZtZW11bF93cml0ZV9jYWNoZShjb25zdCBzdHJ1Y3QgdmNw dSAqLCBwYWRkcl90IGdwYSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQg KmJ1ZmZlciwgdW5zaWduZWQgaW50IHNpemUpOwo+ICt1bnNpZ25lZCBpbnQgaHZtZW11bF9jYWNo ZV9kaXNhYmxlKHN0cnVjdCB2Y3B1ICopOwo+ICt2b2lkIGh2bWVtdWxfY2FjaGVfcmVzdG9yZShz dHJ1Y3QgdmNwdSAqLCB1bnNpZ25lZCBpbnQgdG9rZW4pOwo+ICsvKiBGb3IgdXNlIGluIEFTU0VS VCgpcyBvbmx5OiAqLwo+ICtzdGF0aWMgaW5saW5lIGJvb2wgaHZtZW11bF9jYWNoZV9kaXNhYmxl ZChzdHJ1Y3QgdmNwdSAqdikKPiArewo+ICsgICAgcmV0dXJuIGh2bWVtdWxfY2FjaGVfZGlzYWJs ZSh2KSA9PSBodm1lbXVsX2NhY2hlX2Rpc2FibGUodik7Cj4gK30KPiArI2Vsc2UKPiArc3RhdGlj IGlubGluZSBib29sIGh2bWVtdWxfcmVhZF9jYWNoZShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgcGFk ZHJfdCBncGEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq YnVmLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBzaXplKSB7IHJldHVybiBmYWxzZTsgfQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaHZtZW11bF93 cml0ZV9jYWNoZShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgcGFkZHJfdCBncGEsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmJ1ZiwgdW5zaWduZWQg aW50IHNpemUpIHt9Cj4gKyNlbmRpZgo+ICsKPiAgdm9pZCBodm1fZHVtcF9lbXVsYXRpb25fc3Rh dGUoY29uc3QgY2hhciAqbG9nbHZsLCBjb25zdCBjaGFyICpwcmVmaXgsCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQs IGludCByYyk7Cj4gIAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==