From owner-freebsd-current@FreeBSD.ORG Tue Jan 31 01:23:52 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2B4C106566C for ; Tue, 31 Jan 2012 01:23:52 +0000 (UTC) (envelope-from ambrosehua@gmail.com) Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id 2EACC8FC14 for ; Tue, 31 Jan 2012 01:23:51 +0000 (UTC) Received: by wibhn14 with SMTP id hn14so5835343wib.13 for ; Mon, 30 Jan 2012 17:23:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=XudcN5f5X4LohsGbGOWwuriJcg3DpB/YvPzS25kLu+c=; b=PNscELjJm6GNIzoAVM3wWfvE0e5nCX0e3NS1wbCLIKMXMZjOeU54nbF9naOX+PqyJY gMWV+yC8vXyKPk+ZY48XV63oe2i0lWXuCcLlxrkj3b4vJ2YSPNCvCzt69HQb7KLFjf1e yIaFGukwJD77x9LWuFMYTOao2EUQlf203m+MY= MIME-Version: 1.0 Received: by 10.180.94.97 with SMTP id db1mr31239779wib.16.1327973031174; Mon, 30 Jan 2012 17:23:51 -0800 (PST) Received: by 10.223.42.18 with HTTP; Mon, 30 Jan 2012 17:23:50 -0800 (PST) In-Reply-To: <20120130164316.GW2726@deviant.kiev.zoral.com.ua> References: <20120130063607.GV2726@deviant.kiev.zoral.com.ua> <20120130164316.GW2726@deviant.kiev.zoral.com.ua> Date: Tue, 31 Jan 2012 09:23:50 +0800 Message-ID: From: Paul Ambrose To: Kostik Belousov Content-Type: multipart/mixed; boundary=f46d0442681acb61dc04b7c8d014 Cc: freebsd-current Subject: Re: Does anyone try kib's Sandy Bridge PCID patch (pcid.2.patch)? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2012 01:23:52 -0000 --f46d0442681acb61dc04b7c8d014 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: quoted-printable =D4=DA 2012=C4=EA1=D4=C231=C8=D5 =C9=CF=CE=E712:43=A3=ACKostik Belousov =D0=B4=B5=C0=A3=BA > On Mon, Jan 30, 2012 at 07:08:13PM +0800, Paul Ambrose wrote: >> ?? 2012??1??30?? ????2:36??Kostik Belousov ?????? >> > On Mon, Jan 30, 2012 at 10:15:51AM +0800, Paul Ambrose wrote: >> >> I have two boxes, one is AMD Athlon 610e 2.4G with FreeBSD-current >> >> patched with pcid.2.patch? It works well without other issue and it >> >> seem the pcid patch >> >> does not affect other part of the kernel. The other one is Sandy >> > Athlons do not have PCID and probably will never implement it. They us= e >> > other tricks to get similar optimizations, transparently to the OS. >> > >> Just curious, is this AMD similar optimizations >> Address Space Number (ASN) and Global flag >> US Patent 6,604,187. >> http://www.chip-architect.com/news/2003_09_21_Detailed_Architecture_of_A= MDs_64bit_Core.html > This and the same-important next item 'The TLB Flush Filter' is what > I referred to. > >> I did not found anything about ASN in the AMD manual > It is a transparent optimization, which does not require any OS support. > Intel PCID is completely different, it shall be explicitely handled by OS= . > It is some consequence of the nested pages support, AFAIU. > >> >> >> Bridge i5-2300 with FreeBSD 9 release patched with pcid.1.patch( the >> >> pcid.2.patch seems >> >> dependent on AVX and XSAVE stuffs which is available on -current). Bu= t >> >> it hangs up just in a few minutes. I doubt the nvidia-driver which is >> >> not recompiled with >> >> patched kernel is the root, I will check this out later, but does >> >> anyone meet similar problem? >> > There are two many variations compared to the config I did tested. >> > I do not see anything obvious in the changes between HEAD and stable/9 >> > which could be blamed. Nvidia driver might be bigger suspect, but agai= n, >> > I am not aware of anything wrong with it. >> > >> >> >> >> I have two question about the pcid.2.patch >> > >> > Item 2 is clean, I fixed it. >> > >> > For the item 1, I was only able to decipher the proposal to optimize >> > the global shootdown handler to restore the %cr3 with bit 64 set to no= t >> > invalidate current PCID. Is there some more changes ? >> > >> yes, that is what I meant. I was wondering using another way that each >> process has different >> pcid in each active processor, just as the freebsd mips and powerpc >> uses. But obviously this way >> is more friendly to non-pcid x86 processor. > Each vmspace (or pmap) has unique PCID with the patch, at least until > PCID space (12bit) is not exhausted. To really exhaust it, you need 4095 > processes, so it is unlikely but possible event with the current settings= . > Thank you for your explanation. I just disabled nvidia-driver( not load it) , and use "buildworld buildkernel" to test the pcid.1.patch with 9-release, it seems the box reset before completing the buildkernel, the attachment is my kernel config, would you mind try it on 9-release with pcid.1.patch? I will git 10-current a try to see if there is something wrong with my hardware --f46d0442681acb61dc04b7c8d014 Content-Type: application/octet-stream; name=MYKERNEL Content-Disposition: attachment; filename=MYKERNEL Content-Transfer-Encoding: base64 X-Attachment-Id: f_gy28s4o21 IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBGcmVl QlNEL2FtZDY0CiMKIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGZpbGUsIHBsZWFzZSBy ZWFkIHRoZSBjb25maWcoNSkgbWFudWFsIHBhZ2UsCiMgYW5kL29yIHRoZSBoYW5kYm9vayBzZWN0 aW9uIG9uIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGVzOgojCiMgICAgaHR0cDovL3d3dy5GcmVl QlNELm9yZy9kb2MvZW5fVVMuSVNPODg1OS0xL2Jvb2tzL2hhbmRib29rL2tlcm5lbGNvbmZpZy1j b25maWcuaHRtbAojCiMgVGhlIGhhbmRib29rIGlzIGFsc28gYXZhaWxhYmxlIGxvY2FsbHkgaW4g L3Vzci9zaGFyZS9kb2MvaGFuZGJvb2sKIyBpZiB5b3UndmUgaW5zdGFsbGVkIHRoZSBkb2MgZGlz dHJpYnV0aW9uLCBvdGhlcndpc2UgYWx3YXlzIHNlZSB0aGUKIyBGcmVlQlNEIFdvcmxkIFdpZGUg V2ViIHNlcnZlciAoaHR0cDovL3d3dy5GcmVlQlNELm9yZy8pIGZvciB0aGUKIyBsYXRlc3QgaW5m b3JtYXRpb24uCiMKIyBBbiBleGhhdXN0aXZlIGxpc3Qgb2Ygb3B0aW9ucyBhbmQgbW9yZSBkZXRh aWxlZCBleHBsYW5hdGlvbnMgb2YgdGhlCiMgZGV2aWNlIGxpbmVzIGlzIGFsc28gcHJlc2VudCBp biB0aGUgLi4vLi4vY29uZi9OT1RFUyBhbmQgTk9URVMgZmlsZXMuCiMgSWYgeW91IGFyZSBpbiBk b3VidCBhcyB0byB0aGUgcHVycG9zZSBvciBuZWNlc3NpdHkgb2YgYSBsaW5lLCBjaGVjayBmaXJz dAojIGluIE5PVEVTLgojCiMgJEZyZWVCU0Q6IHNyYy9zeXMvYW1kNjQvY29uZi9HRU5FUklDLHYg MS41MzEuMi42IDIwMDkvMTEvMTcgMTU6NTY6NDUgamhiIEV4cCAkCgpjcHUJCUhBTU1FUgppZGVu dAkJTVlLRVJORUwKCiMgVG8gc3RhdGljYWxseSBjb21waWxlIGluIGRldmljZSB3aXJpbmcgaW5z dGVhZCBvZiAvYm9vdC9kZXZpY2UuaGludHMKI2hpbnRzCQkiR0VORVJJQy5oaW50cyIJCSMgRGVm YXVsdCBwbGFjZXMgdG8gbG9vayBmb3IgZGV2aWNlcy4KCiMgVXNlIHRoZSBmb2xsb3dpbmcgdG8g Y29tcGlsZSBpbiB2YWx1ZXMgYWNjZXNzaWJsZSB0byB0aGUga2VybmVsCiMgdGhyb3VnaCBnZXRl bnYoKSAob3Iga2VudigxKSBpbiB1c2VybGFuZCkuIFRoZSBmb3JtYXQgb2YgdGhlIGZpbGUKIyBp cyAndmFyaWFibGU9dmFsdWUnLCBzZWUga2VudigxKQojCiMgZW52CQkiR0VORVJJQy5lbnYiCgpt YWtlb3B0aW9ucwlERUJVRz0tZwkJIyBCdWlsZCBrZXJuZWwgd2l0aCBnZGIoMSkgZGVidWcgc3lt Ym9scwoKb3B0aW9ucyAJU0NIRURfVUxFCQkjIFVMRSBzY2hlZHVsZXIKb3B0aW9ucyAJUFJFRU1Q VElPTgkJIyBFbmFibGUga2VybmVsIHRocmVhZCBwcmVlbXB0aW9uCm9wdGlvbnMgCUlORVQJCQkj IEludGVyTkVUd29ya2luZwpvcHRpb25zIAlJTkVUNgkJCSMgSVB2NiBjb21tdW5pY2F0aW9ucyBw cm90b2NvbHMKb3B0aW9ucyAJU0NUUAkJCSMgU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFBy b3RvY29sCm9wdGlvbnMgCUZGUwkJCSMgQmVya2VsZXkgRmFzdCBGaWxlc3lzdGVtCm9wdGlvbnMg CVNPRlRVUERBVEVTCQkjIEVuYWJsZSBGRlMgc29mdCB1cGRhdGVzIHN1cHBvcnQKb3B0aW9ucyAJ VUZTX0FDTAkJCSMgU3VwcG9ydCBmb3IgYWNjZXNzIGNvbnRyb2wgbGlzdHMKb3B0aW9ucyAJVUZT X0RJUkhBU0gJCSMgSW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBiaWcgZGlyZWN0b3JpZXMKb3B0aW9u cyAJVUZTX0dKT1VSTkFMCQkjIEVuYWJsZSBnam91cm5hbC1iYXNlZCBVRlMgam91cm5hbGluZwpv cHRpb25zIAlNRF9ST09UCQkJIyBNRCBpcyBhIHBvdGVudGlhbCByb290IGRldmljZQpvcHRpb25z IAlORlNDTAkJCSMgTmV3IE5ldHdvcmsgRmlsZXN5c3RlbSBDbGllbnQKb3B0aW9ucyAJTkZTRAkJ CSMgTmV3IE5ldHdvcmsgRmlsZXN5c3RlbSBTZXJ2ZXIKb3B0aW9ucyAJTkZTTE9DS0QJCSMgTmV0 d29yayBMb2NrIE1hbmFnZXIKb3B0aW9ucyAJTkZTX1JPT1QJCSMgTkZTIHVzYWJsZSBhcyAvLCBy ZXF1aXJlcyBORlNDTApvcHRpb25zIAlNU0RPU0ZTCQkJIyBNU0RPUyBGaWxlc3lzdGVtCm9wdGlv bnMgCUNEOTY2MAkJCSMgSVNPIDk2NjAgRmlsZXN5c3RlbQpvcHRpb25zIAlQUk9DRlMJCQkjIFBy b2Nlc3MgZmlsZXN5c3RlbSAocmVxdWlyZXMgUFNFVURPRlMpCm9wdGlvbnMgCVBTRVVET0ZTCQkj IFBzZXVkby1maWxlc3lzdGVtIGZyYW1ld29yawpvcHRpb25zIAlHRU9NX1BBUlRfR1BUCQkjIEdV SUQgUGFydGl0aW9uIFRhYmxlcy4Kb3B0aW9ucyAJR0VPTV9MQUJFTAkJIyBQcm92aWRlcyBsYWJl bGl6YXRpb24Kb3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0QzMgkjIENvbXBhdGlibGUgd2l0aCBpMzg2 IGJpbmFyaWVzCiNvcHRpb25zIAlDT01QQVRfRlJFRUJTRDQJCSMgQ29tcGF0aWJsZSB3aXRoIEZy ZWVCU0Q0CiNvcHRpb25zIAlDT01QQVRfRlJFRUJTRDUJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVC U0Q1CiNvcHRpb25zIAlDT01QQVRfRlJFRUJTRDYJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q2 CiNvcHRpb25zIAlDT01QQVRfRlJFRUJTRDcJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q3Cm9w dGlvbnMgCVNDU0lfREVMQVk9NTAwMAkJIyBEZWxheSAoaW4gbXMpIGJlZm9yZSBwcm9iaW5nIFND U0kKb3B0aW9ucyAJS1RSQUNFCQkJIyBrdHJhY2UoMSkgc3VwcG9ydApvcHRpb25zIAlTVEFDSwkJ CSMgc3RhY2soOSkgc3VwcG9ydApvcHRpb25zIAlTWVNWU0hNCQkJIyBTWVNWLXN0eWxlIHNoYXJl ZCBtZW1vcnkKb3B0aW9ucyAJU1lTVk1TRwkJCSMgU1lTVi1zdHlsZSBtZXNzYWdlIHF1ZXVlcwpv cHRpb25zIAlTWVNWU0VNCQkJIyBTWVNWLXN0eWxlIHNlbWFwaG9yZXMKb3B0aW9ucyAJUDEwMDNf MUJfU0VNQVBIT1JFUwkjIFBPU0lYLXN0eWxlIHNlbWFwaG9yZXMKb3B0aW9ucyAJX0tQT1NJWF9Q UklPUklUWV9TQ0hFRFVMSU5HICMgUE9TSVggUDEwMDNfMUIgcmVhbC10aW1lIGV4dGVuc2lvbnMK b3B0aW9ucyAJUFJJTlRGX0JVRlJfU0laRT0xMjgJIyBQcmV2ZW50IHByaW50ZiBvdXRwdXQgYmVp bmcgaW50ZXJzcGVyc2VkLgpvcHRpb25zIAlLQkRfSU5TVEFMTF9DREVWCSMgaW5zdGFsbCBhIENE RVYgZW50cnkgaW4gL2RldgpvcHRpb25zIAlIV1BNQ19IT09LUwkJIyBOZWNlc3Nhcnkga2VybmVs IGhvb2tzIGZvciBod3BtYyg0KQpvcHRpb25zIAlBVURJVAkJCSMgU2VjdXJpdHkgZXZlbnQgYXVk aXRpbmcKb3B0aW9ucyAJTUFDCQkJIyBUcnVzdGVkQlNEIE1BQyBGcmFtZXdvcmsKb3B0aW9ucwkJ RkxPV1RBQkxFCQkjIHBlci1jcHUgcm91dGluZyBjYWNoZQpvcHRpb25zIAlLRFRSQUNFX0ZSQU1F CQkjIEVuc3VyZSBmcmFtZXMgYXJlIGNvbXBpbGVkIGluCm9wdGlvbnMgCUtEVFJBQ0VfSE9PS1MJ CSMgS2VybmVsIERUcmFjZSBob29rcwpvcHRpb25zIAlJTkNMVURFX0NPTkZJR19GSUxFICAgICAj IEluY2x1ZGUgdGhpcyBmaWxlIGluIGtlcm5lbAoKb3B0aW9ucwkJRERCX0NURgpvcHRpb25zCQlE REIKb3B0aW9ucwkJS0RCCm9wdGlvbnMJCUtEQl9UUkFDRQoKIyBNYWtlIGFuIFNNUC1jYXBhYmxl IGtlcm5lbCBieSBkZWZhdWx0Cm9wdGlvbnMgCVNNUAkJCSMgU3ltbWV0cmljIE11bHRpUHJvY2Vz c29yIEtlcm5lbAoKIyBDUFUgZnJlcXVlbmN5IGNvbnRyb2wKZGV2aWNlCQljcHVmcmVxCgojIEJ1 cyBzdXBwb3J0LgpkZXZpY2UJCWFjcGkKZGV2aWNlCQlwY2kKCiMgRmxvcHB5IGRyaXZlcwojZGV2 aWNlCQlmZGMKCiMgQVRBIGNvbnRyb2xsZXJzCmRldmljZQkJYWhjaQkJIyBBSENJLWNvbXBhdGli bGUgU0FUQSBjb250cm9sbGVycwpkZXZpY2UJCWF0YQkJIyBMZWdhY3kgQVRBL1NBVEEgY29udHJv bGxlcnMKb3B0aW9ucyAJQVRBX0NBTQkJIyBIYW5kbGUgbGVnYWN5IGNvbnRyb2xsZXJzIHdpdGgg Q0FNCm9wdGlvbnMgCUFUQV9TVEFUSUNfSUQJIyBTdGF0aWMgZGV2aWNlIG51bWJlcmluZwoKIyBT Q1NJIENvbnRyb2xsZXJzCiNkZXZpY2UJCWFoYwkJIyBBSEEyOTQwIGFuZCBvbmJvYXJkIEFJQzd4 eHggZGV2aWNlcwojb3B0aW9ucyAJQUhDX1JFR19QUkVUVFlfUFJJTlQJIyBQcmludCByZWdpc3Rl ciBiaXRmaWVsZHMgaW4gZGVidWcKCQkJCQkjIG91dHB1dC4gIEFkZHMgfjEyOGsgdG8gZHJpdmVy LgojZGV2aWNlCQlhaGQJCSMgQUhBMzkzMjAvMjkzMjAgYW5kIG9uYm9hcmQgQUlDNzl4eCBkZXZp Y2VzCiNvcHRpb25zIAlBSERfUkVHX1BSRVRUWV9QUklOVAkjIFByaW50IHJlZ2lzdGVyIGJpdGZp ZWxkcyBpbiBkZWJ1ZwoJCQkJCSMgb3V0cHV0LiAgQWRkcyB+MjE1ayB0byBkcml2ZXIuCiNkZXZp Y2UJCWFtZAkJIyBBTUQgNTNDOTc0IChUZWtyYW0gREMtMzkwKFQpKQojZGV2aWNlCQlocHRpb3AJ CSMgSGlnaHBvaW50IFJvY2tldFJhaWQgM3h4eCBzZXJpZXMKI2RldmljZQkJaXNwCQkjIFFsb2dp YyBmYW1pbHkKI2RldmljZQkJaXNwZncJCSMgRmlybXdhcmUgZm9yIFFMb2dpYyBIQkFzLSBub3Jt YWxseSBhIG1vZHVsZQpkZXZpY2UJCW1wdAkJIyBMU0ktTG9naWMgTVBULUZ1c2lvbgpkZXZpY2UJ CW1wcwkJIyBMU0ktTG9naWMgTVBULUZ1c2lvbiAyCiNkZXZpY2UJCW5jcgkJIyBOQ1IvU3ltYmlv cyBMb2dpYwojZGV2aWNlCQlzeW0JCSMgTkNSL1N5bWJpb3MgTG9naWMgKG5ld2VyIGNoaXBzZXRz ICsgdGhvc2Ugb2YgYG5jcicpCiNkZXZpY2UJCXRybQkJIyBUZWtyYW0gREMzOTVVL1VXL0YgREMz MTVVIGFkYXB0ZXJzCgojZGV2aWNlCQlhZHYJCSMgQWR2YW5zeXMgU0NTSSBhZGFwdGVycwojZGV2 aWNlCQlhZHcJCSMgQWR2YW5zeXMgd2lkZSBTQ1NJIGFkYXB0ZXJzCiNkZXZpY2UJCWFpYwkJIyBB ZGFwdGVjIDE1WzAxMl14IFNDU0kgYWRhcHRlcnMsIEFJQy02WzIzXTYwLgojZGV2aWNlCQlidAkJ IyBCdXNsb2dpYy9NeWxleCBNdWx0aU1hc3RlciBTQ1NJIGFkYXB0ZXJzCgojIEFUQS9TQ1NJIHBl cmlwaGVyYWxzCmRldmljZQkJc2NidXMJCSMgU0NTSSBidXMgKHJlcXVpcmVkIGZvciBBVEEvU0NT SSkKZGV2aWNlCQljaAkJIyBTQ1NJIG1lZGlhIGNoYW5nZXJzCmRldmljZQkJZGEJCSMgRGlyZWN0 IEFjY2VzcyAoZGlza3MpCmRldmljZQkJc2EJCSMgU2VxdWVudGlhbCBBY2Nlc3MgKHRhcGUgZXRj KQpkZXZpY2UJCWNkCQkjIENECmRldmljZQkJcGFzcwkJIyBQYXNzdGhyb3VnaCBkZXZpY2UgKGRp cmVjdCBBVEEvU0NTSSBhY2Nlc3MpCmRldmljZQkJc2VzCQkjIFNDU0kgRW52aXJvbm1lbnRhbCBT ZXJ2aWNlcyAoYW5kIFNBRi1URSkKCiMgUkFJRCBjb250cm9sbGVycyBpbnRlcmZhY2VkIHRvIHRo ZSBTQ1NJIHN1YnN5c3RlbQpkZXZpY2UJCWFtcgkJIyBBTUkgTWVnYVJBSUQKI2RldmljZQkJYXJj bXNyCQkjIEFyZWNhIFNBVEEgSUkgUkFJRAojWFhYIGl0IGlzIG5vdCA2NC1iaXQgY2xlYW4sIC1z Y290dGwKI2RldmljZQkJYXNyCQkjIERQVCBTbWFydFJBSUQgViwgVkkgYW5kIEFkYXB0ZWMgU0NT SSBSQUlECiNkZXZpY2UJCWNpc3MJCSMgQ29tcGFxIFNtYXJ0IFJBSUQgNSoKI2RldmljZQkJZHB0 CQkjIERQVCBTbWFydGNhY2hlIElJSSwgSVYgLSBTZWUgTk9URVMgZm9yIG9wdGlvbnMKI2Rldmlj ZQkJaHB0bXYJCSMgSGlnaHBvaW50IFJvY2tldFJBSUQgMTgyeAojZGV2aWNlCQlocHRycgkJIyBI aWdocG9pbnQgUm9ja2V0UkFJRCAxN3h4LCAyMnh4LCAyM3h4LCAyNXh4CiNkZXZpY2UJCWlpcgkJ IyBJbnRlbCBJbnRlZ3JhdGVkIFJBSUQKI2RldmljZQkJaXBzCQkjIElCTSAoQWRhcHRlYykgU2Vy dmVSQUlECiNkZXZpY2UJCW1seQkJIyBNeWxleCBBY2NlbGVSQUlEL2VYdHJlbWVSQUlECiNkZXZp Y2UJCXR3YQkJIyAzd2FyZSA5MDAwIHNlcmllcyBQQVRBL1NBVEEgUkFJRAoKIyBSQUlEIGNvbnRy b2xsZXJzCiNkZXZpY2UJCWFhYwkJIyBBZGFwdGVjIEZTQSBSQUlECiNkZXZpY2UJCWFhY3AJCSMg U0NTSSBwYXNzdGhyb3VnaCBmb3IgYWFjIChyZXF1aXJlcyBDQU0pCiNkZXZpY2UJCWlkYQkJIyBD b21wYXEgU21hcnQgUkFJRApkZXZpY2UJCW1maQkJIyBMU0kgTWVnYVJBSUQgU0FTCiNkZXZpY2UJ CW1seAkJIyBNeWxleCBEQUM5NjAgZmFtaWx5CiNYWFggcG9pbnRlci9pbnQgd2FybmluZ3MKI2Rl dmljZQkJcHN0CQkjIFByb21pc2UgU3VwZXJ0cmFrIFNYNjAwMAojZGV2aWNlCQl0d2UJCSMgM3dh cmUgQVRBIFJBSUQKCiMgYXRrYmRjMCBjb250cm9scyBib3RoIHRoZSBrZXlib2FyZCBhbmQgdGhl IFBTLzIgbW91c2UKZGV2aWNlCQlhdGtiZGMJCSMgQVQga2V5Ym9hcmQgY29udHJvbGxlcgpkZXZp Y2UJCWF0a2JkCQkjIEFUIGtleWJvYXJkCmRldmljZQkJcHNtCQkjIFBTLzIgbW91c2UKCmRldmlj ZQkJa2JkbXV4CQkjIGtleWJvYXJkIG11bHRpcGxleGVyCgpkZXZpY2UJCXZnYQkJIyBWR0Egdmlk ZW8gY2FyZCBkcml2ZXIKCiNkZXZpY2UJCXNwbGFzaAkJIyBTcGxhc2ggc2NyZWVuIGFuZCBzY3Jl ZW4gc2F2ZXIgc3VwcG9ydAoKIyBzeXNjb25zIGlzIHRoZSBkZWZhdWx0IGNvbnNvbGUgZHJpdmVy LCByZXNlbWJsaW5nIGFuIFNDTyBjb25zb2xlCm9wdGlvbnMJCVZFU0EKZGV2aWNlCQlzYwpvcHRp b25zIAlTQ19QSVhFTF9NT0RFCSMgYWRkIHN1cHBvcnQgZm9yIHRoZSByYXN0ZXIgdGV4dCBtb2Rl CgpkZXZpY2UJCWFncAkJIyBzdXBwb3J0IHNldmVyYWwgQUdQIGNoaXBzZXRzCgojIFBDQ0FSRCAo UENNQ0lBKSBzdXBwb3J0CiMgUENNQ0lBIGFuZCBjYXJkYnVzIGJyaWRnZSBzdXBwb3J0CiNkZXZp Y2UJCWNiYgkJIyBjYXJkYnVzICh5ZW50YSkgYnJpZGdlCiNkZXZpY2UJCXBjY2FyZAkJIyBQQyBD YXJkICgxNi1iaXQpIGJ1cwojZGV2aWNlCQljYXJkYnVzCQkjIENhcmRCdXMgKDMyLWJpdCkgYnVz CgojIFNlcmlhbCAoQ09NKSBwb3J0cwpkZXZpY2UJCXVhcnQJCSMgR2VuZXJpYyBVQVJUIGRyaXZl cgoKIyBQYXJhbGxlbCBwb3J0CmRldmljZQkJcHBjCmRldmljZQkJcHBidXMJCSMgUGFyYWxsZWwg cG9ydCBidXMgKHJlcXVpcmVkKQpkZXZpY2UJCWxwdAkJIyBQcmludGVyCmRldmljZQkJcGxpcAkJ IyBUQ1AvSVAgb3ZlciBwYXJhbGxlbApkZXZpY2UJCXBwaQkJIyBQYXJhbGxlbCBwb3J0IGludGVy ZmFjZSBkZXZpY2UKI2RldmljZQkJdnBvCQkjIFJlcXVpcmVzIHNjYnVzIGFuZCBkYQoKZGV2aWNl CQlwdWMJCSMgTXVsdGkgSS9PIGNhcmRzIGFuZCBtdWx0aS1jaGFubmVsIFVBUlRzCgojIFBDSSBF dGhlcm5ldCBOSUNzLgojZGV2aWNlCQlkZQkJIyBERUMvSW50ZWwgREMyMXg0eCAoYGBUdWxpcCcn KQojZGV2aWNlCQllbQkJIyBJbnRlbCBQUk8vMTAwMCBHaWdhYml0IEV0aGVybmV0IEZhbWlseQoj ZGV2aWNlCQlpZ2IJCSMgSW50ZWwgUFJPLzEwMDAgUENJRSBTZXJ2ZXIgR2lnYWJpdCBGYW1pbHkK I2RldmljZQkJaXhnYmUJCSMgSW50ZWwgUFJPLzEwR2JFIFBDSUUgRXRoZXJuZXQgRmFtaWx5CiNk ZXZpY2UJCWxlCQkjIEFNRCBBbTc5MDAgTEFOQ0UgYW5kIEFtNzlDOXh4IFBDbmV0CiNkZXZpY2UJ CXRpCQkjIEFsdGVvbiBOZXR3b3JrcyBUaWdvbiBJL0lJIGdpZ2FiaXQgRXRoZXJuZXQKI2Rldmlj ZQkJdHhwCQkjIDNDb20gM2NSOTkwIChgYFR5cGhvb24nJykKI2RldmljZQkJdngJCSMgM0NvbSAz YzU5MCwgM2M1OTUgKGBgVm9ydGV4JycpCgojIFBDSSBFdGhlcm5ldCBOSUNzIHRoYXQgdXNlIHRo ZSBjb21tb24gTUlJIGJ1cyBjb250cm9sbGVyIGNvZGUuCiMgTk9URTogQmUgc3VyZSB0byBrZWVw IHRoZSAnZGV2aWNlIG1paWJ1cycgbGluZSBpbiBvcmRlciB0byB1c2UgdGhlc2UgTklDcyEKZGV2 aWNlCQltaWlidXMJCSMgTUlJIGJ1cyBzdXBwb3J0CiNkZXZpY2UJCWFlCQkjIEF0dGFuc2ljL0F0 aGVyb3MgTDIgRmFzdEV0aGVybmV0CiNkZXZpY2UJCWFnZQkJIyBBdHRhbnNpYy9BdGhlcm9zIEwx IEdpZ2FiaXQgRXRoZXJuZXQKI2RldmljZQkJYWxjCQkjIEF0aGVyb3MgQVI4MTMxL0FSODEzMiBF dGhlcm5ldAojZGV2aWNlCQlhbGUJCSMgQXRoZXJvcyBBUjgxMjEvQVI4MTEzL0FSODExNCBFdGhl cm5ldAojZGV2aWNlCQliY2UJCSMgQnJvYWRjb20gQkNNNTcwNi9CQ001NzA4IEdpZ2FiaXQgRXRo ZXJuZXQKI2RldmljZQkJYmZlCQkjIEJyb2FkY29tIEJDTTQ0MHggMTAvMTAwIEV0aGVybmV0CiNk ZXZpY2UJCWJnZQkJIyBCcm9hZGNvbSBCQ001NzB4eCBHaWdhYml0IEV0aGVybmV0CiNkZXZpY2UJ CWRjCQkjIERFQy9JbnRlbCAyMTE0MyBhbmQgdmFyaW91cyB3b3JrYWxpa2VzCiNkZXZpY2UJCWV0 CQkjIEFnZXJlIEVUMTMxMCAxMC8xMDAvR2lnYWJpdCBFdGhlcm5ldAojZGV2aWNlCQlmeHAJCSMg SW50ZWwgRXRoZXJFeHByZXNzIFBSTy8xMDBCICg4MjU1NywgODI1NTgpCiNkZXZpY2UJCWptZQkJ IyBKTWljcm9uIEpNQzI1MCBHaWdhYml0L0pNQzI2MCBGYXN0IEV0aGVybmV0CiNkZXZpY2UJCWxn ZQkJIyBMZXZlbCAxIExYVDEwMDEgZ2lnYWJpdCBFdGhlcm5ldAojZGV2aWNlCQltc2sJCSMgTWFy dmVsbC9TeXNLb25uZWN0IFl1a29uIElJIEdpZ2FiaXQgRXRoZXJuZXQKI2RldmljZQkJbmZlCQkj IG5WaWRpYSBuRm9yY2UgTUNQIG9uLWJvYXJkIEV0aGVybmV0CiNkZXZpY2UJCW5nZQkJIyBOYXRT ZW1pIERQODM4MjAgZ2lnYWJpdCBFdGhlcm5ldAojZGV2aWNlCQludmUJCSMgblZpZGlhIG5Gb3Jj ZSBNQ1Agb24tYm9hcmQgRXRoZXJuZXQgTmV0d29ya2luZwojZGV2aWNlCQlwY24JCSMgQU1EIEFt NzlDOTd4IFBDSSAxMC8xMDAgKHByZWNlZGVuY2Ugb3ZlciAnbGUnKQpkZXZpY2UJCXJlCQkjIFJl YWxUZWsgODEzOUMrLzgxNjkvODE2OVMvODExMFMKI2RldmljZQkJcmwJCSMgUmVhbFRlayA4MTI5 LzgxMzkKI2RldmljZQkJc2YJCSMgQWRhcHRlYyBBSUMtNjkxNSAoYGBTdGFyZmlyZScnKQojZGV2 aWNlCQlzaXMJCSMgU2lsaWNvbiBJbnRlZ3JhdGVkIFN5c3RlbXMgU2lTIDkwMC9TaVMgNzAxNgoj ZGV2aWNlCQlzawkJIyBTeXNLb25uZWN0IFNLLTk4NHggJiBTSy05ODJ4IGdpZ2FiaXQgRXRoZXJu ZXQKI2RldmljZQkJc3RlCQkjIFN1bmRhbmNlIFNUMjAxIChELUxpbmsgREZFLTU1MFRYKQojZGV2 aWNlCQlzdGdlCQkjIFN1bmRhbmNlL1RhbWFyYWNrIFRDOTAyMSBnaWdhYml0IEV0aGVybmV0CiNk ZXZpY2UJCXRsCQkjIFRleGFzIEluc3RydW1lbnRzIFRodW5kZXJMQU4KI2RldmljZQkJdHgJCSMg U01DIEV0aGVyUG93ZXIgSUkgKDgzYzE3MCBgYEVQSUMnJykKI2RldmljZQkJdmdlCQkjIFZJQSBW VDYxMnggZ2lnYWJpdCBFdGhlcm5ldAojZGV2aWNlCQl2cgkJIyBWSUEgUmhpbmUsIFJoaW5lIElJ CiNkZXZpY2UJCXdiCQkjIFdpbmJvbmQgVzg5Qzg0MEYKI2RldmljZQkJeGwJCSMgM0NvbSAzYzkw eCAoYGBCb29tZXJhbmcnJywgYGBDeWNsb25lJycpCgojIElTQSBFdGhlcm5ldCBOSUNzLiAgcGNj YXJkIE5JQ3MgaW5jbHVkZWQuCiNkZXZpY2UJCWNzCQkjIENyeXN0YWwgU2VtaWNvbmR1Y3RvciBD Uzg5eDAgTklDCiMgJ2RldmljZSBlZCcgcmVxdWlyZXMgJ2RldmljZSBtaWlidXMnCiNkZXZpY2UJ CWVkCQkjIE5FWzEyXTAwMCwgU01DIFVsdHJhLCAzYzUwMywgRFM4MzkwIGNhcmRzCiNkZXZpY2UJ CWV4CQkjIEludGVsIEV0aGVyRXhwcmVzcyBQcm8vMTAgYW5kIFByby8xMCsKI2RldmljZQkJZXAJ CSMgRXRoZXJsaW5rIElJSSBiYXNlZCBjYXJkcwojZGV2aWNlCQlmZQkJIyBGdWppdHN1IE1CODY5 NnggYmFzZWQgY2FyZHMKI2RldmljZQkJc24JCSMgU01DJ3MgOTAwMCBzZXJpZXMgb2YgRXRoZXJu ZXQgY2hpcHMKI2RldmljZQkJeGUJCSMgWGlyY29tIHBjY2FyZCBFdGhlcm5ldAoKIyBXaXJlbGVz cyBOSUMgY2FyZHMKI2RldmljZQkJd2xhbgkJIyA4MDIuMTEgc3VwcG9ydAojb3B0aW9ucyAJSUVF RTgwMjExX0RFQlVHCSMgZW5hYmxlIGRlYnVnIG1zZ3MKI29wdGlvbnMgCUlFRUU4MDIxMV9BTVBE VV9BR0UgIyBhZ2UgZnJhbWVzIGluIEFNUERVIHJlb3JkZXIgcSdzCiNvcHRpb25zIAlJRUVFODAy MTFfU1VQUE9SVF9NRVNICSMgZW5hYmxlIDgwMi4xMXMgZHJhZnQgc3VwcG9ydAojZGV2aWNlCQl3 bGFuX3dlcAkjIDgwMi4xMSBXRVAgc3VwcG9ydAojZGV2aWNlCQl3bGFuX2NjbXAJIyA4MDIuMTEg Q0NNUCBzdXBwb3J0CiNkZXZpY2UJCXdsYW5fdGtpcAkjIDgwMi4xMSBUS0lQIHN1cHBvcnQKI2Rl dmljZQkJd2xhbl9hbXJyCSMgQU1SUiB0cmFuc21pdCByYXRlIGNvbnRyb2wgYWxnb3JpdGhtCiNk ZXZpY2UJCWFuCQkjIEFpcm9uZXQgNDUwMC80ODAwIDgwMi4xMSB3aXJlbGVzcyBOSUNzLgojZGV2 aWNlCQlhdGgJCSMgQXRoZXJvcyBwY2kvY2FyZGJ1cyBOSUMncwojZGV2aWNlCQlhdGhfaGFsCQkj IHBjaS9jYXJkYnVzIGNoaXAgc3VwcG9ydAojb3B0aW9ucyAJQUhfU1VQUE9SVF9BUjU0MTYJIyBl bmFibGUgQVI1NDE2IHR4L3J4IGRlc2NyaXB0b3JzCiNkZXZpY2UJCWF0aF9yYXRlX3NhbXBsZQkj IFNhbXBsZVJhdGUgdHggcmF0ZSBjb250cm9sIGZvciBhdGgKI2RldmljZQkJcmFsCQkjIFJhbGlu ayBUZWNobm9sb2d5IFJUMjUwMCB3aXJlbGVzcyBOSUNzLgojZGV2aWNlCQl3aQkJIyBXYXZlTEFO L0ludGVyc2lsL1N5bWJvbCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KCiMgUHNldWRvIGRldmljZXMu CmRldmljZQkJbG9vcAkJIyBOZXR3b3JrIGxvb3BiYWNrCmRldmljZQkJcmFuZG9tCQkjIEVudHJv cHkgZGV2aWNlCmRldmljZQkJZXRoZXIJCSMgRXRoZXJuZXQgc3VwcG9ydApkZXZpY2UJCXZsYW4J CSMgODAyLjFRIFZMQU4gc3VwcG9ydApkZXZpY2UJCXR1bgkJIyBQYWNrZXQgdHVubmVsLgpkZXZp Y2UJCXB0eQkJIyBCU0Qtc3R5bGUgY29tcGF0aWJpbGl0eSBwc2V1ZG8gdHR5cwpkZXZpY2UJCW1k CQkjIE1lbW9yeSAiZGlza3MiCmRldmljZQkJZ2lmCQkjIElQdjYgYW5kIElQdjQgdHVubmVsaW5n CmRldmljZQkJZmFpdGgJCSMgSVB2Ni10by1JUHY0IHJlbGF5aW5nICh0cmFuc2xhdGlvbikKZGV2 aWNlCQlmaXJtd2FyZQkjIGZpcm13YXJlIGFzc2lzdCBtb2R1bGUKCiMgVGhlIGBicGYnIGRldmlj ZSBlbmFibGVzIHRoZSBCZXJrZWxleSBQYWNrZXQgRmlsdGVyLgojIEJlIGF3YXJlIG9mIHRoZSBh ZG1pbmlzdHJhdGl2ZSBjb25zZXF1ZW5jZXMgb2YgZW5hYmxpbmcgdGhpcyEKIyBOb3RlIHRoYXQg J2JwZicgaXMgcmVxdWlyZWQgZm9yIERIQ1AuCmRldmljZQkJYnBmCQkjIEJlcmtlbGV5IHBhY2tl dCBmaWx0ZXIKCiMgVVNCIHN1cHBvcnQKb3B0aW9ucyAJVVNCX0RFQlVHCSMgZW5hYmxlIGRlYnVn IG1zZ3MKZGV2aWNlCQl1aGNpCQkjIFVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlCmRldmljZQkJb2hj aQkJIyBPSENJIFBDSS0+VVNCIGludGVyZmFjZQpkZXZpY2UJCWVoY2kJCSMgRUhDSSBQQ0ktPlVT QiBpbnRlcmZhY2UgKFVTQiAyLjApCmRldmljZQkJeGhjaQkJIyBYSENJIFBDSS0+VVNCIGludGVy ZmFjZSAoVVNCIDMuMCkKZGV2aWNlCQl1c2IJCSMgVVNCIEJ1cyAocmVxdWlyZWQpCiNkZXZpY2UJ CXVkYnAJCSMgVVNCIERvdWJsZSBCdWxrIFBpcGUgZGV2aWNlcwpkZXZpY2UJCXVoaWQJCSMgIkh1 bWFuIEludGVyZmFjZSBEZXZpY2VzIgpkZXZpY2UJCXVrYmQJCSMgS2V5Ym9hcmQKZGV2aWNlCQl1 bHB0CQkjIFByaW50ZXIKZGV2aWNlCQl1bWFzcwkJIyBEaXNrcy9NYXNzIHN0b3JhZ2UgLSBSZXF1 aXJlcyBzY2J1cyBhbmQgZGEKZGV2aWNlCQl1bXMJCSMgTW91c2UKI2RldmljZQkJdXJpbwkJIyBE aWFtb25kIFJpbyA1MDAgTVAzIHBsYXllcgojIFVTQiBTZXJpYWwgZGV2aWNlcwojZGV2aWNlCQl1 YXJrCQkjIFRlY2hub2xvZ2llcyBBUkszMTE2IGJhc2VkIHNlcmlhbCBhZGFwdGVycwojZGV2aWNl CQl1YnNhCQkjIEJlbGtpbiBGNVUxMDMgYW5kIGNvbXBhdGlibGUgc2VyaWFsIGFkYXB0ZXJzCmRl dmljZQkJdWZ0ZGkJCSMgRm9yIEZUREkgdXNiIHNlcmlhbCBhZGFwdGVycwojZGV2aWNlCQl1aXBh cQkJIyBTb21lIFdpbkNFIGJhc2VkIGRldmljZXMKI2RldmljZQkJdXBsY29tCQkjIFByb2xpZmlj IFBMLTIzMDMgc2VyaWFsIGFkYXB0ZXJzCiNkZXZpY2UJCXVzbGNvbQkJIyBTSSBMYWJzIENQMjEw MS9DUDIxMDIgc2VyaWFsIGFkYXB0ZXJzCiNkZXZpY2UJCXV2aXNvcgkJIyBWaXNvciBhbmQgUGFs bSBkZXZpY2VzCiNkZXZpY2UJCXV2c2NvbQkJIyBVU0Igc2VyaWFsIHN1cHBvcnQgZm9yIERESSBw b2NrZXQncyBQSFMKZGV2aWNlCQl1Y29tCiMgVVNCIEV0aGVybmV0LCByZXF1aXJlcyBtaWlidXMK I2RldmljZQkJYXVlCQkjIEFETXRlayBVU0IgRXRoZXJuZXQKI2RldmljZQkJYXhlCQkjIEFTSVgg RWxlY3Ryb25pY3MgVVNCIEV0aGVybmV0CiNkZXZpY2UJCWNkY2UJCSMgR2VuZXJpYyBVU0Igb3Zl ciBFdGhlcm5ldAojZGV2aWNlCQljdWUJCSMgQ0FUQyBVU0IgRXRoZXJuZXQKI2RldmljZQkJa3Vl CQkjIEthd2FzYWtpIExTSSBVU0IgRXRoZXJuZXQKI2RldmljZQkJcnVlCQkjIFJlYWxUZWsgUlRM ODE1MCBVU0IgRXRoZXJuZXQKI2RldmljZQkJdWRhdgkJIyBEYXZpY29tIERNOTYwMUUgVVNCCiMg VVNCIFdpcmVsZXNzCiNkZXZpY2UJCXJ1bQkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDFVU0Ig d2lyZWxlc3MgTklDcwojZGV2aWNlCQl1YXRoCQkjIEF0aGVyb3MgQVI1NTIzIHdpcmVsZXNzIE5J Q3MKI2RldmljZQkJdXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDBVU0Igd2lyZWxlc3Mg TklDcwojZGV2aWNlCQl6eWQJCSMgWnlEQVMgemIxMjExL3piMTIxMWIgd2lyZWxlc3MgTklDcwoK IyBGaXJlV2lyZSBzdXBwb3J0CiNkZXZpY2UJCWZpcmV3aXJlCSMgRmlyZVdpcmUgYnVzIGNvZGUK I2RldmljZQkJc2JwCQkjIFNDU0kgb3ZlciBGaXJlV2lyZSAoUmVxdWlyZXMgc2NidXMgYW5kIGRh KQojZGV2aWNlCQlmd2UJCSMgRXRoZXJuZXQgb3ZlciBGaXJlV2lyZSAobm9uLXN0YW5kYXJkISkK I2RldmljZQkJZndpcAkJIyBJUCBvdmVyIEZpcmVXaXJlIChSRkMgMjczNCwzMTQ2KQojZGV2aWNl CQlkY29ucwkJIyBEdW1iIGNvbnNvbGUgZHJpdmVyCiNkZXZpY2UJCWRjb25zX2Nyb20JIyBDb25m aWd1cmF0aW9uIFJPTSBmb3IgZGNvbnMKIwptYWtlb3B0aW9ucwlXSVRIX0NURj0xCmRldmljZQkJ aHdwbWMKZGV2aWNlCQlhbWR0ZW1wCm9wdGlvbnMJCUlQSV9QUkVFTVBUSU9OCiNvcHRpb25zIAlW TV9LTUVNX1NJWkUKI29wdGlvbnMgCVZNX0tNRU1fU0laRV9NQVgKI29wdGlvbnMgCVZNX0tNRU1f U0laRV9TQ0FMRQpvcHRpb25zIAlLU1RBQ0tfUEFHRVM9NQoKZGV2aWNlCQlzb3VuZApkZXZpY2UJ CXNuZF9oZGEKZGV2aWNlIAkJa3N5bXMKb3B0aW9ucyAJQ09VTlRfWElOVkxUTEJfSElUUwkjIENv dW50ZXJzIGZvciBUTEIgZXZlbnRzCm9wdGlvbnMgCUNPVU5UX0lQSVMJCSMgUGVyLUNQVSBJUEkg aW50ZXJydXB0IGNvdW50ZXJzCg== --f46d0442681acb61dc04b7c8d014--