From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1E9530DEBA for ; Tue, 11 Aug 2026 13:25:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786454714; cv=none; b=J3pYyzGEJGOq7UbZg+WshNJgNLKQQ/vi1K2+e2KCEwHWUTssCYy7BIiwoALvl+5iDQXmK5iYEh32pvXujofexX1etNyHBz/dzPxsOajaJoa95/7jt1F7Rb7HzyyGUs2Fiff07w3Xdp4JzZgFv4l7uVC47RNo4WH6kF6afiudi+k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786454714; c=relaxed/simple; bh=CJ25QsZC14Dq2xSASACZGaavy+QR/WSe/Ecg1RU88VU=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FvYIRL6CXpArL1PY9zr1LZf3spfsIUqXWnH5KC5OfpoHoqJZ0/EhaHmwx1q4+S2Jlfde9XvwA8eKCBmo0EWi4fnFv1o5jP9xRD4spUTTXYSGEHplGLb3WQX0qd5IzwL49qQnuYkq9ce0qvh81IQkGCmIzHASs7gNsqnGhOCyZJU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VSkaRwd2; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VSkaRwd2" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4957eefd361so23702935e9.1 for ; Tue, 11 Aug 2026 06:25:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786454710; x=1787059510; darn=lists.linux.dev; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=HfUDfNxB65XZqovwWVBLkrKpJgUq3OtZ1XoJNMhjK1c=; b=VSkaRwd2tz4oWTu78ooqNzk+l2dUDu4w8XVPEiQ48u0WwWjq7E9IMq4O8t6X/ZMdjd 6a5iI/ZJ3JKp2/ss7km2OXlWRZi4bS/zdJxhd14X17PsVoXuLyfWMf7lc/yX4TtdHA+F EaNsxTKvPeB+qGyFkSu2erKo6St1DXEHGWd7BZp+pwjZLoQdrVj4vc0u85IKlL9phtUN S9maRztueY5wlTJdVKHA0MZZUlfAe0rdaQ2YTwG9K2ghf0VdTr3hT2+Dm7WSy1BD85ml keGKnlEQz8WEjmOUJSSYMxTUjjhas2D3fQ4rNEZ9p8UGWj3ve/XciS0zRQCsHqG0Ejjn mApg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786454710; x=1787059510; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=HfUDfNxB65XZqovwWVBLkrKpJgUq3OtZ1XoJNMhjK1c=; b=S4wUbEuzetjlxMmpzuCW58HJC5+GEH21vAn0uiuoxHDLtRuWk9Ufb68mTJAXrMRNnb 2V4tD6cyNCAht9OpuGZqL4YD/l0jwQ3EOqidQg1FZ2ZeCjoI2i84iQDZLu+LoNJkExny d/TMxscFt48fJtiQkHJ3PcNShMOnAXLotNJ+/ZjHaauJYF3mbMaw2csymy3CpmfZhmmd zuk2oxzqQ5pqsJyvtHD93cBQcTCAyIezOIpHl2jLZr4euND/Ohz3jLp2effNlqTfeHei v/s6K9rzNaJSZz8HQPTMxfPLhxXo4jEK0W0a7jav2PTPBIWfpB6FeCjdNnHSgHMkCZq7 H63Q== X-Forwarded-Encrypted: i=1; AHgh+RpzeAoOfgzMkKpneqZircnI1lyUb1OKGVfPt/frhCXdweCzUGyC56WcWJL/Jk8vHkHJpdbXX7HneyI=@lists.linux.dev X-Gm-Message-State: AOJu0YxPeQcbeDfvcyV6z/eW+veeCgI2zcXGmrJ6CHx4uj1NdUv0tsf0 PxWxQ9ca0/28hHDq8LM6Cy02c9u0eQksDcHz2qM1h3zBralBS+pEYbvs X-Gm-Gg: AR+sD137Jw2t0OsbXJqo6EmjKzCHg4q17MleefV6qarvKi44okfLgmnep5KGlrxzDpx dUolueKUL6+Zj9hRgeCRSUKboGVlh0R68FOGtvjIbHsy+0XlzeQcoOxW+3rpao2k6I6sDnYlOMs FOsKiscG9iOkFelGsR8DfB/88NRszyzeXkdKbWIYEsMDaz1j1smHuQlVJgjDnu8ckVKA5wFSj/Q DF83YTtqz/0y70ac+Ig04SEQJuOOFnookmiznrYYNOZnwwqf0kL/JVNpI7DLSApwKAM4bHQhL2B t8fqQb5gD7Yckjr4BU5ldo4SHAxS+/GGcyIl33CI1V/Mry7rFbdWvlnLRCGZzzmqc5bTxA5lNKs x5nzEru8aq8oH4BBxy3fVqJVO2ckAKuZhtapzUki6Lpf6VTrpwb9tica+v1rETekjtugsf1D+XF ExmLbbHQZ+32U8qOeom3sN1EMySHpYHqjJ0dUzheNW1JvdnrHv+ptX1PJGJ77aYFCghF7Vwapyj 6SH7gfbK21EsrjGUaN7GBbhooib1kBTs+w6 X-Received: by 2002:a05:600c:4513:b0:495:3e08:ad19 with SMTP id 5b1f17b1804b1-49978468c2bmr48261215e9.9.1786454709883; Tue, 11 Aug 2026 06:25:09 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49977df9489sm83541285e9.1.2026.08.11.06.25.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:25:09 -0700 (PDT) Date: Tue, 11 Aug 2026 14:25:07 +0100 From: David Laight To: "Christophe Leroy (CS GROUP)" Cc: Kevin Brodsky , linux-mm@kvack.org, Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Pasha Tatashin , Russell King , Catalin Marinas , Will Deacon , Ryan Roberts , linux-arm-kernel@lists.infradead.org, Huacai Chen , loongarch@lists.linux.dev, "James E.J. Bottomley" , Helge Deller , linux-parisc@vger.kernel.org, Madhavan Srinivasan , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-riscv@lists.infradead.org, Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Gerald Schaefer , linux-s390@vger.kernel.org, "David S. Miller" , Andreas Larsson , sparclinux@vger.kernel.org, Richard Weinberger , Anton Ivanov , Johannes Berg , linux-um@lists.infradead.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Ning Sun , x86@kernel.org, tboot-devel@lists.sourceforge.net, Ard Biesheuvel , Ilias Apalodimas , linux-efi@vger.kernel.org, Vishal Moola , Alistair Popple , "Matthew Wilcox (Oracle)" , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org Subject: Re: [PATCH 03/22] mm: introduce MMF_KERNEL flag and set it for init_mm Message-ID: <20260811142507.4c6c760f@pumpkin> In-Reply-To: <01f07ea2-8bdd-4450-8a49-548f8b646cfd@kernel.org> References: <20260714-remove_pgtable_cdtor-v1-0-44be8a7685d7@arm.com> <20260714-remove_pgtable_cdtor-v1-3-44be8a7685d7@arm.com> <01f07ea2-8bdd-4450-8a49-548f8b646cfd@kernel.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: loongarch@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, 3 Aug 2026 15:59:35 +0200 "Christophe Leroy (CS GROUP)" wrote: > Le 14/07/2026 =C3=A0 16:03, Kevin Brodsky a =C3=A9crit=C2=A0: > > mm code often needs to know whether some mm represents a kernel or > > user address space. This is currently done by comparing the mm > > pointer with &init_mm; besides not being particularly elegant, this > > ignores the fact that other mm's (e.g. efi_mm) may also represent > > parts of the kernel address space. > >=20 > > Introduce a new mm flag MMF_KERNEL and set it for init_mm. > > Subsequent patches will use this flag to replace comparisons with > > &init_mm. No functional change is introduced for now. =20 >=20 > Did you consider performance impact ? This test is usually done in quite= =20 > critical memory handling functions. >=20 > init_mm is known at link time. Before your patch 08/22 there is just a=20 > comparison of mm (r3) with a constant (loaded in r10): >=20 > c0014048 : > c0014048: 3d 40 c1 09 lis r10,-16119 > c001404c: 39 4a 03 98 addi r10,r10,920 > c0014050: 7c 03 50 00 cmpw r3,r10 > c0014054: 4d 82 00 20 beqlr > ... >=20 > After patch 08/22 we have, it first checks that mm is not 0, then it=20 > loads the word located at mm+528 then AND it with 0x1. This load might=20 > be costly. >=20 > c0014048 : > c0014048: 2c 03 00 00 cmpwi r3,0 > c001404c: 7c 85 23 78 mr r5,r4 > c0014050: 41 82 00 10 beq c0014060 > c0014054: 81 23 02 10 lwz r9,528(r3) > c0014058: 71 29 00 01 andi. r9,r9,1 > c001405c: 4c 82 00 20 bnelr > ... Thought... Could the check be replaced by one that checks for kernel static data? That would require that other mm that represent part of the kernel address space be static (and probably not in modules). ISTR there is an address range check that can be used - and might be cheaper than the explicit test for init_mm on many 64bit archs. David 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 D34BBC5AC67 for ; Tue, 11 Aug 2026 13:25:29 +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:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QhILvHy9gPfgC0PycClH9K9pwarfjdU0e6jNhYTq7bs=; b=foAZm6Pjx9GXkk X+bxDt/QQcXJuoPUe+94ue4CuqnJa36R6oos0CsZM2TWGhOHnMvQuf2D2Xv9Sb7VoLtbhvcheg7iG na9zbFRi+8M9DnZLQjduwjvhoXZ8zraipi30XMwfxxBOg30favA2AvDaWPYnWH4xvF2LALyP7liU7 s2gmfn3o6dCrV0yPLQLmDF5YATxndtdXXnzhgOxpFZ0dRRG68QecjP90jKlHR0MtRnjPi+HWz00R1 kueXIUXDVnHEcRXv9tfPWs6xyTkL7ptG0tkXldxDNmkU+0PNrx8ntU9Fdvr40pF14vurDEUe2Wubc nVAdkknsGx56a6f3AjyQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtmTi-0000000E6Gj-2LFh; Tue, 11 Aug 2026 13:25:14 +0000 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtmTg-0000000E6FU-0u8C for linux-riscv@lists.infradead.org; Tue, 11 Aug 2026 13:25:13 +0000 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-4953de5be0aso23128665e9.0 for ; Tue, 11 Aug 2026 06:25:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786454710; x=1787059510; darn=lists.infradead.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=HfUDfNxB65XZqovwWVBLkrKpJgUq3OtZ1XoJNMhjK1c=; b=oJJAnnmLZMQ507yOE0ImuVqszgF5WTxQe15p4aEYI53j7POiFtXRXbvpcHGJBst1fU LXWMX6rL0DoMlKmCMrLVdfMdNbWtiEWFvgrLnh9BGplZPS8bjSAcqwtSe3KPqC5mVryk Nf/kXgIsbTiNngXUdQ9ZdaCULW85mkGnl/01gK9F+QjErruqv5YhSoN2ISwH/P289Rms Bv4cbww+PYleALRQhGPtviYefZXo53w6zLdIRnFakxNf7F/F2gPYCN12LS1jwX6X6vXw C/uioKtdl9xHHq5jTQ55PsgpISs+ayFiZUtyQmOYFSBFug9ZV8By6ovX0Aj/hcQ7LYnD +wVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786454710; x=1787059510; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=HfUDfNxB65XZqovwWVBLkrKpJgUq3OtZ1XoJNMhjK1c=; b=AJpYJjf2WfJXyph5E1efxTprLgB9tdXqIJL8rlVmPtXhVvsf2qqvrdKGBlw4R/My35 hb2w+sGAlbEDX+eXADCI1mh/ZIDBhv+b7yuSw24Sd8XqqUqMqsFHVd7Nlc1XGj+04HlW wxlUw5vQru5Hg+M4WtP1VD8hAXM8fA67F8BoquKVmF5ZZWfsuK+PQ8ec+0kKJP1UeOnd 3XDQwVdGq+liDW3Xp0tbQoUw1+Q1o9zBJKHHxpKmU+ph/fONtnabe24RdvX/cUNacsfp WjHmwPJubjz38iKf5oInBdLZ7gGpVOL+LqkRoD0XCPw/YQD0bXrt7az+BifSW3LxjMnO sRlA== X-Forwarded-Encrypted: i=1; AHgh+RpnoJ/+iTth/bzNGzM+lFQiYTKJz2Ej+k5QcroRImrbNCUztRLpeBmw7c25w5X6Dm2/EH1zqRUESE8khA==@lists.infradead.org X-Gm-Message-State: AOJu0YwO3epCS/WnDx+0sT05Fp3QqubbrhF0YOLwv7SLUD8W+dXGSyX+ ozpdWcgK92oyeDWI8cqU9nGaSArWURqBnIiIvx8Z/ta5O63uaDGTYCDc X-Gm-Gg: AR+sD129dmHHEns0RNOOIPwRjHLfArxQdBbodZ2ZwshrERFIov3Y1yo/SEApt9wJlxo fVjJbRJ7G0CG0ChWEdQCS1JlFnUOzGN2GdcDTLEqVyx/l7Cc4E8yiowP+VvPIAzs4aYu7t4tgWb 1pRCfFfWhTTd+aR9gNu+CqTrIqdmqejsEWZYKSRUqEusz09Ro9cjXAcroORfg/IHlarOCpXkw/E 6YvjDnJAZ9yEQGJktTHpeYoTIN++CRmVctDmP2+93vcmacQTmxpnlPC5GnLjJd1aEHSIhRrO/uD QfH2YoQKmxTSuGe+jjNziyqbUKMzOtmhiSGuvfdtqGKzx6UfpxP5tR2OY3MDK1Ml4vqCrGz19dh StPjLm+omed7Y4975KsJ+IyclE+4eERaVydudtfJ5G2cPCMMer3QgZnnfJmNfMlKq0IwyU3HCgs jN/weLKsZQ8bVgV1wA/mnx6k/0LGqF5V0CxSvgvKoH2uVUGg9NJtVuKnb+mRB6o1S0UjPFu4bFP DmpFs80wrqaY9ttRbuLURIrI3DWiw6utj2l X-Received: by 2002:a05:600c:4513:b0:495:3e08:ad19 with SMTP id 5b1f17b1804b1-49978468c2bmr48261215e9.9.1786454709883; Tue, 11 Aug 2026 06:25:09 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49977df9489sm83541285e9.1.2026.08.11.06.25.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:25:09 -0700 (PDT) Date: Tue, 11 Aug 2026 14:25:07 +0100 From: David Laight To: "Christophe Leroy (CS GROUP)" Cc: Kevin Brodsky , linux-mm@kvack.org, Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Pasha Tatashin , Russell King , Catalin Marinas , Will Deacon , Ryan Roberts , linux-arm-kernel@lists.infradead.org, Huacai Chen , loongarch@lists.linux.dev, "James E.J. Bottomley" , Helge Deller , linux-parisc@vger.kernel.org, Madhavan Srinivasan , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-riscv@lists.infradead.org, Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Gerald Schaefer , linux-s390@vger.kernel.org, "David S. Miller" , Andreas Larsson , sparclinux@vger.kernel.org, Richard Weinberger , Anton Ivanov , Johannes Berg , linux-um@lists.infradead.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Ning Sun , x86@kernel.org, tboot-devel@lists.sourceforge.net, Ard Biesheuvel , Ilias Apalodimas , linux-efi@vger.kernel.org, Vishal Moola , Alistair Popple , "Matthew Wilcox (Oracle)" , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org Subject: Re: [PATCH 03/22] mm: introduce MMF_KERNEL flag and set it for init_mm Message-ID: <20260811142507.4c6c760f@pumpkin> In-Reply-To: <01f07ea2-8bdd-4450-8a49-548f8b646cfd@kernel.org> References: <20260714-remove_pgtable_cdtor-v1-0-44be8a7685d7@arm.com> <20260714-remove_pgtable_cdtor-v1-3-44be8a7685d7@arm.com> <01f07ea2-8bdd-4450-8a49-548f8b646cfd@kernel.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260811_062512_283325_B60540E6 X-CRM114-Status: GOOD ( 20.31 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCAzIEF1ZyAyMDI2IDE1OjU5OjM1ICswMjAwCiJDaHJpc3RvcGhlIExlcm95IChDUyBH Uk9VUCkiIDxjaGxlcm95QGtlcm5lbC5vcmc+IHdyb3RlOgoKPiBMZSAxNC8wNy8yMDI2IMOgIDE2 OjAzLCBLZXZpbiBCcm9kc2t5IGEgw6ljcml0wqA6Cj4gPiBtbSBjb2RlIG9mdGVuIG5lZWRzIHRv IGtub3cgd2hldGhlciBzb21lIG1tIHJlcHJlc2VudHMgYSBrZXJuZWwgb3IKPiA+IHVzZXIgYWRk cmVzcyBzcGFjZS4gVGhpcyBpcyBjdXJyZW50bHkgZG9uZSBieSBjb21wYXJpbmcgdGhlIG1tCj4g PiBwb2ludGVyIHdpdGggJmluaXRfbW07IGJlc2lkZXMgbm90IGJlaW5nIHBhcnRpY3VsYXJseSBl bGVnYW50LCB0aGlzCj4gPiBpZ25vcmVzIHRoZSBmYWN0IHRoYXQgb3RoZXIgbW0ncyAoZS5nLiBl ZmlfbW0pIG1heSBhbHNvIHJlcHJlc2VudAo+ID4gcGFydHMgb2YgdGhlIGtlcm5lbCBhZGRyZXNz IHNwYWNlLgo+ID4gCj4gPiBJbnRyb2R1Y2UgYSBuZXcgbW0gZmxhZyBNTUZfS0VSTkVMIGFuZCBz ZXQgaXQgZm9yIGluaXRfbW0uCj4gPiBTdWJzZXF1ZW50IHBhdGNoZXMgd2lsbCB1c2UgdGhpcyBm bGFnIHRvIHJlcGxhY2UgY29tcGFyaXNvbnMgd2l0aAo+ID4gJmluaXRfbW0uIE5vIGZ1bmN0aW9u YWwgY2hhbmdlIGlzIGludHJvZHVjZWQgZm9yIG5vdy4gIAo+IAo+IERpZCB5b3UgY29uc2lkZXIg cGVyZm9ybWFuY2UgaW1wYWN0ID8gVGhpcyB0ZXN0IGlzIHVzdWFsbHkgZG9uZSBpbiBxdWl0ZSAK PiBjcml0aWNhbCBtZW1vcnkgaGFuZGxpbmcgZnVuY3Rpb25zLgo+IAo+IGluaXRfbW0gaXMga25v d24gYXQgbGluayB0aW1lLiBCZWZvcmUgeW91ciBwYXRjaCAwOC8yMiB0aGVyZSBpcyBqdXN0IGEg Cj4gY29tcGFyaXNvbiBvZiBtbSAocjMpIHdpdGggYSBjb25zdGFudCAobG9hZGVkIGluIHIxMCk6 Cj4gCj4gYzAwMTQwNDggPGFzc2VydF9wdGVfbG9ja2VkPjoKPiBjMDAxNDA0ODoJM2QgNDAgYzEg MDkgCWxpcyAgICAgcjEwLC0xNjExOQo+IGMwMDE0MDRjOgkzOSA0YSAwMyA5OCAJYWRkaSAgICBy MTAscjEwLDkyMAo+IGMwMDE0MDUwOgk3YyAwMyA1MCAwMCAJY21wdyAgICByMyxyMTAKPiBjMDAx NDA1NDoJNGQgODIgMDAgMjAgCWJlcWxyCj4gLi4uCj4gCj4gQWZ0ZXIgcGF0Y2ggMDgvMjIgd2Ug aGF2ZSwgaXQgZmlyc3QgY2hlY2tzIHRoYXQgbW0gaXMgbm90IDAsIHRoZW4gaXQgCj4gbG9hZHMg dGhlIHdvcmQgbG9jYXRlZCBhdCBtbSs1MjggdGhlbiBBTkQgaXQgd2l0aCAweDEuIFRoaXMgbG9h ZCBtaWdodCAKPiBiZSBjb3N0bHkuCj4gCj4gYzAwMTQwNDggPGFzc2VydF9wdGVfbG9ja2VkPjoK PiBjMDAxNDA0ODoJMmMgMDMgMDAgMDAgCWNtcHdpICAgcjMsMAo+IGMwMDE0MDRjOgk3YyA4NSAy MyA3OCAJbXIgICAgICByNSxyNAo+IGMwMDE0MDUwOgk0MSA4MiAwMCAxMCAJYmVxICAgICBjMDAx NDA2MCA8YXNzZXJ0X3B0ZV9sb2NrZWQrMHgxOD4KPiBjMDAxNDA1NDoJODEgMjMgMDIgMTAgCWx3 eiAgICAgcjksNTI4KHIzKQo+IGMwMDE0MDU4Ogk3MSAyOSAwMCAwMSAJYW5kaS4gICByOSxyOSwx Cj4gYzAwMTQwNWM6CTRjIDgyIDAwIDIwIAlibmVscgo+IC4uLgoKVGhvdWdodC4uLgpDb3VsZCB0 aGUgY2hlY2sgYmUgcmVwbGFjZWQgYnkgb25lIHRoYXQgY2hlY2tzIGZvciBrZXJuZWwgc3RhdGlj IGRhdGE/ClRoYXQgd291bGQgcmVxdWlyZSB0aGF0IG90aGVyIG1tIHRoYXQgcmVwcmVzZW50IHBh cnQgb2YgdGhlIGtlcm5lbAphZGRyZXNzIHNwYWNlIGJlIHN0YXRpYyAoYW5kIHByb2JhYmx5IG5v dCBpbiBtb2R1bGVzKS4KSVNUUiB0aGVyZSBpcyBhbiBhZGRyZXNzIHJhbmdlIGNoZWNrIHRoYXQg Y2FuIGJlIHVzZWQgLSBhbmQgbWlnaHQgYmUKY2hlYXBlciB0aGFuIHRoZSBleHBsaWNpdCB0ZXN0 IGZvciBpbml0X21tIG9uIG1hbnkgNjRiaXQgYXJjaHMuCgoJRGF2aWQKCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBs aXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=