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=-3.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no 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 82273C47423 for ; Fri, 2 Oct 2020 07:31:24 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 57583207F7 for ; Fri, 2 Oct 2020 07:31:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="lC6n1jSw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 57583207F7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 32FF46B006C; Fri, 2 Oct 2020 03:31:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2BAF26B006E; Fri, 2 Oct 2020 03:31:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 181336B0070; Fri, 2 Oct 2020 03:31:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0036.hostedemail.com [216.40.44.36]) by kanga.kvack.org (Postfix) with ESMTP id D6B726B006C for ; Fri, 2 Oct 2020 03:31:21 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 63ED5181AE871 for ; Fri, 2 Oct 2020 07:31:21 +0000 (UTC) X-FDA: 77326164762.21.swing94_050889a271a2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin21.hostedemail.com (Postfix) with ESMTP id 3A2E4180442C0 for ; Fri, 2 Oct 2020 07:31:21 +0000 (UTC) X-HE-Tag: swing94_050889a271a2 X-Filterd-Recvd-Size: 8365 Received: from mail-oi1-f195.google.com (mail-oi1-f195.google.com [209.85.167.195]) by imf18.hostedemail.com (Postfix) with ESMTP for ; Fri, 2 Oct 2020 07:31:20 +0000 (UTC) Received: by mail-oi1-f195.google.com with SMTP id z26so380678oih.12 for ; Fri, 02 Oct 2020 00:31:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=FV2kqyJj2HCS5dITMAB2uIW5WIzwJCxSsKqyYxhrIb8=; b=lC6n1jSw4vGEbBk+NzuHmRhWwgQz1I5GTOa2zuJv940Zx1wxEh97+0AE0wc3SK5OYg GRkx1QpyhQzUs7T9uEenrAEt1CqXAY7filBYvuEA4UVnDQfsCIepB9TlDFUZtJJt6th5 z+i698ITBVY0/dTSn4fqVlNnKIt8fSywkSnTE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=FV2kqyJj2HCS5dITMAB2uIW5WIzwJCxSsKqyYxhrIb8=; b=bMUoeX3rs1xPBpHfDGgpEmOjLdjXa32Xb2hF0BpTSUCkn+gmCe3rd2FNCU0oy8wIn8 C4i4uZxEYYqenkXt+v2Jx7dMxDdN7+ay+OoIoh56viRWb3kkS/SIIDfgNluqpb4OqvKp 4XaUwuNPcu+YCHmW5huBtafzSl0+wz6vpXfaV58x33UnIMxLm3ybEnL6MNhRnNvaz7i4 viWLIKRXwqhyStOUpzagvKVjL3823ElLXHGI/GosoraoMh6izWkjaBl213/t6Beee0d+ Vxla7d9izs7OaDpJXEVagiRii4Foxa6Nxkv1doX7QTXpjSuB5pt+3bjzj8D1/c0jDGps KL/Q== X-Gm-Message-State: AOAM532kEGdB1er8JXpBX5aoWCFuJ8V1WROmbh8ddRFgw6IvAJZpbiIG fkqWqJcjN4LztONQKTpOn9HhMcdXTYZbL6mBTZgYHw== X-Google-Smtp-Source: ABdhPJxSuPhsIR7ozBvleiZGtWRZp5/0o4EsEQMkcZj85SgObTBwKlJDPsHuSNersHwNZqgCIw8aPofYz6agkQnCgd8= X-Received: by 2002:aca:eb49:: with SMTP id j70mr477352oih.101.1601623879554; Fri, 02 Oct 2020 00:31:19 -0700 (PDT) MIME-Version: 1.0 References: <20200930221821.13719-1-agoins@nvidia.com> <4566cf03-1c9e-1626-6c92-7b5fa29d6b75@amd.com> In-Reply-To: From: Daniel Vetter Date: Fri, 2 Oct 2020 09:31:08 +0200 Message-ID: Subject: Re: [PATCH RFC 0/1] drm/ttm: Allocate transparent huge pages without clearing __GFP_COMP To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: Alex Goins , amd-gfx list , dri-devel , Linux MM , John Hubbard , Zi Yan Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Oct 2, 2020 at 8:41 AM Christian K=C3=B6nig wrote: > > Hi Alex, > > adding Daniel as well. > > Am 01.10.20 um 20:45 schrieb Alex Goins: > > Hi Christian, > > > > On Thu, 1 Oct 2020, Christian K=C3=B6nig wrote: > > > >> Hi Alex, > >> > >> first of all accessing the underlying page of an exported DMA-buf is > >> illegal! So I'm not 100% sure what you're intentions are here, please > >> explain further. > > We have some mapping requirements that I was hoping I could address by = mapping > > these pages manually. > > > > Are you sure that it's illegal to access the underlying pages of an exp= orted > > DMA-BUF? > > yes, I'm 100% sure of that. This was discussed multiple times now on the > mailing list. > > > There appears to be quite a few usages of this already. See the usage > > of drm_prime_sg_to_page_addr_arrays() in vgem, vkms, msm, xen, and etna= viv. > > drm_gem_prime_import_dev() uses driver->gem_prime_import_sg_table() whe= n > > importing a DMA-BUF from another driver, and the listed drivers then ex= tract the > > pages from the given SGT using drm_prime_sg_to_page_addr_arrays(). Thes= e pages > > can then be mapped and faulted in. > > No, exactly that doesn't work correctly. > > You are corrupting internal state in struct page while doing so and risk > that userspace is accessing freed up memory. > > We really need to find a way to fix the few drivers already doing this. Yeah the drivers doing this were merged with everyone aware that it's a bad trick, but 10 years ago we had nothing, not even userspace for multi-gpu, so there needed to be something to get the thing off the ground. But it was a bad idea back then, and it's still a bad idea now (and now we do have the ecosystem off the ground, so there's really not excuse for shortcuts). -Daniel > > See commit af33a9190d02 ('drm/vgem: Enable dmabuf import interfaces'). = After > > importing the pages from the SGT, vgem can fault them in, taking a refc= ount with > > get_page() first. get_page() throws a BUG if the refcount is zero, whic= h it will > > hit on each of the 'tail' pages from TTM THP allocations. > > > > All of this currently works fine with TTM DMA-BUFs when the kernel is b= uilt with > > !CONFIG_TRANSPARENT_HUGEPAGE. However, 'echo never > > > /sys/kernel/mm/transparent_hugepage/enabled' doesn't change how TTM all= ocates > > pages. > > You need to redirect the mapping to dma_buf_mmap() instead. > > Regards, > Christian. > > > > >> Then the reason for TTM not using compound pages is that we can't > >> guarantee that they are mapped as a whole to userspace. > >> > >> The result is that the kernel sometimes tried to de-compound them whic= h > >> created a bunch of problems. > >> > >> So yes this is completely intentional. > > Understood, I figured something like that was the case, so I wanted to = get your > > input first. Do you know what the problems were, exactly? Practical iss= ues > > aside, it seems strange to call something a transparent huge page if it= 's > > non-compound. > > > > Besides making these pages compound, would it be reasonable to split th= em before > > sharing them, in e.g. amdgpu_dma_buf_map (and in other drivers that use= TTM)? > > That's where it's supposed to make sure that the shared DMA-BUF is acce= ssible by > > the target device. > > > > Thanks, > > Alex > > > >> Regards, > >> Christian. > >> > >> Am 01.10.20 um 00:18 schrieb Alex Goins: > >>> Hi Christian, > >>> > >>> I've been looking into the DMA-BUFs exported from AMDGPU / TTM. Would > >>> you mind giving some input on this? > >>> > >>> I noticed that your changes implementing transparent huge page suppor= t > >>> in TTM are allocating them as non-compound. I understand that using > >>> multiorder non-compound pages is common in device drivers, but I thin= k > >>> this can cause a problem when these pages are exported to other drive= rs. > >>> > >>> It's possible for other drivers to access the DMA-BUF's pages via > >>> gem_prime_import_sg_table(), but without context from TTM, it's > >>> impossible for the importing driver to make sense of them; they simpl= y > >>> appear as individual pages, with only the first page having a non-zer= o > >>> refcount. Making TTM's THP allocations compound puts them more in lin= e > >>> with the standard definition of a THP, and allows DMA-BUF-importing > >>> drivers to make sense of the pages within. > >>> > >>> I would like to propose making these allocations compound, but based = on > >>> patch history, it looks like the decision to make them non-compound w= as > >>> intentional, as there were difficulties figuring out how to map them > >>> into CPU page tables. I did some cursory testing with compound THPs, = and > >>> nothing seems obviously broken. I was also able to map compound THP > >>> DMA-BUFs into userspace without issue, and access their contents. Are > >>> you aware of any other potential consequences? > >>> > >>> Commit 5c42c64f7d54 ("drm/ttm: fix the fix for huge compound pages") = should > >>> probably also be reverted if this is applied. > >>> > >>> Thanks, > >>> Alex > >>> > >>> Alex Goins (1): > >>> drm-ttm: Allocate compound transparent huge pages > >>> > >>> drivers/gpu/drm/ttm/ttm_page_alloc.c | 5 ++--- > >>> 1 file changed, 2 insertions(+), 3 deletions(-) > >>> > --=20 Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 E3838C4363D for ; Fri, 2 Oct 2020 07:31:23 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 3B90C2074B for ; Fri, 2 Oct 2020 07:31:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="lC6n1jSw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3B90C2074B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5A5EE6E235; Fri, 2 Oct 2020 07:31:21 +0000 (UTC) Received: from mail-oi1-x243.google.com (mail-oi1-x243.google.com [IPv6:2607:f8b0:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 525836E235 for ; Fri, 2 Oct 2020 07:31:20 +0000 (UTC) Received: by mail-oi1-x243.google.com with SMTP id c13so401640oiy.6 for ; Fri, 02 Oct 2020 00:31:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=FV2kqyJj2HCS5dITMAB2uIW5WIzwJCxSsKqyYxhrIb8=; b=lC6n1jSw4vGEbBk+NzuHmRhWwgQz1I5GTOa2zuJv940Zx1wxEh97+0AE0wc3SK5OYg GRkx1QpyhQzUs7T9uEenrAEt1CqXAY7filBYvuEA4UVnDQfsCIepB9TlDFUZtJJt6th5 z+i698ITBVY0/dTSn4fqVlNnKIt8fSywkSnTE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=FV2kqyJj2HCS5dITMAB2uIW5WIzwJCxSsKqyYxhrIb8=; b=neb5+XbJBtPmhP1pilePT9MTQJjDi2qFK5uu1zCcWE0v0wCQZG+x90gaUoPP7yYvSi adPbM+t/f2nzIOKdtE8ymV7y2RTRpEI8PLROaRey5w/MOae8O1BUAaRjFCxVu0/599zK 1MVfxJ1ba+9RJwpHJlrxbrA4jH9zEFXKkN3YSiIOqw2cK03gtYqMy6by1XQI6xWu6and R86KTmn6HNYzCPVpLfyn+BSkGumQg6WKS/ClLlcgqBDIDMtdUMzaaayyHf2TmE733bqn VHtWxqJ6WXyMnNTv3uqtAFETBnW7V6wQclQtwemfSF/em6Vx/docOs1nJBwa7yRTotdj d5fw== X-Gm-Message-State: AOAM531nc7nEQHvmk8L5r5tB4VhX3w5UkozWOevKCX9wVOvp30rkqSbm CPz7FlnmTrV9iGi9906IhXBP5UKVFJwXBLhFeR5psA== X-Google-Smtp-Source: ABdhPJxSuPhsIR7ozBvleiZGtWRZp5/0o4EsEQMkcZj85SgObTBwKlJDPsHuSNersHwNZqgCIw8aPofYz6agkQnCgd8= X-Received: by 2002:aca:eb49:: with SMTP id j70mr477352oih.101.1601623879554; Fri, 02 Oct 2020 00:31:19 -0700 (PDT) MIME-Version: 1.0 References: <20200930221821.13719-1-agoins@nvidia.com> <4566cf03-1c9e-1626-6c92-7b5fa29d6b75@amd.com> In-Reply-To: From: Daniel Vetter Date: Fri, 2 Oct 2020 09:31:08 +0200 Message-ID: Subject: Re: [PATCH RFC 0/1] drm/ttm: Allocate transparent huge pages without clearing __GFP_COMP To: =?UTF-8?Q?Christian_K=C3=B6nig?= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: John Hubbard , dri-devel , Linux MM , amd-gfx list , Zi Yan Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gRnJpLCBPY3QgMiwgMjAyMCBhdCA4OjQxIEFNIENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4KPiBIaSBBbGV4LAo+Cj4gYWRkaW5nIERhbmllbCBh cyB3ZWxsLgo+Cj4gQW0gMDEuMTAuMjAgdW0gMjA6NDUgc2NocmllYiBBbGV4IEdvaW5zOgo+ID4g SGkgQ2hyaXN0aWFuLAo+ID4KPiA+IE9uIFRodSwgMSBPY3QgMjAyMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiA+Cj4gPj4gSGkgQWxleCwKPiA+Pgo+ID4+IGZpcnN0IG9mIGFsbCBhY2Nlc3Np bmcgdGhlIHVuZGVybHlpbmcgcGFnZSBvZiBhbiBleHBvcnRlZCBETUEtYnVmIGlzCj4gPj4gaWxs ZWdhbCEgU28gSSdtIG5vdCAxMDAlIHN1cmUgd2hhdCB5b3UncmUgaW50ZW50aW9ucyBhcmUgaGVy ZSwgcGxlYXNlCj4gPj4gZXhwbGFpbiBmdXJ0aGVyLgo+ID4gV2UgaGF2ZSBzb21lIG1hcHBpbmcg cmVxdWlyZW1lbnRzIHRoYXQgSSB3YXMgaG9waW5nIEkgY291bGQgYWRkcmVzcyBieSBtYXBwaW5n Cj4gPiB0aGVzZSBwYWdlcyBtYW51YWxseS4KPiA+Cj4gPiBBcmUgeW91IHN1cmUgdGhhdCBpdCdz IGlsbGVnYWwgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIHBhZ2VzIG9mIGFuIGV4cG9ydGVkCj4g PiBETUEtQlVGPwo+Cj4geWVzLCBJJ20gMTAwJSBzdXJlIG9mIHRoYXQuIFRoaXMgd2FzIGRpc2N1 c3NlZCBtdWx0aXBsZSB0aW1lcyBub3cgb24gdGhlCj4gbWFpbGluZyBsaXN0Lgo+Cj4gPiBUaGVy ZSBhcHBlYXJzIHRvIGJlIHF1aXRlIGEgZmV3IHVzYWdlcyBvZiB0aGlzIGFscmVhZHkuIFNlZSB0 aGUgdXNhZ2UKPiA+IG9mIGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKCkgaW4gdmdl bSwgdmttcywgbXNtLCB4ZW4sIGFuZCBldG5hdml2Lgo+ID4gZHJtX2dlbV9wcmltZV9pbXBvcnRf ZGV2KCkgdXNlcyBkcml2ZXItPmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoKSB3aGVuCj4gPiBp bXBvcnRpbmcgYSBETUEtQlVGIGZyb20gYW5vdGhlciBkcml2ZXIsIGFuZCB0aGUgbGlzdGVkIGRy aXZlcnMgdGhlbiBleHRyYWN0IHRoZQo+ID4gcGFnZXMgZnJvbSB0aGUgZ2l2ZW4gU0dUIHVzaW5n IGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKCkuIFRoZXNlIHBhZ2VzCj4gPiBjYW4g dGhlbiBiZSBtYXBwZWQgYW5kIGZhdWx0ZWQgaW4uCj4KPiBObywgZXhhY3RseSB0aGF0IGRvZXNu J3Qgd29yayBjb3JyZWN0bHkuCj4KPiBZb3UgYXJlIGNvcnJ1cHRpbmcgaW50ZXJuYWwgc3RhdGUg aW4gc3RydWN0IHBhZ2Ugd2hpbGUgZG9pbmcgc28gYW5kIHJpc2sKPiB0aGF0IHVzZXJzcGFjZSBp cyBhY2Nlc3NpbmcgZnJlZWQgdXAgbWVtb3J5Lgo+Cj4gV2UgcmVhbGx5IG5lZWQgdG8gZmluZCBh IHdheSB0byBmaXggdGhlIGZldyBkcml2ZXJzIGFscmVhZHkgZG9pbmcgdGhpcy4KClllYWggdGhl IGRyaXZlcnMgZG9pbmcgdGhpcyB3ZXJlIG1lcmdlZCB3aXRoIGV2ZXJ5b25lIGF3YXJlIHRoYXQg aXQncwphIGJhZCB0cmljaywgYnV0IDEwIHllYXJzIGFnbyB3ZSBoYWQgbm90aGluZywgbm90IGV2 ZW4gdXNlcnNwYWNlIGZvcgptdWx0aS1ncHUsIHNvIHRoZXJlIG5lZWRlZCB0byBiZSBzb21ldGhp bmcgdG8gZ2V0IHRoZSB0aGluZyBvZmYgdGhlCmdyb3VuZC4gQnV0IGl0IHdhcyBhIGJhZCBpZGVh IGJhY2sgdGhlbiwgYW5kIGl0J3Mgc3RpbGwgYSBiYWQgaWRlYSBub3cKKGFuZCBub3cgd2UgZG8g aGF2ZSB0aGUgZWNvc3lzdGVtIG9mZiB0aGUgZ3JvdW5kLCBzbyB0aGVyZSdzIHJlYWxseQpub3Qg ZXhjdXNlIGZvciBzaG9ydGN1dHMpLgotRGFuaWVsCgo+ID4gU2VlIGNvbW1pdCBhZjMzYTkxOTBk MDIgKCdkcm0vdmdlbTogRW5hYmxlIGRtYWJ1ZiBpbXBvcnQgaW50ZXJmYWNlcycpLiBBZnRlcgo+ ID4gaW1wb3J0aW5nIHRoZSBwYWdlcyBmcm9tIHRoZSBTR1QsIHZnZW0gY2FuIGZhdWx0IHRoZW0g aW4sIHRha2luZyBhIHJlZmNvdW50IHdpdGgKPiA+IGdldF9wYWdlKCkgZmlyc3QuIGdldF9wYWdl KCkgdGhyb3dzIGEgQlVHIGlmIHRoZSByZWZjb3VudCBpcyB6ZXJvLCB3aGljaCBpdCB3aWxsCj4g PiBoaXQgb24gZWFjaCBvZiB0aGUgJ3RhaWwnIHBhZ2VzIGZyb20gVFRNIFRIUCBhbGxvY2F0aW9u cy4KPiA+Cj4gPiBBbGwgb2YgdGhpcyBjdXJyZW50bHkgd29ya3MgZmluZSB3aXRoIFRUTSBETUEt QlVGcyB3aGVuIHRoZSBrZXJuZWwgaXMgYnVpbHQgd2l0aAo+ID4gIUNPTkZJR19UUkFOU1BBUkVO VF9IVUdFUEFHRS4gSG93ZXZlciwgJ2VjaG8gbmV2ZXIgPgo+ID4gL3N5cy9rZXJuZWwvbW0vdHJh bnNwYXJlbnRfaHVnZXBhZ2UvZW5hYmxlZCcgZG9lc24ndCBjaGFuZ2UgaG93IFRUTSBhbGxvY2F0 ZXMKPiA+IHBhZ2VzLgo+Cj4gWW91IG5lZWQgdG8gcmVkaXJlY3QgdGhlIG1hcHBpbmcgdG8gZG1h X2J1Zl9tbWFwKCkgaW5zdGVhZC4KPgo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+Cj4gPgo+ID4+ IFRoZW4gdGhlIHJlYXNvbiBmb3IgVFRNIG5vdCB1c2luZyBjb21wb3VuZCBwYWdlcyBpcyB0aGF0 IHdlIGNhbid0Cj4gPj4gZ3VhcmFudGVlIHRoYXQgdGhleSBhcmUgbWFwcGVkIGFzIGEgd2hvbGUg dG8gdXNlcnNwYWNlLgo+ID4+Cj4gPj4gVGhlIHJlc3VsdCBpcyB0aGF0IHRoZSBrZXJuZWwgc29t ZXRpbWVzIHRyaWVkIHRvIGRlLWNvbXBvdW5kIHRoZW0gd2hpY2gKPiA+PiBjcmVhdGVkIGEgYnVu Y2ggb2YgcHJvYmxlbXMuCj4gPj4KPiA+PiBTbyB5ZXMgdGhpcyBpcyBjb21wbGV0ZWx5IGludGVu dGlvbmFsLgo+ID4gVW5kZXJzdG9vZCwgSSBmaWd1cmVkIHNvbWV0aGluZyBsaWtlIHRoYXQgd2Fz IHRoZSBjYXNlLCBzbyBJIHdhbnRlZCB0byBnZXQgeW91cgo+ID4gaW5wdXQgZmlyc3QuIERvIHlv dSBrbm93IHdoYXQgdGhlIHByb2JsZW1zIHdlcmUsIGV4YWN0bHk/IFByYWN0aWNhbCBpc3N1ZXMK PiA+IGFzaWRlLCBpdCBzZWVtcyBzdHJhbmdlIHRvIGNhbGwgc29tZXRoaW5nIGEgdHJhbnNwYXJl bnQgaHVnZSBwYWdlIGlmIGl0J3MKPiA+IG5vbi1jb21wb3VuZC4KPiA+Cj4gPiBCZXNpZGVzIG1h a2luZyB0aGVzZSBwYWdlcyBjb21wb3VuZCwgd291bGQgaXQgYmUgcmVhc29uYWJsZSB0byBzcGxp dCB0aGVtIGJlZm9yZQo+ID4gc2hhcmluZyB0aGVtLCBpbiBlLmcuIGFtZGdwdV9kbWFfYnVmX21h cCAoYW5kIGluIG90aGVyIGRyaXZlcnMgdGhhdCB1c2UgVFRNKT8KPiA+IFRoYXQncyB3aGVyZSBp dCdzIHN1cHBvc2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzaGFyZWQgRE1BLUJVRiBpcyBhY2Nl c3NpYmxlIGJ5Cj4gPiB0aGUgdGFyZ2V0IGRldmljZS4KPiA+Cj4gPiBUaGFua3MsCj4gPiBBbGV4 Cj4gPgo+ID4+IFJlZ2FyZHMsCj4gPj4gQ2hyaXN0aWFuLgo+ID4+Cj4gPj4gQW0gMDEuMTAuMjAg dW0gMDA6MTggc2NocmllYiBBbGV4IEdvaW5zOgo+ID4+PiBIaSBDaHJpc3RpYW4sCj4gPj4+Cj4g Pj4+IEkndmUgYmVlbiBsb29raW5nIGludG8gdGhlIERNQS1CVUZzIGV4cG9ydGVkIGZyb20gQU1E R1BVIC8gVFRNLiBXb3VsZAo+ID4+PiB5b3UgbWluZCBnaXZpbmcgc29tZSBpbnB1dCBvbiB0aGlz Pwo+ID4+Pgo+ID4+PiBJIG5vdGljZWQgdGhhdCB5b3VyIGNoYW5nZXMgaW1wbGVtZW50aW5nIHRy YW5zcGFyZW50IGh1Z2UgcGFnZSBzdXBwb3J0Cj4gPj4+IGluIFRUTSBhcmUgYWxsb2NhdGluZyB0 aGVtIGFzIG5vbi1jb21wb3VuZC4gSSB1bmRlcnN0YW5kIHRoYXQgdXNpbmcKPiA+Pj4gbXVsdGlv cmRlciBub24tY29tcG91bmQgcGFnZXMgaXMgY29tbW9uIGluIGRldmljZSBkcml2ZXJzLCBidXQg SSB0aGluawo+ID4+PiB0aGlzIGNhbiBjYXVzZSBhIHByb2JsZW0gd2hlbiB0aGVzZSBwYWdlcyBh cmUgZXhwb3J0ZWQgdG8gb3RoZXIgZHJpdmVycy4KPiA+Pj4KPiA+Pj4gSXQncyBwb3NzaWJsZSBm b3Igb3RoZXIgZHJpdmVycyB0byBhY2Nlc3MgdGhlIERNQS1CVUYncyBwYWdlcyB2aWEKPiA+Pj4g Z2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSgpLCBidXQgd2l0aG91dCBjb250ZXh0IGZyb20gVFRN LCBpdCdzCj4gPj4+IGltcG9zc2libGUgZm9yIHRoZSBpbXBvcnRpbmcgZHJpdmVyIHRvIG1ha2Ug c2Vuc2Ugb2YgdGhlbTsgdGhleSBzaW1wbHkKPiA+Pj4gYXBwZWFyIGFzIGluZGl2aWR1YWwgcGFn ZXMsIHdpdGggb25seSB0aGUgZmlyc3QgcGFnZSBoYXZpbmcgYSBub24temVybwo+ID4+PiByZWZj b3VudC4gTWFraW5nIFRUTSdzIFRIUCBhbGxvY2F0aW9ucyBjb21wb3VuZCBwdXRzIHRoZW0gbW9y ZSBpbiBsaW5lCj4gPj4+IHdpdGggdGhlIHN0YW5kYXJkIGRlZmluaXRpb24gb2YgYSBUSFAsIGFu ZCBhbGxvd3MgRE1BLUJVRi1pbXBvcnRpbmcKPiA+Pj4gZHJpdmVycyB0byBtYWtlIHNlbnNlIG9m IHRoZSBwYWdlcyB3aXRoaW4uCj4gPj4+Cj4gPj4+IEkgd291bGQgbGlrZSB0byBwcm9wb3NlIG1h a2luZyB0aGVzZSBhbGxvY2F0aW9ucyBjb21wb3VuZCwgYnV0IGJhc2VkIG9uCj4gPj4+IHBhdGNo IGhpc3RvcnksIGl0IGxvb2tzIGxpa2UgdGhlIGRlY2lzaW9uIHRvIG1ha2UgdGhlbSBub24tY29t cG91bmQgd2FzCj4gPj4+IGludGVudGlvbmFsLCBhcyB0aGVyZSB3ZXJlIGRpZmZpY3VsdGllcyBm aWd1cmluZyBvdXQgaG93IHRvIG1hcCB0aGVtCj4gPj4+IGludG8gQ1BVIHBhZ2UgdGFibGVzLiBJ IGRpZCBzb21lIGN1cnNvcnkgdGVzdGluZyB3aXRoIGNvbXBvdW5kIFRIUHMsIGFuZAo+ID4+PiBu b3RoaW5nIHNlZW1zIG9idmlvdXNseSBicm9rZW4uIEkgd2FzIGFsc28gYWJsZSB0byBtYXAgY29t cG91bmQgVEhQCj4gPj4+IERNQS1CVUZzIGludG8gdXNlcnNwYWNlIHdpdGhvdXQgaXNzdWUsIGFu ZCBhY2Nlc3MgdGhlaXIgY29udGVudHMuIEFyZQo+ID4+PiB5b3UgYXdhcmUgb2YgYW55IG90aGVy IHBvdGVudGlhbCBjb25zZXF1ZW5jZXM/Cj4gPj4+Cj4gPj4+IENvbW1pdCA1YzQyYzY0ZjdkNTQg KCJkcm0vdHRtOiBmaXggdGhlIGZpeCBmb3IgaHVnZSBjb21wb3VuZCBwYWdlcyIpIHNob3VsZAo+ ID4+PiBwcm9iYWJseSBhbHNvIGJlIHJldmVydGVkIGlmIHRoaXMgaXMgYXBwbGllZC4KPiA+Pj4K PiA+Pj4gVGhhbmtzLAo+ID4+PiBBbGV4Cj4gPj4+Cj4gPj4+IEFsZXggR29pbnMgKDEpOgo+ID4+ PiAgICAgZHJtLXR0bTogQWxsb2NhdGUgY29tcG91bmQgdHJhbnNwYXJlbnQgaHVnZSBwYWdlcwo+ ID4+Pgo+ID4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMgfCA1ICsr LS0tCj4gPj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCj4gPj4+Cj4KCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwg Q29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg== 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=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 8D0AEC4727F for ; Fri, 2 Oct 2020 07:31:24 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 0C6AC2074B for ; Fri, 2 Oct 2020 07:31:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="lC6n1jSw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C6AC2074B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B57BC6E241; Fri, 2 Oct 2020 07:31:21 +0000 (UTC) Received: from mail-oi1-x241.google.com (mail-oi1-x241.google.com [IPv6:2607:f8b0:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 594CC6E241 for ; Fri, 2 Oct 2020 07:31:20 +0000 (UTC) Received: by mail-oi1-x241.google.com with SMTP id x69so391427oia.8 for ; Fri, 02 Oct 2020 00:31:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=FV2kqyJj2HCS5dITMAB2uIW5WIzwJCxSsKqyYxhrIb8=; b=lC6n1jSw4vGEbBk+NzuHmRhWwgQz1I5GTOa2zuJv940Zx1wxEh97+0AE0wc3SK5OYg GRkx1QpyhQzUs7T9uEenrAEt1CqXAY7filBYvuEA4UVnDQfsCIepB9TlDFUZtJJt6th5 z+i698ITBVY0/dTSn4fqVlNnKIt8fSywkSnTE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=FV2kqyJj2HCS5dITMAB2uIW5WIzwJCxSsKqyYxhrIb8=; b=bnfHUFIpV2hWIUMA6O7t4xDU33zjH3d4WQ0OdPsIFG3A+9N3q2IpB6+7/lkqSpuh0c aqVlsWYCoI+XU8lEdwkJcstGWZKTGEiciLsVRXM/FgmUgwuN8fRMquvZaeub4ofkvyM5 Skdrizy14VRHoAXNigKvsMkKtGJls2+/ew5ndNwfvpV3cqUs4WOWI8bEAjLN9W1k/02g E40c+A77XAyfH4EZ8tm4OT/4Ij6JKW9bmxU2kw8H96J2gPJycsnzSU9ok/lNjSJd0TrK 1LNuyiDN/ZB1KZaZP2xJ0DmiLHvxQHFGJ0v2Skw45tK3V9V8GqYSiUZT0dFDQRaBka1x cr1Q== X-Gm-Message-State: AOAM530vv5JqdmwNpUrr01Q9q89PPbtbTiqQHnGJJcOsQPXoZ4MSQL5C wDcPSqxt2K4DWNoMZgIXpoLszJ2nCbdDj2hGYnBHQw== X-Google-Smtp-Source: ABdhPJxSuPhsIR7ozBvleiZGtWRZp5/0o4EsEQMkcZj85SgObTBwKlJDPsHuSNersHwNZqgCIw8aPofYz6agkQnCgd8= X-Received: by 2002:aca:eb49:: with SMTP id j70mr477352oih.101.1601623879554; Fri, 02 Oct 2020 00:31:19 -0700 (PDT) MIME-Version: 1.0 References: <20200930221821.13719-1-agoins@nvidia.com> <4566cf03-1c9e-1626-6c92-7b5fa29d6b75@amd.com> In-Reply-To: From: Daniel Vetter Date: Fri, 2 Oct 2020 09:31:08 +0200 Message-ID: Subject: Re: [PATCH RFC 0/1] drm/ttm: Allocate transparent huge pages without clearing __GFP_COMP To: =?UTF-8?Q?Christian_K=C3=B6nig?= X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alex Goins , John Hubbard , dri-devel , Linux MM , amd-gfx list , Zi Yan Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T24gRnJpLCBPY3QgMiwgMjAyMCBhdCA4OjQxIEFNIENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4KPiBIaSBBbGV4LAo+Cj4gYWRkaW5nIERhbmllbCBh cyB3ZWxsLgo+Cj4gQW0gMDEuMTAuMjAgdW0gMjA6NDUgc2NocmllYiBBbGV4IEdvaW5zOgo+ID4g SGkgQ2hyaXN0aWFuLAo+ID4KPiA+IE9uIFRodSwgMSBPY3QgMjAyMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiA+Cj4gPj4gSGkgQWxleCwKPiA+Pgo+ID4+IGZpcnN0IG9mIGFsbCBhY2Nlc3Np bmcgdGhlIHVuZGVybHlpbmcgcGFnZSBvZiBhbiBleHBvcnRlZCBETUEtYnVmIGlzCj4gPj4gaWxs ZWdhbCEgU28gSSdtIG5vdCAxMDAlIHN1cmUgd2hhdCB5b3UncmUgaW50ZW50aW9ucyBhcmUgaGVy ZSwgcGxlYXNlCj4gPj4gZXhwbGFpbiBmdXJ0aGVyLgo+ID4gV2UgaGF2ZSBzb21lIG1hcHBpbmcg cmVxdWlyZW1lbnRzIHRoYXQgSSB3YXMgaG9waW5nIEkgY291bGQgYWRkcmVzcyBieSBtYXBwaW5n Cj4gPiB0aGVzZSBwYWdlcyBtYW51YWxseS4KPiA+Cj4gPiBBcmUgeW91IHN1cmUgdGhhdCBpdCdz IGlsbGVnYWwgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIHBhZ2VzIG9mIGFuIGV4cG9ydGVkCj4g PiBETUEtQlVGPwo+Cj4geWVzLCBJJ20gMTAwJSBzdXJlIG9mIHRoYXQuIFRoaXMgd2FzIGRpc2N1 c3NlZCBtdWx0aXBsZSB0aW1lcyBub3cgb24gdGhlCj4gbWFpbGluZyBsaXN0Lgo+Cj4gPiBUaGVy ZSBhcHBlYXJzIHRvIGJlIHF1aXRlIGEgZmV3IHVzYWdlcyBvZiB0aGlzIGFscmVhZHkuIFNlZSB0 aGUgdXNhZ2UKPiA+IG9mIGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKCkgaW4gdmdl bSwgdmttcywgbXNtLCB4ZW4sIGFuZCBldG5hdml2Lgo+ID4gZHJtX2dlbV9wcmltZV9pbXBvcnRf ZGV2KCkgdXNlcyBkcml2ZXItPmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoKSB3aGVuCj4gPiBp bXBvcnRpbmcgYSBETUEtQlVGIGZyb20gYW5vdGhlciBkcml2ZXIsIGFuZCB0aGUgbGlzdGVkIGRy aXZlcnMgdGhlbiBleHRyYWN0IHRoZQo+ID4gcGFnZXMgZnJvbSB0aGUgZ2l2ZW4gU0dUIHVzaW5n IGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKCkuIFRoZXNlIHBhZ2VzCj4gPiBjYW4g dGhlbiBiZSBtYXBwZWQgYW5kIGZhdWx0ZWQgaW4uCj4KPiBObywgZXhhY3RseSB0aGF0IGRvZXNu J3Qgd29yayBjb3JyZWN0bHkuCj4KPiBZb3UgYXJlIGNvcnJ1cHRpbmcgaW50ZXJuYWwgc3RhdGUg aW4gc3RydWN0IHBhZ2Ugd2hpbGUgZG9pbmcgc28gYW5kIHJpc2sKPiB0aGF0IHVzZXJzcGFjZSBp cyBhY2Nlc3NpbmcgZnJlZWQgdXAgbWVtb3J5Lgo+Cj4gV2UgcmVhbGx5IG5lZWQgdG8gZmluZCBh IHdheSB0byBmaXggdGhlIGZldyBkcml2ZXJzIGFscmVhZHkgZG9pbmcgdGhpcy4KClllYWggdGhl IGRyaXZlcnMgZG9pbmcgdGhpcyB3ZXJlIG1lcmdlZCB3aXRoIGV2ZXJ5b25lIGF3YXJlIHRoYXQg aXQncwphIGJhZCB0cmljaywgYnV0IDEwIHllYXJzIGFnbyB3ZSBoYWQgbm90aGluZywgbm90IGV2 ZW4gdXNlcnNwYWNlIGZvcgptdWx0aS1ncHUsIHNvIHRoZXJlIG5lZWRlZCB0byBiZSBzb21ldGhp bmcgdG8gZ2V0IHRoZSB0aGluZyBvZmYgdGhlCmdyb3VuZC4gQnV0IGl0IHdhcyBhIGJhZCBpZGVh IGJhY2sgdGhlbiwgYW5kIGl0J3Mgc3RpbGwgYSBiYWQgaWRlYSBub3cKKGFuZCBub3cgd2UgZG8g aGF2ZSB0aGUgZWNvc3lzdGVtIG9mZiB0aGUgZ3JvdW5kLCBzbyB0aGVyZSdzIHJlYWxseQpub3Qg ZXhjdXNlIGZvciBzaG9ydGN1dHMpLgotRGFuaWVsCgo+ID4gU2VlIGNvbW1pdCBhZjMzYTkxOTBk MDIgKCdkcm0vdmdlbTogRW5hYmxlIGRtYWJ1ZiBpbXBvcnQgaW50ZXJmYWNlcycpLiBBZnRlcgo+ ID4gaW1wb3J0aW5nIHRoZSBwYWdlcyBmcm9tIHRoZSBTR1QsIHZnZW0gY2FuIGZhdWx0IHRoZW0g aW4sIHRha2luZyBhIHJlZmNvdW50IHdpdGgKPiA+IGdldF9wYWdlKCkgZmlyc3QuIGdldF9wYWdl KCkgdGhyb3dzIGEgQlVHIGlmIHRoZSByZWZjb3VudCBpcyB6ZXJvLCB3aGljaCBpdCB3aWxsCj4g PiBoaXQgb24gZWFjaCBvZiB0aGUgJ3RhaWwnIHBhZ2VzIGZyb20gVFRNIFRIUCBhbGxvY2F0aW9u cy4KPiA+Cj4gPiBBbGwgb2YgdGhpcyBjdXJyZW50bHkgd29ya3MgZmluZSB3aXRoIFRUTSBETUEt QlVGcyB3aGVuIHRoZSBrZXJuZWwgaXMgYnVpbHQgd2l0aAo+ID4gIUNPTkZJR19UUkFOU1BBUkVO VF9IVUdFUEFHRS4gSG93ZXZlciwgJ2VjaG8gbmV2ZXIgPgo+ID4gL3N5cy9rZXJuZWwvbW0vdHJh bnNwYXJlbnRfaHVnZXBhZ2UvZW5hYmxlZCcgZG9lc24ndCBjaGFuZ2UgaG93IFRUTSBhbGxvY2F0 ZXMKPiA+IHBhZ2VzLgo+Cj4gWW91IG5lZWQgdG8gcmVkaXJlY3QgdGhlIG1hcHBpbmcgdG8gZG1h X2J1Zl9tbWFwKCkgaW5zdGVhZC4KPgo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+Cj4gPgo+ID4+ IFRoZW4gdGhlIHJlYXNvbiBmb3IgVFRNIG5vdCB1c2luZyBjb21wb3VuZCBwYWdlcyBpcyB0aGF0 IHdlIGNhbid0Cj4gPj4gZ3VhcmFudGVlIHRoYXQgdGhleSBhcmUgbWFwcGVkIGFzIGEgd2hvbGUg dG8gdXNlcnNwYWNlLgo+ID4+Cj4gPj4gVGhlIHJlc3VsdCBpcyB0aGF0IHRoZSBrZXJuZWwgc29t ZXRpbWVzIHRyaWVkIHRvIGRlLWNvbXBvdW5kIHRoZW0gd2hpY2gKPiA+PiBjcmVhdGVkIGEgYnVu Y2ggb2YgcHJvYmxlbXMuCj4gPj4KPiA+PiBTbyB5ZXMgdGhpcyBpcyBjb21wbGV0ZWx5IGludGVu dGlvbmFsLgo+ID4gVW5kZXJzdG9vZCwgSSBmaWd1cmVkIHNvbWV0aGluZyBsaWtlIHRoYXQgd2Fz IHRoZSBjYXNlLCBzbyBJIHdhbnRlZCB0byBnZXQgeW91cgo+ID4gaW5wdXQgZmlyc3QuIERvIHlv dSBrbm93IHdoYXQgdGhlIHByb2JsZW1zIHdlcmUsIGV4YWN0bHk/IFByYWN0aWNhbCBpc3N1ZXMK PiA+IGFzaWRlLCBpdCBzZWVtcyBzdHJhbmdlIHRvIGNhbGwgc29tZXRoaW5nIGEgdHJhbnNwYXJl bnQgaHVnZSBwYWdlIGlmIGl0J3MKPiA+IG5vbi1jb21wb3VuZC4KPiA+Cj4gPiBCZXNpZGVzIG1h a2luZyB0aGVzZSBwYWdlcyBjb21wb3VuZCwgd291bGQgaXQgYmUgcmVhc29uYWJsZSB0byBzcGxp dCB0aGVtIGJlZm9yZQo+ID4gc2hhcmluZyB0aGVtLCBpbiBlLmcuIGFtZGdwdV9kbWFfYnVmX21h cCAoYW5kIGluIG90aGVyIGRyaXZlcnMgdGhhdCB1c2UgVFRNKT8KPiA+IFRoYXQncyB3aGVyZSBp dCdzIHN1cHBvc2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzaGFyZWQgRE1BLUJVRiBpcyBhY2Nl c3NpYmxlIGJ5Cj4gPiB0aGUgdGFyZ2V0IGRldmljZS4KPiA+Cj4gPiBUaGFua3MsCj4gPiBBbGV4 Cj4gPgo+ID4+IFJlZ2FyZHMsCj4gPj4gQ2hyaXN0aWFuLgo+ID4+Cj4gPj4gQW0gMDEuMTAuMjAg dW0gMDA6MTggc2NocmllYiBBbGV4IEdvaW5zOgo+ID4+PiBIaSBDaHJpc3RpYW4sCj4gPj4+Cj4g Pj4+IEkndmUgYmVlbiBsb29raW5nIGludG8gdGhlIERNQS1CVUZzIGV4cG9ydGVkIGZyb20gQU1E R1BVIC8gVFRNLiBXb3VsZAo+ID4+PiB5b3UgbWluZCBnaXZpbmcgc29tZSBpbnB1dCBvbiB0aGlz Pwo+ID4+Pgo+ID4+PiBJIG5vdGljZWQgdGhhdCB5b3VyIGNoYW5nZXMgaW1wbGVtZW50aW5nIHRy YW5zcGFyZW50IGh1Z2UgcGFnZSBzdXBwb3J0Cj4gPj4+IGluIFRUTSBhcmUgYWxsb2NhdGluZyB0 aGVtIGFzIG5vbi1jb21wb3VuZC4gSSB1bmRlcnN0YW5kIHRoYXQgdXNpbmcKPiA+Pj4gbXVsdGlv cmRlciBub24tY29tcG91bmQgcGFnZXMgaXMgY29tbW9uIGluIGRldmljZSBkcml2ZXJzLCBidXQg SSB0aGluawo+ID4+PiB0aGlzIGNhbiBjYXVzZSBhIHByb2JsZW0gd2hlbiB0aGVzZSBwYWdlcyBh cmUgZXhwb3J0ZWQgdG8gb3RoZXIgZHJpdmVycy4KPiA+Pj4KPiA+Pj4gSXQncyBwb3NzaWJsZSBm b3Igb3RoZXIgZHJpdmVycyB0byBhY2Nlc3MgdGhlIERNQS1CVUYncyBwYWdlcyB2aWEKPiA+Pj4g Z2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSgpLCBidXQgd2l0aG91dCBjb250ZXh0IGZyb20gVFRN LCBpdCdzCj4gPj4+IGltcG9zc2libGUgZm9yIHRoZSBpbXBvcnRpbmcgZHJpdmVyIHRvIG1ha2Ug c2Vuc2Ugb2YgdGhlbTsgdGhleSBzaW1wbHkKPiA+Pj4gYXBwZWFyIGFzIGluZGl2aWR1YWwgcGFn ZXMsIHdpdGggb25seSB0aGUgZmlyc3QgcGFnZSBoYXZpbmcgYSBub24temVybwo+ID4+PiByZWZj b3VudC4gTWFraW5nIFRUTSdzIFRIUCBhbGxvY2F0aW9ucyBjb21wb3VuZCBwdXRzIHRoZW0gbW9y ZSBpbiBsaW5lCj4gPj4+IHdpdGggdGhlIHN0YW5kYXJkIGRlZmluaXRpb24gb2YgYSBUSFAsIGFu ZCBhbGxvd3MgRE1BLUJVRi1pbXBvcnRpbmcKPiA+Pj4gZHJpdmVycyB0byBtYWtlIHNlbnNlIG9m IHRoZSBwYWdlcyB3aXRoaW4uCj4gPj4+Cj4gPj4+IEkgd291bGQgbGlrZSB0byBwcm9wb3NlIG1h a2luZyB0aGVzZSBhbGxvY2F0aW9ucyBjb21wb3VuZCwgYnV0IGJhc2VkIG9uCj4gPj4+IHBhdGNo IGhpc3RvcnksIGl0IGxvb2tzIGxpa2UgdGhlIGRlY2lzaW9uIHRvIG1ha2UgdGhlbSBub24tY29t cG91bmQgd2FzCj4gPj4+IGludGVudGlvbmFsLCBhcyB0aGVyZSB3ZXJlIGRpZmZpY3VsdGllcyBm aWd1cmluZyBvdXQgaG93IHRvIG1hcCB0aGVtCj4gPj4+IGludG8gQ1BVIHBhZ2UgdGFibGVzLiBJ IGRpZCBzb21lIGN1cnNvcnkgdGVzdGluZyB3aXRoIGNvbXBvdW5kIFRIUHMsIGFuZAo+ID4+PiBu b3RoaW5nIHNlZW1zIG9idmlvdXNseSBicm9rZW4uIEkgd2FzIGFsc28gYWJsZSB0byBtYXAgY29t cG91bmQgVEhQCj4gPj4+IERNQS1CVUZzIGludG8gdXNlcnNwYWNlIHdpdGhvdXQgaXNzdWUsIGFu ZCBhY2Nlc3MgdGhlaXIgY29udGVudHMuIEFyZQo+ID4+PiB5b3UgYXdhcmUgb2YgYW55IG90aGVy IHBvdGVudGlhbCBjb25zZXF1ZW5jZXM/Cj4gPj4+Cj4gPj4+IENvbW1pdCA1YzQyYzY0ZjdkNTQg KCJkcm0vdHRtOiBmaXggdGhlIGZpeCBmb3IgaHVnZSBjb21wb3VuZCBwYWdlcyIpIHNob3VsZAo+ ID4+PiBwcm9iYWJseSBhbHNvIGJlIHJldmVydGVkIGlmIHRoaXMgaXMgYXBwbGllZC4KPiA+Pj4K PiA+Pj4gVGhhbmtzLAo+ID4+PiBBbGV4Cj4gPj4+Cj4gPj4+IEFsZXggR29pbnMgKDEpOgo+ID4+ PiAgICAgZHJtLXR0bTogQWxsb2NhdGUgY29tcG91bmQgdHJhbnNwYXJlbnQgaHVnZSBwYWdlcwo+ ID4+Pgo+ID4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMgfCA1ICsr LS0tCj4gPj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCj4gPj4+Cj4KCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwg Q29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==