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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 57317C433F5 for ; Wed, 18 May 2022 02:09:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:References: Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=foO9bKjopxMLceVmauyvFSyhuTc3TUtdY1x4VweGR5c=; b=02woqGBZ9UnA2K+2v7O+RBb/64 +sG48XQcTprZffyGnSHFHpe2/U7AdcrmkSLDlbKwxL/LNjXkaPOXq08HqY0EJq2j7c236G0m3ey5/ ER7C5KnJAWzujF5mZ/wI9jGXx2IWlcNGgzQwrhSejWUY0ZiPGlr3tJ+Ur8YWHlpgy0JZaP5S4C5Xz rdhpej8CTxuP8x8M6UH/NC7r4xZwTKHVIuUkt8p3odL/hSFnNN3iqkbSODszkHiaGpeIm97BJiSXS q0eaa1DyzKcT8nFQ+ZxoIZq0dAN4zdT76e4LyhsNGzY+54HbEhIHGHRTmQoOSnnJRi800M5MkUER2 uIdMcbAA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nr96l-00Gfnl-NQ; Wed, 18 May 2022 02:08:15 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nr96c-00GfmE-Bw for linux-arm-kernel@bombadil.infradead.org; Wed, 18 May 2022 02:08:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: Cc:To:From:Subject:References:Mime-Version:Message-Id:In-Reply-To:Date:Sender :Reply-To:Content-ID:Content-Description; bh=oDRmYIZkRXCw47tYWNpQTMfPwHaD4jUBbPvynchhw84=; b=OjtwYref1Vh4WF19GD2VRFnhOL FLOQpLUjD/fpeTaYg0LmAdbc/AwAJseAPHc4x0FkLU5fg9qu+JSQi8fZN5Da9ojw5/QQ+7nbT5MTq u01SvyUWLJCUO9kr0L5eTz3MtR8TAfl1TbxLFhcjzyjTPafcaxb8d8iQ0/NIM25PMvTdXPK1QNkrV 4hNmlyM3YkeqqUldvoDvPx1C+0VhoMCtJLMyUgiU8KLoTr4FlSwWY6p+ILPeVUQWOQh6z4x/hxY7K STHuWhVG2SuEjYvl7GHCBWRA/h1lYYnRaDcAfwIN6TsxgGhiIYi2AojzD0X1EN2LozcfWSXiKUJP9 wCw5M0aQ==; Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by casper.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nr8mS-00BKyc-H7 for linux-arm-kernel@lists.infradead.org; Wed, 18 May 2022 01:47:18 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id y17-20020a258611000000b0064dd2e4eeb5so687035ybk.7 for ; Tue, 17 May 2022 18:47:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=oDRmYIZkRXCw47tYWNpQTMfPwHaD4jUBbPvynchhw84=; b=c+DuDWogV3HUcoWs4xOcKlCpTX2mcy0Y2GE+VRTwOZ3IGxptGhK3wtyVpZ1KZLVr6G ubDmscCXwFxrBzjkr/Ygt5cBLoClV4EBSwQEBVS7PbHQXSZE+oIoBG4OAKfluE+ysBVt IJvt0Raa+iq69htrMLP/mTP2Lq3ABUm5XGZOh82NrJkfoQYNgRl1dVm/cC2va7Urmw42 umm3BQS2hZ9k2lfKUT/xHL1mM4cA0iBJeAI8n7vemQdx+oQ7+0FGE4Uybg74fyZz8H+b Cjj95J8cDULNDZ8Di11h3iq+2csNPQIlyGVPIPuHLJLyqGYSL8RH2MmDVMhOvVtfFnji JPdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=oDRmYIZkRXCw47tYWNpQTMfPwHaD4jUBbPvynchhw84=; b=mliKiweUKwSLxyVk+1Tq/pVcLulULPUWKugVX1YXMG05iY4UkcxOQAHN9RvGYduLdK V3g8rovZYbus8UdghstSZEdqHmGy4xBqig7BwK3vubAkPQ7bp0DxSjujjjC6xR+GB6Pv O0JJ9gGty/qPEjCJIP1Xa13h2mRbHE8d0qF1Y46rkveWxCNa6Sw/9ryFWK4gfSkY4IXW znMWpEClQlM0N4F64aHBM/8DORQSQcfIFpklD35rgBEDvyP7LlQ9bhcuI38oXUU0G19b SWyDePguKxf6NoSXgp+6xWzoFhGJX82JzFzTbW2x+ZhF58adwWUixUK2KNTFk1gPl+yj uG2w== X-Gm-Message-State: AOAM532HLQLaxjXazCM0l25SIbtXmxcsFaIxDu9IaPZsDNMc+RXQYM3j /ZxUtW7hXxogD7g0MxSRsb7pdR73xMg= X-Google-Smtp-Source: ABdhPJy5LKbybCArJ3J0UcjPW1XS/7cnnazrh0shp3SXLKG8Hnk85hqzn3x0uDIfq5b0e31ZBFpJzzd/I1Q= X-Received: from yuzhao.bld.corp.google.com ([2620:15c:183:200:f7bc:90c9:d86e:4ea8]) (user=yuzhao job=sendgmr) by 2002:a25:9f86:0:b0:64e:238e:9a87 with SMTP id u6-20020a259f86000000b0064e238e9a87mr1178014ybq.208.1652838434145; Tue, 17 May 2022 18:47:14 -0700 (PDT) Date: Tue, 17 May 2022 19:46:33 -0600 In-Reply-To: <20220518014632.922072-1-yuzhao@google.com> Message-Id: <20220518014632.922072-15-yuzhao@google.com> Mime-Version: 1.0 References: <20220518014632.922072-1-yuzhao@google.com> X-Mailer: git-send-email 2.36.0.550.gb090851708-goog Subject: [PATCH v11 14/14] mm: multi-gen LRU: design doc From: Yu Zhao To: Andrew Morton , linux-mm@kvack.org Cc: Andi Kleen , Aneesh Kumar , Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Peter Zijlstra , Tejun Heo , Vlastimil Babka , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, page-reclaim@google.com, Yu Zhao , Brian Geffon , Jan Alexander Steffens , Oleksandr Natalenko , Steven Barrett , Suleiman Souhlal , Daniel Byrne , Donald Carr , "=?UTF-8?q?Holger=20Hoffst=C3=A4tte?=" , Konstantin Kharlamov , Shuang Zhai , Sofia Trinh , Vaibhav Jain X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220518_024716_592126_9D537E69 X-CRM114-Status: GOOD ( 17.58 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIGEgZGVzaWduIGRvYy4KClNpZ25lZC1vZmYtYnk6IFl1IFpoYW8gPHl1emhhb0Bnb29nbGUu Y29tPgpBY2tlZC1ieTogQnJpYW4gR2VmZm9uIDxiZ2VmZm9uQGdvb2dsZS5jb20+CkFja2VkLWJ5 OiBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxoZWZ0aWdAYXJjaGxpbnV4Lm9yZz4K QWNrZWQtYnk6IE9sZWtzYW5kciBOYXRhbGVua28gPG9sZWtzYW5kckBuYXRhbGVua28ubmFtZT4K QWNrZWQtYnk6IFN0ZXZlbiBCYXJyZXR0IDxzdGV2ZW5AbGlxdW9yaXgubmV0PgpBY2tlZC1ieTog U3VsZWltYW4gU291aGxhbCA8c3VsZWltYW5AZ29vZ2xlLmNvbT4KVGVzdGVkLWJ5OiBEYW5pZWwg QnlybmUgPGRqYnlybmVAbXR1LmVkdT4KVGVzdGVkLWJ5OiBEb25hbGQgQ2FyciA8ZEBjaGFvcy1y ZWlucy5jb20+ClRlc3RlZC1ieTogSG9sZ2VyIEhvZmZzdMOkdHRlIDxob2xnZXJAYXBwbGllZC1h c3luY2hyb255LmNvbT4KVGVzdGVkLWJ5OiBLb25zdGFudGluIEtoYXJsYW1vdiA8SGktQW5nZWxA eWFuZGV4LnJ1PgpUZXN0ZWQtYnk6IFNodWFuZyBaaGFpIDxzemhhaTJAY3Mucm9jaGVzdGVyLmVk dT4KVGVzdGVkLWJ5OiBTb2ZpYSBUcmluaCA8c29maWEudHJpbmhAZWRpLndvcmtzPgpUZXN0ZWQt Ynk6IFZhaWJoYXYgSmFpbiA8dmFpYmhhdkBsaW51eC5pYm0uY29tPgotLS0KIERvY3VtZW50YXRp b24vdm0vaW5kZXgucnN0ICAgICAgICB8ICAgMSArCiBEb2N1bWVudGF0aW9uL3ZtL211bHRpZ2Vu X2xydS5yc3QgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNo YW5nZWQsIDE2MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlv bi92bS9tdWx0aWdlbl9scnUucnN0CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92bS9pbmRl eC5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZtL2luZGV4LnJzdAppbmRleCA0NDM2NWM0NTc0YTMuLmI0 ODQzNDMwMDIyNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92bS9pbmRleC5yc3QKKysrIGIv RG9jdW1lbnRhdGlvbi92bS9pbmRleC5yc3QKQEAgLTI1LDYgKzI1LDcgQEAgYWxnb3JpdGhtcy4g IElmIHlvdSBhcmUgbG9va2luZyBmb3IgYWR2aWNlIG9uIHNpbXBseSBhbGxvY2F0aW5nIG1lbW9y eSwgc2VlIHRoZQogICAga3NtCiAgICBtZW1vcnktbW9kZWwKICAgIG1tdV9ub3RpZmllcgorICAg bXVsdGlnZW5fbHJ1CiAgICBudW1hCiAgICBvdmVyY29tbWl0LWFjY291bnRpbmcKICAgIHBhZ2Vf bWlncmF0aW9uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZtL211bHRpZ2VuX2xydS5yc3Qg Yi9Eb2N1bWVudGF0aW9uL3ZtL211bHRpZ2VuX2xydS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5iYzhlYWYxYjk1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1 bWVudGF0aW9uL3ZtL211bHRpZ2VuX2xydS5yc3QKQEAgLTAsMCArMSwxNTkgQEAKKy4uIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisKKz09PT09PT09PT09PT0KK011bHRpLUdlbiBM UlUKKz09PT09PT09PT09PT0KK1RoZSBtdWx0aS1nZW4gTFJVIGlzIGFuIGFsdGVybmF0aXZlIExS VSBpbXBsZW1lbnRhdGlvbiB0aGF0IG9wdGltaXplcworcGFnZSByZWNsYWltIGFuZCBpbXByb3Zl cyBwZXJmb3JtYW5jZSB1bmRlciBtZW1vcnkgcHJlc3N1cmUuIFBhZ2UKK3JlY2xhaW0gZGVjaWRl cyB0aGUga2VybmVsJ3MgY2FjaGluZyBwb2xpY3kgYW5kIGFiaWxpdHkgdG8gb3ZlcmNvbW1pdAor bWVtb3J5LiBJdCBkaXJlY3RseSBpbXBhY3RzIHRoZSBrc3dhcGQgQ1BVIHVzYWdlIGFuZCBSQU0g ZWZmaWNpZW5jeS4KKworRGVzaWduIG92ZXJ2aWV3Cis9PT09PT09PT09PT09PT0KK09iamVjdGl2 ZXMKKy0tLS0tLS0tLS0KK1RoZSBkZXNpZ24gb2JqZWN0aXZlcyBhcmU6CisKKyogR29vZCByZXBy ZXNlbnRhdGlvbiBvZiBhY2Nlc3MgcmVjZW5jeQorKiBUcnkgdG8gcHJvZml0IGZyb20gc3BhdGlh bCBsb2NhbGl0eQorKiBGYXN0IHBhdGhzIHRvIG1ha2Ugb2J2aW91cyBjaG9pY2VzCisqIFNpbXBs ZSBzZWxmLWNvcnJlY3RpbmcgaGV1cmlzdGljcworCitUaGUgcmVwcmVzZW50YXRpb24gb2YgYWNj ZXNzIHJlY2VuY3kgaXMgYXQgdGhlIGNvcmUgb2YgYWxsIExSVQoraW1wbGVtZW50YXRpb25zLiBJ biB0aGUgbXVsdGktZ2VuIExSVSwgZWFjaCBnZW5lcmF0aW9uIHJlcHJlc2VudHMgYQorZ3JvdXAg b2YgcGFnZXMgd2l0aCBzaW1pbGFyIGFjY2VzcyByZWNlbmN5LiBHZW5lcmF0aW9ucyBlc3RhYmxp c2ggYQorKHRpbWUtYmFzZWQpIGNvbW1vbiBmcmFtZSBvZiByZWZlcmVuY2UgYW5kIHRoZXJlZm9y ZSBoZWxwIG1ha2UgYmV0dGVyCitjaG9pY2VzLCBlLmcuLCBiZXR3ZWVuIGRpZmZlcmVudCBtZW1j Z3Mgb24gYSBjb21wdXRlciBvciBkaWZmZXJlbnQKK2NvbXB1dGVycyBpbiBhIGRhdGEgY2VudGVy IChmb3Igam9iIHNjaGVkdWxpbmcpLgorCitFeHBsb2l0aW5nIHNwYXRpYWwgbG9jYWxpdHkgaW1w cm92ZXMgZWZmaWNpZW5jeSB3aGVuIGdhdGhlcmluZyB0aGUKK2FjY2Vzc2VkIGJpdC4gQSBybWFw IHdhbGsgdGFyZ2V0cyBhIHNpbmdsZSBwYWdlIGFuZCBkb2VzIG5vdCB0cnkgdG8KK3Byb2ZpdCBm cm9tIGRpc2NvdmVyaW5nIGEgeW91bmcgUFRFLiBBIHBhZ2UgdGFibGUgd2FsayBjYW4gc3dlZXAg YWxsCit0aGUgeW91bmcgUFRFcyBpbiBhbiBhZGRyZXNzIHNwYWNlLCBidXQgdGhlIGFkZHJlc3Mg c3BhY2UgY2FuIGJlIHRvbworc3BhcnNlIHRvIG1ha2UgYSBwcm9maXQuIFRoZSBrZXkgaXMgdG8g b3B0aW1pemUgYm90aCBtZXRob2RzIGFuZCB1c2UKK3RoZW0gaW4gY29tYmluYXRpb24uCisKK0Zh c3QgcGF0aHMgcmVkdWNlIGNvZGUgY29tcGxleGl0eSBhbmQgcnVudGltZSBvdmVyaGVhZC4gVW5t YXBwZWQgcGFnZXMKK2RvIG5vdCByZXF1aXJlIFRMQiBmbHVzaGVzOyBjbGVhbiBwYWdlcyBkbyBu b3QgcmVxdWlyZSB3cml0ZWJhY2suCitUaGVzZSBmYWN0cyBhcmUgb25seSBoZWxwZnVsIHdoZW4g b3RoZXIgY29uZGl0aW9ucywgZS5nLiwgYWNjZXNzCityZWNlbmN5LCBhcmUgc2ltaWxhci4gV2l0 aCBnZW5lcmF0aW9ucyBhcyBhIGNvbW1vbiBmcmFtZSBvZiByZWZlcmVuY2UsCithZGRpdGlvbmFs IGZhY3RvcnMgc3RhbmQgb3V0LiBCdXQgb2J2aW91cyBjaG9pY2VzIG1pZ2h0IG5vdCBiZSBnb29k CitjaG9pY2VzOyB0aHVzIHNlbGYtY29ycmVjdGlvbiBpcyBuZWNlc3NhcnkuCisKK1RoZSBiZW5l Zml0cyBvZiBzaW1wbGUgc2VsZi1jb3JyZWN0aW5nIGhldXJpc3RpY3MgYXJlIHNlbGYtZXZpZGVu dC4KK0FnYWluLCB3aXRoIGdlbmVyYXRpb25zIGFzIGEgY29tbW9uIGZyYW1lIG9mIHJlZmVyZW5j ZSwgdGhpcyBiZWNvbWVzCithdHRhaW5hYmxlLiBTcGVjaWZpY2FsbHksIHBhZ2VzIGluIHRoZSBz YW1lIGdlbmVyYXRpb24gY2FuIGJlCitjYXRlZ29yaXplZCBiYXNlZCBvbiBhZGRpdGlvbmFsIGZh Y3RvcnMsIGFuZCBhIGZlZWRiYWNrIGxvb3AgY2FuCitzdGF0aXN0aWNhbGx5IGNvbXBhcmUgdGhl IHJlZmF1bHQgcGVyY2VudGFnZXMgYWNyb3NzIHRob3NlIGNhdGVnb3JpZXMKK2FuZCBpbmZlciB3 aGljaCBvZiB0aGVtIGFyZSBiZXR0ZXIgY2hvaWNlcy4KKworQXNzdW1wdGlvbnMKKy0tLS0tLS0t LS0tCitUaGUgcHJvdGVjdGlvbiBvZiBob3QgcGFnZXMgYW5kIHRoZSBzZWxlY3Rpb24gb2YgY29s ZCBwYWdlcyBhcmUgYmFzZWQKK29uIHBhZ2UgYWNjZXNzIGNoYW5uZWxzIGFuZCBwYXR0ZXJucy4g VGhlcmUgYXJlIHR3byBhY2Nlc3MgY2hhbm5lbHM6CisKKyogQWNjZXNzZXMgdGhyb3VnaCBwYWdl IHRhYmxlcworKiBBY2Nlc3NlcyB0aHJvdWdoIGZpbGUgZGVzY3JpcHRvcnMKKworVGhlIHByb3Rl Y3Rpb24gb2YgdGhlIGZvcm1lciBjaGFubmVsIGlzIGJ5IGRlc2lnbiBzdHJvbmdlciBiZWNhdXNl OgorCisxLiBUaGUgdW5jZXJ0YWludHkgaW4gZGV0ZXJtaW5pbmcgdGhlIGFjY2VzcyBwYXR0ZXJu cyBvZiB0aGUgZm9ybWVyCisgICBjaGFubmVsIGlzIGhpZ2hlciBkdWUgdG8gdGhlIGFwcHJveGlt YXRpb24gb2YgdGhlIGFjY2Vzc2VkIGJpdC4KKzIuIFRoZSBjb3N0IG9mIGV2aWN0aW5nIHRoZSBm b3JtZXIgY2hhbm5lbCBpcyBoaWdoZXIgZHVlIHRvIHRoZSBUTEIKKyAgIGZsdXNoZXMgcmVxdWly ZWQgYW5kIHRoZSBsaWtlbGlob29kIG9mIGVuY291bnRlcmluZyB0aGUgZGlydHkgYml0LgorMy4g VGhlIHBlbmFsdHkgb2YgdW5kZXJwcm90ZWN0aW5nIHRoZSBmb3JtZXIgY2hhbm5lbCBpcyBoaWdo ZXIgYmVjYXVzZQorICAgYXBwbGljYXRpb25zIHVzdWFsbHkgZG8gbm90IHByZXBhcmUgdGhlbXNl bHZlcyBmb3IgbWFqb3IgcGFnZQorICAgZmF1bHRzIGxpa2UgdGhleSBkbyBmb3IgYmxvY2tlZCBJ L08uIEUuZy4sIEdVSSBhcHBsaWNhdGlvbnMKKyAgIGNvbW1vbmx5IHVzZSBkZWRpY2F0ZWQgSS9P IHRocmVhZHMgdG8gYXZvaWQgYmxvY2tpbmcgcmVuZGVyaW5nCisgICB0aHJlYWRzLgorCitUaGVy ZSBhcmUgYWxzbyB0d28gYWNjZXNzIHBhdHRlcm5zOgorCisqIEFjY2Vzc2VzIGV4aGliaXRpbmcg dGVtcG9yYWwgbG9jYWxpdHkKKyogQWNjZXNzZXMgbm90IGV4aGliaXRpbmcgdGVtcG9yYWwgbG9j YWxpdHkKKworRm9yIHRoZSByZWFzb25zIGxpc3RlZCBhYm92ZSwgdGhlIGZvcm1lciBjaGFubmVs IGlzIGFzc3VtZWQgdG8gZm9sbG93Cit0aGUgZm9ybWVyIHBhdHRlcm4gdW5sZXNzIGBgVk1fU0VR X1JFQURgYCBvciBgYFZNX1JBTkRfUkVBRGBgIGlzCitwcmVzZW50LCBhbmQgdGhlIGxhdHRlciBj aGFubmVsIGlzIGFzc3VtZWQgdG8gZm9sbG93IHRoZSBsYXR0ZXIKK3BhdHRlcm4gdW5sZXNzIG91 dGx5aW5nIHJlZmF1bHRzIGhhdmUgYmVlbiBvYnNlcnZlZC4KKworV29ya2Zsb3cgb3ZlcnZpZXcK Kz09PT09PT09PT09PT09PT09CitFdmljdGFibGUgcGFnZXMgYXJlIGRpdmlkZWQgaW50byBtdWx0 aXBsZSBnZW5lcmF0aW9ucyBmb3IgZWFjaAorYGBscnV2ZWNgYC4gVGhlIHlvdW5nZXN0IGdlbmVy YXRpb24gbnVtYmVyIGlzIHN0b3JlZCBpbgorYGBscnVnZW4tPm1heF9zZXFgYCBmb3IgYm90aCBh bm9uIGFuZCBmaWxlIHR5cGVzIGFzIHRoZXkgYXJlIGFnZWQgb24KK2FuIGVxdWFsIGZvb3Rpbmcu IFRoZSBvbGRlc3QgZ2VuZXJhdGlvbiBudW1iZXJzIGFyZSBzdG9yZWQgaW4KK2BgbHJ1Z2VuLT5t aW5fc2VxW11gYCBzZXBhcmF0ZWx5IGZvciBhbm9uIGFuZCBmaWxlIHR5cGVzIGFzIGNsZWFuIGZp bGUKK3BhZ2VzIGNhbiBiZSBldmljdGVkIHJlZ2FyZGxlc3Mgb2Ygc3dhcCBjb25zdHJhaW50cy4g VGhlc2UgdGhyZWUKK3ZhcmlhYmxlcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLgorCitH ZW5lcmF0aW9uIG51bWJlcnMgYXJlIHRydW5jYXRlZCBpbnRvIGBgb3JkZXJfYmFzZV8yKE1BWF9O Ul9HRU5TKzEpYGAKK2JpdHMgaW4gb3JkZXIgdG8gZml0IGludG8gdGhlIGdlbiBjb3VudGVyIGlu IGBgZm9saW8tPmZsYWdzYGAuIEVhY2gKK3RydW5jYXRlZCBnZW5lcmF0aW9uIG51bWJlciBpcyBh biBpbmRleCB0byBgYGxydWdlbi0+bGlzdHNbXWBgLiBUaGUKK3NsaWRpbmcgd2luZG93IHRlY2hu aXF1ZSBpcyB1c2VkIHRvIHRyYWNrIGF0IGxlYXN0IGBgTUlOX05SX0dFTlNgYCBhbmQKK2F0IG1v c3QgYGBNQVhfTlJfR0VOU2BgIGdlbmVyYXRpb25zLiBUaGUgZ2VuIGNvdW50ZXIgc3RvcmVzIGEg dmFsdWUKK3dpdGhpbiBgYFsxLCBNQVhfTlJfR0VOU11gYCB3aGlsZSBhIHBhZ2UgaXMgb24gb25l IG9mCitgYGxydWdlbi0+bGlzdHNbXWBgOyBvdGhlcndpc2UgaXQgc3RvcmVzIHplcm8uCisKK0Vh Y2ggZ2VuZXJhdGlvbiBpcyBkaXZpZGVkIGludG8gbXVsdGlwbGUgdGllcnMuIFRpZXJzIHJlcHJl c2VudAorZGlmZmVyZW50IHJhbmdlcyBvZiBudW1iZXJzIG9mIGFjY2Vzc2VzIHRocm91Z2ggZmls ZSBkZXNjcmlwdG9ycy4gQQorcGFnZSBhY2Nlc3NlZCBgYE5gYCB0aW1lcyB0aHJvdWdoIGZpbGUg ZGVzY3JpcHRvcnMgaXMgaW4gdGllcgorYGBvcmRlcl9iYXNlXzIoTilgYC4gSW4gY29udHJhc3Qg dG8gbW92aW5nIGFjcm9zcyBnZW5lcmF0aW9ucywgd2hpY2gKK3JlcXVpcmVzIHRoZSBMUlUgbG9j aywgbW92aW5nIGFjcm9zcyB0aWVycyBvbmx5IGludm9sdmVzIGF0b21pYworb3BlcmF0aW9ucyBv biBgYGZvbGlvLT5mbGFnc2BgIGFuZCB0aGVyZWZvcmUgaGFzIGEgbmVnbGlnaWJsZSBjb3N0LiBB CitmZWVkYmFjayBsb29wIG1vZGVsZWQgYWZ0ZXIgdGhlIFBJRCBjb250cm9sbGVyIG1vbml0b3Jz IHJlZmF1bHRzIG92ZXIKK2FsbCB0aGUgdGllcnMgZnJvbSBhbm9uIGFuZCBmaWxlIHR5cGVzIGFu ZCBkZWNpZGVzIHdoaWNoIHRpZXJzIGZyb20KK3doaWNoIHR5cGVzIHRvIGV2aWN0IG9yIHByb3Rl Y3QuCisKK1RoZXJlIGFyZSB0d28gY29uY2VwdHVhbGx5IGluZGVwZW5kZW50IHByb2NlZHVyZXM6 IHRoZSBhZ2luZyBhbmQgdGhlCitldmljdGlvbi4gVGhleSBmb3JtIGEgY2xvc2VkLWxvb3Agc3lz dGVtLCBpLmUuLCB0aGUgcGFnZSByZWNsYWltLgorCitBZ2luZworLS0tLS0KK1RoZSBhZ2luZyBw cm9kdWNlcyB5b3VuZyBnZW5lcmF0aW9ucy4gR2l2ZW4gYW4gYGBscnV2ZWNgYCwgaXQKK2luY3Jl bWVudHMgYGBtYXhfc2VxYGAgd2hlbiBgYG1heF9zZXEtbWluX3NlcSsxYGAgYXBwcm9hY2hlcwor YGBNSU5fTlJfR0VOU2BgLiBUaGUgYWdpbmcgcHJvbW90ZXMgaG90IHBhZ2VzIHRvIHRoZSB5b3Vu Z2VzdAorZ2VuZXJhdGlvbiB3aGVuIGl0IGZpbmRzIHRoZW0gYWNjZXNzZWQgdGhyb3VnaCBwYWdl IHRhYmxlczsgdGhlCitkZW1vdGlvbiBvZiBjb2xkIHBhZ2VzIGhhcHBlbnMgY29uc2VxdWVudGx5 IHdoZW4gaXQgaW5jcmVtZW50cworYGBtYXhfc2VxYGAuIFRoZSBhZ2luZyB1c2VzIHBhZ2UgdGFi bGUgd2Fsa3MgYW5kIHJtYXAgd2Fsa3MgdG8gZmluZAoreW91bmcgUFRFcy4gRm9yIHRoZSBmb3Jt ZXIsIGl0IGl0ZXJhdGVzIGBgbHJ1dmVjX21lbWNnKCktPm1tX2xpc3RgYAorYW5kIGNhbGxzIGBg d2Fsa19wYWdlX3JhbmdlKClgYCB3aXRoIGVhY2ggYGBtbV9zdHJ1Y3RgYCBvbiB0aGlzIGxpc3QK K3RvIHNjYW4gUFRFcywgYW5kIGFmdGVyIGVhY2ggaXRlcmF0aW9uLCBpdCBpbmNyZW1lbnRzIGBg bWF4X3NlcWBgLiBGb3IKK3RoZSBsYXR0ZXIsIHdoZW4gdGhlIGV2aWN0aW9uIHdhbGtzIHRoZSBy bWFwIGFuZCBmaW5kcyBhIHlvdW5nIFBURSwKK3RoZSBhZ2luZyBzY2FucyB0aGUgYWRqYWNlbnQg UFRFcy4gRm9yIGJvdGgsIG9uIGZpbmRpbmcgYSB5b3VuZyBQVEUsCit0aGUgYWdpbmcgY2xlYXJz IHRoZSBhY2Nlc3NlZCBiaXQgYW5kIHVwZGF0ZXMgdGhlIGdlbiBjb3VudGVyIG9mIHRoZQorcGFn ZSBtYXBwZWQgYnkgdGhpcyBQVEUgdG8gYGAobWF4X3NlcSVNQVhfTlJfR0VOUykrMWBgLgorCitF dmljdGlvbgorLS0tLS0tLS0KK1RoZSBldmljdGlvbiBjb25zdW1lcyBvbGQgZ2VuZXJhdGlvbnMu IEdpdmVuIGFuIGBgbHJ1dmVjYGAsIGl0CitpbmNyZW1lbnRzIGBgbWluX3NlcWBgIHdoZW4gYGBs cnVnZW4tPmxpc3RzW11gYCBpbmRleGVkIGJ5CitgYG1pbl9zZXElTUFYX05SX0dFTlNgYCBiZWNv bWVzIGVtcHR5LiBUbyBzZWxlY3QgYSB0eXBlIGFuZCBhIHRpZXIgdG8KK2V2aWN0IGZyb20sIGl0 IGZpcnN0IGNvbXBhcmVzIGBgbWluX3NlcVtdYGAgdG8gc2VsZWN0IHRoZSBvbGRlciB0eXBlLgor SWYgYm90aCB0eXBlcyBhcmUgZXF1YWxseSBvbGQsIGl0IHNlbGVjdHMgdGhlIG9uZSB3aG9zZSBm aXJzdCB0aWVyIGhhcworYSBsb3dlciByZWZhdWx0IHBlcmNlbnRhZ2UuIFRoZSBmaXJzdCB0aWVy IGNvbnRhaW5zIHNpbmdsZS11c2UKK3VubWFwcGVkIGNsZWFuIHBhZ2VzLCB3aGljaCBhcmUgdGhl IGJlc3QgYmV0LiBUaGUgZXZpY3Rpb24gc29ydHMgYQorcGFnZSBhY2NvcmRpbmcgdG8gaXRzIGdl biBjb3VudGVyIGlmIHRoZSBhZ2luZyBoYXMgZm91bmQgdGhpcyBwYWdlCithY2Nlc3NlZCB0aHJv dWdoIHBhZ2UgdGFibGVzIGFuZCB1cGRhdGVkIGl0cyBnZW4gY291bnRlci4gSXQgYWxzbworbW92 ZXMgYSBwYWdlIHRvIHRoZSBuZXh0IGdlbmVyYXRpb24sIGkuZS4sIGBgbWluX3NlcSsxYGAsIGlm IHRoaXMgcGFnZQord2FzIGFjY2Vzc2VkIG11bHRpcGxlIHRpbWVzIHRocm91Z2ggZmlsZSBkZXNj cmlwdG9ycyBhbmQgdGhlIGZlZWRiYWNrCitsb29wIGhhcyBkZXRlY3RlZCBvdXRseWluZyByZWZh dWx0cyBmcm9tIHRoZSB0aWVyIHRoaXMgcGFnZSBpcyBpbi4gVG8KK2RvIHRoaXMsIHRoZSBmZWVk YmFjayBsb29wIHVzZXMgdGhlIGZpcnN0IHRpZXIgYXMgdGhlIGJhc2VsaW5lLCBmb3IKK3RoZSBy ZWFzb24gc3RhdGVkIGVhcmxpZXIuCisKK1N1bW1hcnkKKy0tLS0tLS0KK1RoZSBtdWx0aS1nZW4g TFJVIGNhbiBiZSBkaXNhc3NlbWJsZWQgaW50byB0aGUgZm9sbG93aW5nIHBhcnRzOgorCisqIEdl bmVyYXRpb25zCisqIFBhZ2UgdGFibGUgd2Fsa3MKKyogUm1hcCB3YWxrcworKiBCbG9vbSBmaWx0 ZXJzCisqIFBJRCBjb250cm9sbGVyCisKK1RoZSBhZ2luZyBhbmQgdGhlIGV2aWN0aW9uIGZvcm0g YSBwcm9kdWNlci1jb25zdW1lciBtb2RlbDsKK3NwZWNpZmljYWxseSwgdGhlIGxhdHRlciBkcml2 ZXMgdGhlIGZvcm1lciBieSB0aGUgc2xpZGluZyB3aW5kb3cgb3ZlcgorZ2VuZXJhdGlvbnMuIFdp dGhpbiB0aGUgYWdpbmcsIHJtYXAgd2Fsa3MgZHJpdmUgcGFnZSB0YWJsZSB3YWxrcyBieQoraW5z ZXJ0aW5nIGhvdCBkZW5zZWx5IHBvcHVsYXRlZCBwYWdlIHRhYmxlcyB0byB0aGUgQmxvb20gZmls dGVycy4KK1dpdGhpbiB0aGUgZXZpY3Rpb24sIHRoZSBQSUQgY29udHJvbGxlciB1c2VzIHJlZmF1 bHRzIGFzIHRoZSBmZWVkYmFjawordG8gc2VsZWN0IHR5cGVzIHRvIGV2aWN0IGFuZCB0aWVycyB0 byBwcm90ZWN0LgotLSAKMi4zNi4wLjU1MC5nYjA5MDg1MTcwOC1nb29nCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=