From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 10AE38004A; Wed, 17 Apr 2024 23:33:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713396784; cv=none; b=tStEU1qZ3kPrUPt4zO2FXdihlFei6FjD0B7bp6AF4aFqa8loJsyyEiDZ9bwaVQizWc+Gyn9cZudEgKIXgJFKeLBxr4gm9+zCi8JB/wmFRXpVNXDYKJ3Fa8RUol4F1DJw95aPiD4F4oGxI3DN0un9ZLK8sxda7khEFwYtjY9R0/8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713396784; c=relaxed/simple; bh=UVEJ59zmDjoboUO24xHkWUbtsfOaV4nMW96i+du0QWo=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=hD+sh86VP2lCUppSurKD/L+rUY8cfZvRrMZUmdGsKcHdRpy92xeEQMLXVngZYg1M372dbwOIOli+rjcX/qwOmPWC2CXT2pbmYmwkMbf/QVmu408XchGLSPtmJSX1h7DzIPdWLqPzu5msbdk/LP1Tims5JIGYosyhge3mjQMIvGQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g9dcUgih; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g9dcUgih" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79E66C2BD11; Wed, 17 Apr 2024 23:33:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713396782; bh=UVEJ59zmDjoboUO24xHkWUbtsfOaV4nMW96i+du0QWo=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=g9dcUgihUruqLdH2UkphJBhOp4CI2upjvdLl3d3rVz9siUPLfDQYchyou7LXngIUI cWzssC+Ais5exj0vlxdgkfD0UISDabYE9ps2nLAsnUvPuJqZuWrDEKlEQm/130dxlJ TrDcK7sck1xghtXie5KS50aVdgaMGiZE0PmL7090xIdMdRRtto0B1IoLe8MFPUV77p MjHgPTklEJZLkSAT7P4KNSPweSGMUIkieLAdyvPoe4eF1OoYaNQIWGFhr3Y6mGm6h+ jJ7M8h436v/tDSG5Z2WP2ZPQpJ7Xt9Fh8ZQRH+KDS3CTVxJrkYmgSzmsULNtE2/7ia VcpAfL6YqmCUQ== Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-518931f8d23so181559e87.3; Wed, 17 Apr 2024 16:33:02 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCWU+Mf3njgqRifWxHNpROfCS/UruBBh8dyGnOStdbmcfQ1BA9TTxFeQZdcP/NktvCH9tRvk1GBXhEnQ2/Id0n1nOAs1N5KzdtGf38Ohka637wbiMGMiwxcUEx8ULsm3PjZvZ7PEP7eR5MfYnqTqQnCJxSJMNOZjKdGP7f21H7fJENmcgHGWiTS+nQor5G1Zoydv+JRjRyXK3Y+sniFHtakwH+szWz+/xo7xbh5c2S+4XHf/8ERz1U6Viutvs1sSGfogDyA5Ugcu0XyAcMAOZd63H5JW3JkcosODo9URBruOpi9rnIJON0yn5nwZtipqIcfT1wqJ5XRDtBfCsSi4FRjbvwoox2BI/7N5bh8SRp4o5AEvUvIewouxPYy0FxtwnBdtn9/ju33Cc+RjExNDt6BocTVAmFtotyjmzPDTICgvOabDu1BU1vVbUWk= X-Gm-Message-State: AOJu0Yxp3ZJcwr3NGUg945EqKE2eQ6SFNdNTi+8iMeKrnZK6kQzGpujY QXpq+nG8gzn9qAhGZ/VNMh1jqtO+K9ut5wM42wMW9u9csx75aIvPH9fMyD7Oy7nwS3xLPFU3Qw6 8AfGAYq/KVgTrYxBdx/hr/fFXt98= X-Google-Smtp-Source: AGHT+IEHuhOgcI3i5xgKWDt/RXWKyZ/pV78ei3ikSzZKT8X4nbojHe59GGn0FqOU5qFFQVvC8y10X+N0SPB8sxHbE0Q= X-Received: by 2002:a05:6512:3184:b0:519:b95:22b5 with SMTP id i4-20020a056512318400b005190b9522b5mr446945lfe.51.1713396780753; Wed, 17 Apr 2024 16:33:00 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240411160051.2093261-1-rppt@kernel.org> <20240411160051.2093261-6-rppt@kernel.org> <20240415075241.GF40213@noisy.programming.kicks-ass.net> In-Reply-To: From: Song Liu Date: Wed, 17 Apr 2024 16:32:49 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v4 05/15] mm: introduce execmem_alloc() and execmem_free() To: Mike Rapoport Cc: Mark Rutland , Peter Zijlstra , linux-kernel@vger.kernel.org, Alexandre Ghiti , Andrew Morton , Bjorn Topel , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Donald Dutile , Eric Chanudet , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Michael Ellerman , Nadav Amit , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Apr 16, 2024 at 12:23=E2=80=AFAM Mike Rapoport wr= ote: > > On Mon, Apr 15, 2024 at 06:36:39PM +0100, Mark Rutland wrote: > > On Mon, Apr 15, 2024 at 09:52:41AM +0200, Peter Zijlstra wrote: > > > On Thu, Apr 11, 2024 at 07:00:41PM +0300, Mike Rapoport wrote: > > > > +/** > > > > + * enum execmem_type - types of executable memory ranges > > > > + * > > > > + * There are several subsystems that allocate executable memory. > > > > + * Architectures define different restrictions on placement, > > > > + * permissions, alignment and other parameters for memory that can= be used > > > > + * by these subsystems. > > > > + * Types in this enum identify subsystems that allocate executable= memory > > > > + * and let architectures define parameters for ranges suitable for > > > > + * allocations by each subsystem. > > > > + * > > > > + * @EXECMEM_DEFAULT: default parameters that would be used for typ= es that > > > > + * are not explcitly defined. > > > > + * @EXECMEM_MODULE_TEXT: parameters for module text sections > > > > + * @EXECMEM_KPROBES: parameters for kprobes > > > > + * @EXECMEM_FTRACE: parameters for ftrace > > > > + * @EXECMEM_BPF: parameters for BPF > > > > + * @EXECMEM_TYPE_MAX: > > > > + */ > > > > +enum execmem_type { > > > > + EXECMEM_DEFAULT, > > > > + EXECMEM_MODULE_TEXT =3D EXECMEM_DEFAULT, > > > > + EXECMEM_KPROBES, > > > > + EXECMEM_FTRACE, > > > > + EXECMEM_BPF, > > > > + EXECMEM_TYPE_MAX, > > > > +}; > > > > > > Can we please get a break-down of how all these types are actually > > > different from one another? > > > > > > I'm thinking some platforms have a tiny immediate space (arm64 comes = to > > > mind) and has less strict placement constraints for some of them? > > > > Yeah, and really I'd *much* rather deal with that in arch code, as I ha= ve said > > several times. > > > > For arm64 we have two bsaic restrictions: > > > > 1) Direct branches can go +/-128M > > We can expand this range by having direct branches go to PLTs, at a > > performance cost. > > > > 2) PREL32 relocations can go +/-2G > > We cannot expand this further. > > > > * We don't need to allocate memory for ftrace. We do not use trampoline= s. > > > > * Kprobes XOL areas don't care about either of those; we don't place an= y > > PC-relative instructions in those. Maybe we want to in future. > > > > * Modules care about both; we'd *prefer* to place them within +/-128M o= f all > > other kernel/module code, but if there's no space we can use PLTs and= expand > > that to +/-2G. Since modules can refreence other modules, that ends u= p > > actually being halved, and modules have to fit within some 2G window = that > > also covers the kernel. Is +/- 2G enough for all realistic use cases? If so, I guess we don't really need EXECMEM_ANYWHERE below? > > > > * I'm not sure about BPF's requirements; it seems happy doing the same = as > > modules. > > BPF are happy with vmalloc(). > > > So if we *must* use a common execmem allocator, what we'd reall want is= our own > > types, e.g. > > > > EXECMEM_ANYWHERE > > EXECMEM_NOPLT > > EXECMEM_PREL32 > > > > ... and then we use those in arch code to implement module_alloc() and = friends. > > I'm looking at execmem_types more as definition of the consumers, maybe I > should have named the enum execmem_consumer at the first place. I think looking at execmem_type from consumers' point of view adds unnecessary complexity. IIUC, for most (if not all) archs, ftrace, kprobe, and bpf (and maybe also module text) all have the same requirements. Did I miss something? IOW, we have enum execmem_type { EXECMEM_DEFAULT, EXECMEM_TEXT, EXECMEM_KPROBES =3D EXECMEM_TEXT, EXECMEM_FTRACE =3D EXECMEM_TEXT, EXECMEM_BPF =3D EXECMEM_TEXT, /* we may end up without _KPROBE, _FTRACE, _BPF */ EXECMEM_DATA, /* rw */ EXECMEM_RO_DATA, EXECMEM_RO_AFTER_INIT, EXECMEM_TYPE_MAX, }; Does this make sense? Thanks, Song 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 5A63DC4345F for ; Wed, 17 Apr 2024 23:33:39 +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:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jg47aIAF+6Ncjxq6rK7y+ispWbiWzkp9bJoF+ElPiBU=; b=K8mNXlHNxpBPoR 7uVUCC8eIxgdauTlTXGdPqhzTlgRTm/PaMNMYAAjIhIMdw6ZhaYb/A6azNRxHLOj1ewVjS63vRdsr pNidw6D+fWZCpQPxSQ9UwgOjxiiWpvSsrjS79lQMqh1l87eUyMgIFRfBeIITLLSB/sgHV+Vd8owub wErZ6VRvkAju0sJBNBTnFcPwK2ZKUZuGgqFFynjt8qg3PnYvMN4zHD/CapGL5TeAIGQhhAH1aQaQt kKXS14y7PCEeaho9GoiRejQQFbhv/+Vw+BZptZMY5tTKbIjhIAkJdXX/4U/TPoYDpPcdS1RfXEmao GX6YNAvBGIENnvD/9AbA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxEmQ-00000000JbI-29RZ; Wed, 17 Apr 2024 23:33:30 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxEmL-00000000JYw-07jC; Wed, 17 Apr 2024 23:33:28 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 53991CE1068; Wed, 17 Apr 2024 23:33:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9072FC072AA; Wed, 17 Apr 2024 23:33:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713396802; bh=UVEJ59zmDjoboUO24xHkWUbtsfOaV4nMW96i+du0QWo=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=rjB6vmEuetONe18hKTsn5+HJjhJMpyiX9HOcxJfZjVMUBr4HS/b8Qk0b+NvQ1SPoy 6+U9ERhx0yAL/f6syVMyH0tvCiwAqehHRdXPWB291uyc1cWB1Lj6SX69GppWO+2Zt+ FVEhm3i2wE/Ef/XXI5ZIpEkHAgVYWXqZNQXNL+NmfX6Z+SeoXJZSkwotWq6QnU2VU1 mlsup2LG6VX8kIop/HOQwiR9Qpz5L8GpSSeIxq3M0f0Pzo+vgVVgLVSg0npsWRBkuf eL40HYDNQxEkhjMIk/FzBlsJxrfsmyLxH/OVNZCSGMq/fL0AyGNTQBlwE9GQVY/UQJ IQQItlG25afRA== Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-56e1baf0380so303064a12.3; Wed, 17 Apr 2024 16:33:22 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCXh9HJmXCDqSG+j08Yc9hN8xI0Kd37O364PmPaoCFpepn+Fm4Mal4oqrD8UtM52jJ17mmPLSdIEgn0Z3YWjeFUxPLNeQK3cfWgl4fr3oxcIPA9Pzd9RpMpsXi3OSnQXyXI8WTmofkYX0jHkIMUF0NVWNmDG758= X-Gm-Message-State: AOJu0Yw9PRqPkqfpDJHdpG1ulir60ObUgUbZE38rXnVm8fGg/uy3gqhS yrwVjWY0vtm3BlZjDawdq2O1v+6goo+fgrQA1ObvfvXOvz93I76hH8TOLV2vMBZcY2CMzJ0SJj+ hjrJtpfgLowBGYEVEUHxq/DHn1qk= X-Google-Smtp-Source: AGHT+IEHuhOgcI3i5xgKWDt/RXWKyZ/pV78ei3ikSzZKT8X4nbojHe59GGn0FqOU5qFFQVvC8y10X+N0SPB8sxHbE0Q= X-Received: by 2002:a05:6512:3184:b0:519:b95:22b5 with SMTP id i4-20020a056512318400b005190b9522b5mr446945lfe.51.1713396780753; Wed, 17 Apr 2024 16:33:00 -0700 (PDT) MIME-Version: 1.0 References: <20240411160051.2093261-1-rppt@kernel.org> <20240411160051.2093261-6-rppt@kernel.org> <20240415075241.GF40213@noisy.programming.kicks-ass.net> In-Reply-To: From: Song Liu Date: Wed, 17 Apr 2024 16:32:49 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v4 05/15] mm: introduce execmem_alloc() and execmem_free() To: Mike Rapoport Cc: Mark Rutland , Peter Zijlstra , linux-kernel@vger.kernel.org, Alexandre Ghiti , Andrew Morton , Bjorn Topel , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Donald Dutile , Eric Chanudet , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Michael Ellerman , Nadav Amit , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240417_163325_488939_E0F4A367 X-CRM114-Status: GOOD ( 35.90 ) 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 T24gVHVlLCBBcHIgMTYsIDIwMjQgYXQgMTI6MjPigK9BTSBNaWtlIFJhcG9wb3J0IDxycHB0QGtl cm5lbC5vcmc+IHdyb3RlOgo+Cj4gT24gTW9uLCBBcHIgMTUsIDIwMjQgYXQgMDY6MzY6MzlQTSAr MDEwMCwgTWFyayBSdXRsYW5kIHdyb3RlOgo+ID4gT24gTW9uLCBBcHIgMTUsIDIwMjQgYXQgMDk6 NTI6NDFBTSArMDIwMCwgUGV0ZXIgWmlqbHN0cmEgd3JvdGU6Cj4gPiA+IE9uIFRodSwgQXByIDEx LCAyMDI0IGF0IDA3OjAwOjQxUE0gKzAzMDAsIE1pa2UgUmFwb3BvcnQgd3JvdGU6Cj4gPiA+ID4g Ky8qKgo+ID4gPiA+ICsgKiBlbnVtIGV4ZWNtZW1fdHlwZSAtIHR5cGVzIG9mIGV4ZWN1dGFibGUg bWVtb3J5IHJhbmdlcwo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBUaGVyZSBhcmUgc2V2ZXJhbCBz dWJzeXN0ZW1zIHRoYXQgYWxsb2NhdGUgZXhlY3V0YWJsZSBtZW1vcnkuCj4gPiA+ID4gKyAqIEFy Y2hpdGVjdHVyZXMgZGVmaW5lIGRpZmZlcmVudCByZXN0cmljdGlvbnMgb24gcGxhY2VtZW50LAo+ ID4gPiA+ICsgKiBwZXJtaXNzaW9ucywgYWxpZ25tZW50IGFuZCBvdGhlciBwYXJhbWV0ZXJzIGZv ciBtZW1vcnkgdGhhdCBjYW4gYmUgdXNlZAo+ID4gPiA+ICsgKiBieSB0aGVzZSBzdWJzeXN0ZW1z Lgo+ID4gPiA+ICsgKiBUeXBlcyBpbiB0aGlzIGVudW0gaWRlbnRpZnkgc3Vic3lzdGVtcyB0aGF0 IGFsbG9jYXRlIGV4ZWN1dGFibGUgbWVtb3J5Cj4gPiA+ID4gKyAqIGFuZCBsZXQgYXJjaGl0ZWN0 dXJlcyBkZWZpbmUgcGFyYW1ldGVycyBmb3IgcmFuZ2VzIHN1aXRhYmxlIGZvcgo+ID4gPiA+ICsg KiBhbGxvY2F0aW9ucyBieSBlYWNoIHN1YnN5c3RlbS4KPiA+ID4gPiArICoKPiA+ID4gPiArICog QEVYRUNNRU1fREVGQVVMVDogZGVmYXVsdCBwYXJhbWV0ZXJzIHRoYXQgd291bGQgYmUgdXNlZCBm b3IgdHlwZXMgdGhhdAo+ID4gPiA+ICsgKiBhcmUgbm90IGV4cGxjaXRseSBkZWZpbmVkLgo+ID4g PiA+ICsgKiBARVhFQ01FTV9NT0RVTEVfVEVYVDogcGFyYW1ldGVycyBmb3IgbW9kdWxlIHRleHQg c2VjdGlvbnMKPiA+ID4gPiArICogQEVYRUNNRU1fS1BST0JFUzogcGFyYW1ldGVycyBmb3Iga3By b2Jlcwo+ID4gPiA+ICsgKiBARVhFQ01FTV9GVFJBQ0U6IHBhcmFtZXRlcnMgZm9yIGZ0cmFjZQo+ ID4gPiA+ICsgKiBARVhFQ01FTV9CUEY6IHBhcmFtZXRlcnMgZm9yIEJQRgo+ID4gPiA+ICsgKiBA RVhFQ01FTV9UWVBFX01BWDoKPiA+ID4gPiArICovCj4gPiA+ID4gK2VudW0gZXhlY21lbV90eXBl IHsKPiA+ID4gPiArIEVYRUNNRU1fREVGQVVMVCwKPiA+ID4gPiArIEVYRUNNRU1fTU9EVUxFX1RF WFQgPSBFWEVDTUVNX0RFRkFVTFQsCj4gPiA+ID4gKyBFWEVDTUVNX0tQUk9CRVMsCj4gPiA+ID4g KyBFWEVDTUVNX0ZUUkFDRSwKPiA+ID4gPiArIEVYRUNNRU1fQlBGLAo+ID4gPiA+ICsgRVhFQ01F TV9UWVBFX01BWCwKPiA+ID4gPiArfTsKPiA+ID4KPiA+ID4gQ2FuIHdlIHBsZWFzZSBnZXQgYSBi cmVhay1kb3duIG9mIGhvdyBhbGwgdGhlc2UgdHlwZXMgYXJlIGFjdHVhbGx5Cj4gPiA+IGRpZmZl cmVudCBmcm9tIG9uZSBhbm90aGVyPwo+ID4gPgo+ID4gPiBJJ20gdGhpbmtpbmcgc29tZSBwbGF0 Zm9ybXMgaGF2ZSBhIHRpbnkgaW1tZWRpYXRlIHNwYWNlIChhcm02NCBjb21lcyB0bwo+ID4gPiBt aW5kKSBhbmQgaGFzIGxlc3Mgc3RyaWN0IHBsYWNlbWVudCBjb25zdHJhaW50cyBmb3Igc29tZSBv ZiB0aGVtPwo+ID4KPiA+IFllYWgsIGFuZCByZWFsbHkgSSdkICptdWNoKiByYXRoZXIgZGVhbCB3 aXRoIHRoYXQgaW4gYXJjaCBjb2RlLCBhcyBJIGhhdmUgc2FpZAo+ID4gc2V2ZXJhbCB0aW1lcy4K PiA+Cj4gPiBGb3IgYXJtNjQgd2UgaGF2ZSB0d28gYnNhaWMgcmVzdHJpY3Rpb25zOgo+ID4KPiA+ IDEpIERpcmVjdCBicmFuY2hlcyBjYW4gZ28gKy8tMTI4TQo+ID4gICAgV2UgY2FuIGV4cGFuZCB0 aGlzIHJhbmdlIGJ5IGhhdmluZyBkaXJlY3QgYnJhbmNoZXMgZ28gdG8gUExUcywgYXQgYQo+ID4g ICAgcGVyZm9ybWFuY2UgY29zdC4KPiA+Cj4gPiAyKSBQUkVMMzIgcmVsb2NhdGlvbnMgY2FuIGdv ICsvLTJHCj4gPiAgICBXZSBjYW5ub3QgZXhwYW5kIHRoaXMgZnVydGhlci4KPiA+Cj4gPiAqIFdl IGRvbid0IG5lZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmdHJhY2UuIFdlIGRvIG5vdCB1c2Ug dHJhbXBvbGluZXMuCj4gPgo+ID4gKiBLcHJvYmVzIFhPTCBhcmVhcyBkb24ndCBjYXJlIGFib3V0 IGVpdGhlciBvZiB0aG9zZTsgd2UgZG9uJ3QgcGxhY2UgYW55Cj4gPiAgIFBDLXJlbGF0aXZlIGlu c3RydWN0aW9ucyBpbiB0aG9zZS4gTWF5YmUgd2Ugd2FudCB0byBpbiBmdXR1cmUuCj4gPgo+ID4g KiBNb2R1bGVzIGNhcmUgYWJvdXQgYm90aDsgd2UnZCAqcHJlZmVyKiB0byBwbGFjZSB0aGVtIHdp dGhpbiArLy0xMjhNIG9mIGFsbAo+ID4gICBvdGhlciBrZXJuZWwvbW9kdWxlIGNvZGUsIGJ1dCBp ZiB0aGVyZSdzIG5vIHNwYWNlIHdlIGNhbiB1c2UgUExUcyBhbmQgZXhwYW5kCj4gPiAgIHRoYXQg dG8gKy8tMkcuIFNpbmNlIG1vZHVsZXMgY2FuIHJlZnJlZW5jZSBvdGhlciBtb2R1bGVzLCB0aGF0 IGVuZHMgdXAKPiA+ICAgYWN0dWFsbHkgYmVpbmcgaGFsdmVkLCBhbmQgbW9kdWxlcyBoYXZlIHRv IGZpdCB3aXRoaW4gc29tZSAyRyB3aW5kb3cgdGhhdAo+ID4gICBhbHNvIGNvdmVycyB0aGUga2Vy bmVsLgoKSXMgKy8tIDJHIGVub3VnaCBmb3IgYWxsIHJlYWxpc3RpYyB1c2UgY2FzZXM/IElmIHNv LCBJIGd1ZXNzIHdlIGRvbid0CnJlYWxseSBuZWVkCkVYRUNNRU1fQU5ZV0hFUkUgYmVsb3c/Cgo+ ID4KPiA+ICogSSdtIG5vdCBzdXJlIGFib3V0IEJQRidzIHJlcXVpcmVtZW50czsgaXQgc2VlbXMg aGFwcHkgZG9pbmcgdGhlIHNhbWUgYXMKPiA+ICAgbW9kdWxlcy4KPgo+IEJQRiBhcmUgaGFwcHkg d2l0aCB2bWFsbG9jKCkuCj4KPiA+IFNvIGlmIHdlICptdXN0KiB1c2UgYSBjb21tb24gZXhlY21l bSBhbGxvY2F0b3IsIHdoYXQgd2UnZCByZWFsbCB3YW50IGlzIG91ciBvd24KPiA+IHR5cGVzLCBl LmcuCj4gPgo+ID4gICAgICAgRVhFQ01FTV9BTllXSEVSRQo+ID4gICAgICAgRVhFQ01FTV9OT1BM VAo+ID4gICAgICAgRVhFQ01FTV9QUkVMMzIKPiA+Cj4gPiAuLi4gYW5kIHRoZW4gd2UgdXNlIHRo b3NlIGluIGFyY2ggY29kZSB0byBpbXBsZW1lbnQgbW9kdWxlX2FsbG9jKCkgYW5kIGZyaWVuZHMu Cj4KPiBJJ20gbG9va2luZyBhdCBleGVjbWVtX3R5cGVzIG1vcmUgYXMgZGVmaW5pdGlvbiBvZiB0 aGUgY29uc3VtZXJzLCBtYXliZSBJCj4gc2hvdWxkIGhhdmUgbmFtZWQgdGhlIGVudW0gZXhlY21l bV9jb25zdW1lciBhdCB0aGUgZmlyc3QgcGxhY2UuCgpJIHRoaW5rIGxvb2tpbmcgYXQgZXhlY21l bV90eXBlIGZyb20gY29uc3VtZXJzJyBwb2ludCBvZiB2aWV3IGFkZHMKdW5uZWNlc3NhcnkgY29t cGxleGl0eS4gSUlVQywgZm9yIG1vc3QgKGlmIG5vdCBhbGwpIGFyY2hzLCBmdHJhY2UsIGtwcm9i ZSwKYW5kIGJwZiAoYW5kIG1heWJlIGFsc28gbW9kdWxlIHRleHQpIGFsbCBoYXZlIHRoZSBzYW1l IHJlcXVpcmVtZW50cy4KRGlkIEkgbWlzcyBzb21ldGhpbmc/CgpJT1csIHdlIGhhdmUKCmVudW0g ZXhlY21lbV90eXBlIHsKICAgICAgICBFWEVDTUVNX0RFRkFVTFQsCiAgICAgICAgRVhFQ01FTV9U RVhULAogICAgICAgIEVYRUNNRU1fS1BST0JFUyA9IEVYRUNNRU1fVEVYVCwKICAgICAgICBFWEVD TUVNX0ZUUkFDRSA9IEVYRUNNRU1fVEVYVCwKICAgICAgICBFWEVDTUVNX0JQRiA9IEVYRUNNRU1f VEVYVCwgICAgICAvKiB3ZSBtYXkgZW5kIHVwIHdpdGhvdXQKX0tQUk9CRSwgX0ZUUkFDRSwgX0JQ RiAqLwogICAgICAgIEVYRUNNRU1fREFUQSwgIC8qIHJ3ICovCiAgICAgICAgRVhFQ01FTV9ST19E QVRBLAogICAgICAgIEVYRUNNRU1fUk9fQUZURVJfSU5JVCwKICAgICAgICBFWEVDTUVNX1RZUEVf TUFYLAp9OwoKRG9lcyB0aGlzIG1ha2Ugc2Vuc2U/CgpUaGFua3MsClNvbmcKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcg bGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK 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 9AE85C001CC for ; Wed, 17 Apr 2024 23:33:39 +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:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=iJbBRhDHIKBPQf8RgFKpLwoxN2c7cFlbaGUDbCL4Oco=; b=jYDnXJ55XUEJJ1 CKgb39SRTduTUci0N70Et9xVLPV7UuKJOyok0naJ+NbGlXsvV84zneoR6LNRS+13VOsKiN9AH1AJk ibK1m4hYcqrjsFKZDXk7ecrRyFXbC9LK2ojpouya52DSlP+Vxdb9vSrXl0eGKMoupPKV1um/gfS6V ouUfruXwBGJZPGaBbBdOiqWquU/l6eBJX57EfFw5yjYHb7Wx3QbRONDeWJwqJiKLWyX6oiklCJ1NM 0W6Vi8aDQADntryRHQZLJasSMQIFShLGbQ4Cbd2FoezLnmZd1X7ChisLEZ9ZJHUl4IVfHH0hB9eNv yOGUlYtzXPAT1Yg5a9Vg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxEmP-00000000Jb0-3TXv; Wed, 17 Apr 2024 23:33:29 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxEmL-00000000JYw-07jC; Wed, 17 Apr 2024 23:33:28 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 53991CE1068; Wed, 17 Apr 2024 23:33:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9072FC072AA; Wed, 17 Apr 2024 23:33:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713396802; bh=UVEJ59zmDjoboUO24xHkWUbtsfOaV4nMW96i+du0QWo=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=rjB6vmEuetONe18hKTsn5+HJjhJMpyiX9HOcxJfZjVMUBr4HS/b8Qk0b+NvQ1SPoy 6+U9ERhx0yAL/f6syVMyH0tvCiwAqehHRdXPWB291uyc1cWB1Lj6SX69GppWO+2Zt+ FVEhm3i2wE/Ef/XXI5ZIpEkHAgVYWXqZNQXNL+NmfX6Z+SeoXJZSkwotWq6QnU2VU1 mlsup2LG6VX8kIop/HOQwiR9Qpz5L8GpSSeIxq3M0f0Pzo+vgVVgLVSg0npsWRBkuf eL40HYDNQxEkhjMIk/FzBlsJxrfsmyLxH/OVNZCSGMq/fL0AyGNTQBlwE9GQVY/UQJ IQQItlG25afRA== Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-56e1baf0380so303064a12.3; Wed, 17 Apr 2024 16:33:22 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCXh9HJmXCDqSG+j08Yc9hN8xI0Kd37O364PmPaoCFpepn+Fm4Mal4oqrD8UtM52jJ17mmPLSdIEgn0Z3YWjeFUxPLNeQK3cfWgl4fr3oxcIPA9Pzd9RpMpsXi3OSnQXyXI8WTmofkYX0jHkIMUF0NVWNmDG758= X-Gm-Message-State: AOJu0Yw9PRqPkqfpDJHdpG1ulir60ObUgUbZE38rXnVm8fGg/uy3gqhS yrwVjWY0vtm3BlZjDawdq2O1v+6goo+fgrQA1ObvfvXOvz93I76hH8TOLV2vMBZcY2CMzJ0SJj+ hjrJtpfgLowBGYEVEUHxq/DHn1qk= X-Google-Smtp-Source: AGHT+IEHuhOgcI3i5xgKWDt/RXWKyZ/pV78ei3ikSzZKT8X4nbojHe59GGn0FqOU5qFFQVvC8y10X+N0SPB8sxHbE0Q= X-Received: by 2002:a05:6512:3184:b0:519:b95:22b5 with SMTP id i4-20020a056512318400b005190b9522b5mr446945lfe.51.1713396780753; Wed, 17 Apr 2024 16:33:00 -0700 (PDT) MIME-Version: 1.0 References: <20240411160051.2093261-1-rppt@kernel.org> <20240411160051.2093261-6-rppt@kernel.org> <20240415075241.GF40213@noisy.programming.kicks-ass.net> In-Reply-To: From: Song Liu Date: Wed, 17 Apr 2024 16:32:49 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v4 05/15] mm: introduce execmem_alloc() and execmem_free() To: Mike Rapoport Cc: Mark Rutland , Peter Zijlstra , linux-kernel@vger.kernel.org, Alexandre Ghiti , Andrew Morton , Bjorn Topel , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Donald Dutile , Eric Chanudet , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Michael Ellerman , Nadav Amit , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240417_163325_488939_E0F4A367 X-CRM114-Status: GOOD ( 35.90 ) 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 T24gVHVlLCBBcHIgMTYsIDIwMjQgYXQgMTI6MjPigK9BTSBNaWtlIFJhcG9wb3J0IDxycHB0QGtl cm5lbC5vcmc+IHdyb3RlOgo+Cj4gT24gTW9uLCBBcHIgMTUsIDIwMjQgYXQgMDY6MzY6MzlQTSAr MDEwMCwgTWFyayBSdXRsYW5kIHdyb3RlOgo+ID4gT24gTW9uLCBBcHIgMTUsIDIwMjQgYXQgMDk6 NTI6NDFBTSArMDIwMCwgUGV0ZXIgWmlqbHN0cmEgd3JvdGU6Cj4gPiA+IE9uIFRodSwgQXByIDEx LCAyMDI0IGF0IDA3OjAwOjQxUE0gKzAzMDAsIE1pa2UgUmFwb3BvcnQgd3JvdGU6Cj4gPiA+ID4g Ky8qKgo+ID4gPiA+ICsgKiBlbnVtIGV4ZWNtZW1fdHlwZSAtIHR5cGVzIG9mIGV4ZWN1dGFibGUg bWVtb3J5IHJhbmdlcwo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBUaGVyZSBhcmUgc2V2ZXJhbCBz dWJzeXN0ZW1zIHRoYXQgYWxsb2NhdGUgZXhlY3V0YWJsZSBtZW1vcnkuCj4gPiA+ID4gKyAqIEFy Y2hpdGVjdHVyZXMgZGVmaW5lIGRpZmZlcmVudCByZXN0cmljdGlvbnMgb24gcGxhY2VtZW50LAo+ ID4gPiA+ICsgKiBwZXJtaXNzaW9ucywgYWxpZ25tZW50IGFuZCBvdGhlciBwYXJhbWV0ZXJzIGZv ciBtZW1vcnkgdGhhdCBjYW4gYmUgdXNlZAo+ID4gPiA+ICsgKiBieSB0aGVzZSBzdWJzeXN0ZW1z Lgo+ID4gPiA+ICsgKiBUeXBlcyBpbiB0aGlzIGVudW0gaWRlbnRpZnkgc3Vic3lzdGVtcyB0aGF0 IGFsbG9jYXRlIGV4ZWN1dGFibGUgbWVtb3J5Cj4gPiA+ID4gKyAqIGFuZCBsZXQgYXJjaGl0ZWN0 dXJlcyBkZWZpbmUgcGFyYW1ldGVycyBmb3IgcmFuZ2VzIHN1aXRhYmxlIGZvcgo+ID4gPiA+ICsg KiBhbGxvY2F0aW9ucyBieSBlYWNoIHN1YnN5c3RlbS4KPiA+ID4gPiArICoKPiA+ID4gPiArICog QEVYRUNNRU1fREVGQVVMVDogZGVmYXVsdCBwYXJhbWV0ZXJzIHRoYXQgd291bGQgYmUgdXNlZCBm b3IgdHlwZXMgdGhhdAo+ID4gPiA+ICsgKiBhcmUgbm90IGV4cGxjaXRseSBkZWZpbmVkLgo+ID4g PiA+ICsgKiBARVhFQ01FTV9NT0RVTEVfVEVYVDogcGFyYW1ldGVycyBmb3IgbW9kdWxlIHRleHQg c2VjdGlvbnMKPiA+ID4gPiArICogQEVYRUNNRU1fS1BST0JFUzogcGFyYW1ldGVycyBmb3Iga3By b2Jlcwo+ID4gPiA+ICsgKiBARVhFQ01FTV9GVFJBQ0U6IHBhcmFtZXRlcnMgZm9yIGZ0cmFjZQo+ ID4gPiA+ICsgKiBARVhFQ01FTV9CUEY6IHBhcmFtZXRlcnMgZm9yIEJQRgo+ID4gPiA+ICsgKiBA RVhFQ01FTV9UWVBFX01BWDoKPiA+ID4gPiArICovCj4gPiA+ID4gK2VudW0gZXhlY21lbV90eXBl IHsKPiA+ID4gPiArIEVYRUNNRU1fREVGQVVMVCwKPiA+ID4gPiArIEVYRUNNRU1fTU9EVUxFX1RF WFQgPSBFWEVDTUVNX0RFRkFVTFQsCj4gPiA+ID4gKyBFWEVDTUVNX0tQUk9CRVMsCj4gPiA+ID4g KyBFWEVDTUVNX0ZUUkFDRSwKPiA+ID4gPiArIEVYRUNNRU1fQlBGLAo+ID4gPiA+ICsgRVhFQ01F TV9UWVBFX01BWCwKPiA+ID4gPiArfTsKPiA+ID4KPiA+ID4gQ2FuIHdlIHBsZWFzZSBnZXQgYSBi cmVhay1kb3duIG9mIGhvdyBhbGwgdGhlc2UgdHlwZXMgYXJlIGFjdHVhbGx5Cj4gPiA+IGRpZmZl cmVudCBmcm9tIG9uZSBhbm90aGVyPwo+ID4gPgo+ID4gPiBJJ20gdGhpbmtpbmcgc29tZSBwbGF0 Zm9ybXMgaGF2ZSBhIHRpbnkgaW1tZWRpYXRlIHNwYWNlIChhcm02NCBjb21lcyB0bwo+ID4gPiBt aW5kKSBhbmQgaGFzIGxlc3Mgc3RyaWN0IHBsYWNlbWVudCBjb25zdHJhaW50cyBmb3Igc29tZSBv ZiB0aGVtPwo+ID4KPiA+IFllYWgsIGFuZCByZWFsbHkgSSdkICptdWNoKiByYXRoZXIgZGVhbCB3 aXRoIHRoYXQgaW4gYXJjaCBjb2RlLCBhcyBJIGhhdmUgc2FpZAo+ID4gc2V2ZXJhbCB0aW1lcy4K PiA+Cj4gPiBGb3IgYXJtNjQgd2UgaGF2ZSB0d28gYnNhaWMgcmVzdHJpY3Rpb25zOgo+ID4KPiA+ IDEpIERpcmVjdCBicmFuY2hlcyBjYW4gZ28gKy8tMTI4TQo+ID4gICAgV2UgY2FuIGV4cGFuZCB0 aGlzIHJhbmdlIGJ5IGhhdmluZyBkaXJlY3QgYnJhbmNoZXMgZ28gdG8gUExUcywgYXQgYQo+ID4g ICAgcGVyZm9ybWFuY2UgY29zdC4KPiA+Cj4gPiAyKSBQUkVMMzIgcmVsb2NhdGlvbnMgY2FuIGdv ICsvLTJHCj4gPiAgICBXZSBjYW5ub3QgZXhwYW5kIHRoaXMgZnVydGhlci4KPiA+Cj4gPiAqIFdl IGRvbid0IG5lZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmdHJhY2UuIFdlIGRvIG5vdCB1c2Ug dHJhbXBvbGluZXMuCj4gPgo+ID4gKiBLcHJvYmVzIFhPTCBhcmVhcyBkb24ndCBjYXJlIGFib3V0 IGVpdGhlciBvZiB0aG9zZTsgd2UgZG9uJ3QgcGxhY2UgYW55Cj4gPiAgIFBDLXJlbGF0aXZlIGlu c3RydWN0aW9ucyBpbiB0aG9zZS4gTWF5YmUgd2Ugd2FudCB0byBpbiBmdXR1cmUuCj4gPgo+ID4g KiBNb2R1bGVzIGNhcmUgYWJvdXQgYm90aDsgd2UnZCAqcHJlZmVyKiB0byBwbGFjZSB0aGVtIHdp dGhpbiArLy0xMjhNIG9mIGFsbAo+ID4gICBvdGhlciBrZXJuZWwvbW9kdWxlIGNvZGUsIGJ1dCBp ZiB0aGVyZSdzIG5vIHNwYWNlIHdlIGNhbiB1c2UgUExUcyBhbmQgZXhwYW5kCj4gPiAgIHRoYXQg dG8gKy8tMkcuIFNpbmNlIG1vZHVsZXMgY2FuIHJlZnJlZW5jZSBvdGhlciBtb2R1bGVzLCB0aGF0 IGVuZHMgdXAKPiA+ICAgYWN0dWFsbHkgYmVpbmcgaGFsdmVkLCBhbmQgbW9kdWxlcyBoYXZlIHRv IGZpdCB3aXRoaW4gc29tZSAyRyB3aW5kb3cgdGhhdAo+ID4gICBhbHNvIGNvdmVycyB0aGUga2Vy bmVsLgoKSXMgKy8tIDJHIGVub3VnaCBmb3IgYWxsIHJlYWxpc3RpYyB1c2UgY2FzZXM/IElmIHNv LCBJIGd1ZXNzIHdlIGRvbid0CnJlYWxseSBuZWVkCkVYRUNNRU1fQU5ZV0hFUkUgYmVsb3c/Cgo+ ID4KPiA+ICogSSdtIG5vdCBzdXJlIGFib3V0IEJQRidzIHJlcXVpcmVtZW50czsgaXQgc2VlbXMg aGFwcHkgZG9pbmcgdGhlIHNhbWUgYXMKPiA+ICAgbW9kdWxlcy4KPgo+IEJQRiBhcmUgaGFwcHkg d2l0aCB2bWFsbG9jKCkuCj4KPiA+IFNvIGlmIHdlICptdXN0KiB1c2UgYSBjb21tb24gZXhlY21l bSBhbGxvY2F0b3IsIHdoYXQgd2UnZCByZWFsbCB3YW50IGlzIG91ciBvd24KPiA+IHR5cGVzLCBl LmcuCj4gPgo+ID4gICAgICAgRVhFQ01FTV9BTllXSEVSRQo+ID4gICAgICAgRVhFQ01FTV9OT1BM VAo+ID4gICAgICAgRVhFQ01FTV9QUkVMMzIKPiA+Cj4gPiAuLi4gYW5kIHRoZW4gd2UgdXNlIHRo b3NlIGluIGFyY2ggY29kZSB0byBpbXBsZW1lbnQgbW9kdWxlX2FsbG9jKCkgYW5kIGZyaWVuZHMu Cj4KPiBJJ20gbG9va2luZyBhdCBleGVjbWVtX3R5cGVzIG1vcmUgYXMgZGVmaW5pdGlvbiBvZiB0 aGUgY29uc3VtZXJzLCBtYXliZSBJCj4gc2hvdWxkIGhhdmUgbmFtZWQgdGhlIGVudW0gZXhlY21l bV9jb25zdW1lciBhdCB0aGUgZmlyc3QgcGxhY2UuCgpJIHRoaW5rIGxvb2tpbmcgYXQgZXhlY21l bV90eXBlIGZyb20gY29uc3VtZXJzJyBwb2ludCBvZiB2aWV3IGFkZHMKdW5uZWNlc3NhcnkgY29t cGxleGl0eS4gSUlVQywgZm9yIG1vc3QgKGlmIG5vdCBhbGwpIGFyY2hzLCBmdHJhY2UsIGtwcm9i ZSwKYW5kIGJwZiAoYW5kIG1heWJlIGFsc28gbW9kdWxlIHRleHQpIGFsbCBoYXZlIHRoZSBzYW1l IHJlcXVpcmVtZW50cy4KRGlkIEkgbWlzcyBzb21ldGhpbmc/CgpJT1csIHdlIGhhdmUKCmVudW0g ZXhlY21lbV90eXBlIHsKICAgICAgICBFWEVDTUVNX0RFRkFVTFQsCiAgICAgICAgRVhFQ01FTV9U RVhULAogICAgICAgIEVYRUNNRU1fS1BST0JFUyA9IEVYRUNNRU1fVEVYVCwKICAgICAgICBFWEVD TUVNX0ZUUkFDRSA9IEVYRUNNRU1fVEVYVCwKICAgICAgICBFWEVDTUVNX0JQRiA9IEVYRUNNRU1f VEVYVCwgICAgICAvKiB3ZSBtYXkgZW5kIHVwIHdpdGhvdXQKX0tQUk9CRSwgX0ZUUkFDRSwgX0JQ RiAqLwogICAgICAgIEVYRUNNRU1fREFUQSwgIC8qIHJ3ICovCiAgICAgICAgRVhFQ01FTV9ST19E QVRBLAogICAgICAgIEVYRUNNRU1fUk9fQUZURVJfSU5JVCwKICAgICAgICBFWEVDTUVNX1RZUEVf TUFYLAp9OwoKRG9lcyB0aGlzIG1ha2Ugc2Vuc2U/CgpUaGFua3MsClNvbmcKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK