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 50A002E0EA; Sat, 17 Jun 2023 06:51:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F5A2C433C0; Sat, 17 Jun 2023 06:51:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686984717; bh=/qKKDaoSMPytALuHQ04GytBWLf/bqmvRcK74ppFE2a8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=P0RFez1EfGYRPTyev/ddBuUzPfaI7NYAV3qwPAYDnlRPd3VlORPb9LLwAJNsB7HOD XaTNoL/vc3WgcVwGzmW11kDKJAUwiH+6/aq1FZDc7+GKKGRDNnH6fEazV3xviU4Xdu C+/q5uFaTCGSUOqz7wG3tCyqcwsxuFowQGM9EqAXvug3eByaI82gwGU/LAA7W+0x7N lIyzQgQ47UaYju+tMMa6eYibyB5m2xJlH6icNOvjTXhyI/Ih1KbRLoHwZvr/gyzXyu vOgqeIZZrqb6yw/imXyF8xZATseZuyfjlfKJVafWUrfVejHNNcMI379QODomewks5q shTjXZO35vEXQ== Date: Sat, 17 Jun 2023 09:51:11 +0300 From: Mike Rapoport To: Song Liu Cc: linux-kernel@vger.kernel.org, Andrew Morton , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Mark Rutland , Michael Ellerman , Nadav Amit , "Naveen N. Rao" , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@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 Subject: Re: [PATCH v2 06/12] mm/execmem: introduce execmem_data_alloc() Message-ID: <20230617065111.GR52412@kernel.org> References: <20230616085038.4121892-1-rppt@kernel.org> <20230616085038.4121892-7-rppt@kernel.org> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Fri, Jun 16, 2023 at 01:01:08PM -0700, Song Liu wrote: > On Fri, Jun 16, 2023 at 1:51 AM Mike Rapoport wrote: > > > > From: "Mike Rapoport (IBM)" > > > > Data related to code allocations, such as module data section, need to > > comply with architecture constraints for its placement and its > > allocation right now was done using execmem_text_alloc(). > > > > Create a dedicated API for allocating data related to code allocations > > and allow architectures to define address ranges for data allocations. > > > > Since currently this is only relevant for powerpc variants that use the > > VMALLOC address space for module data allocations, automatically reuse > > address ranges defined for text unless address range for data is > > explicitly defined by an architecture. > > > > With separation of code and data allocations, data sections of the > > modules are now mapped as PAGE_KERNEL rather than PAGE_KERNEL_EXEC which > > was a default on many architectures. > > > > Signed-off-by: Mike Rapoport (IBM) > [...] > > static void free_mod_mem(struct module *mod) > > diff --git a/mm/execmem.c b/mm/execmem.c > > index a67acd75ffef..f7bf496ad4c3 100644 > > --- a/mm/execmem.c > > +++ b/mm/execmem.c > > @@ -63,6 +63,20 @@ void *execmem_text_alloc(size_t size) > > fallback_start, fallback_end, kasan); > > } > > > > +void *execmem_data_alloc(size_t size) > > +{ > > + unsigned long start = execmem_params.modules.data.start; > > + unsigned long end = execmem_params.modules.data.end; > > + pgprot_t pgprot = execmem_params.modules.data.pgprot; > > + unsigned int align = execmem_params.modules.data.alignment; > > + unsigned long fallback_start = execmem_params.modules.data.fallback_start; > > + unsigned long fallback_end = execmem_params.modules.data.fallback_end; > > + bool kasan = execmem_params.modules.flags & EXECMEM_KASAN_SHADOW; > > + > > + return execmem_alloc(size, start, end, align, pgprot, > > + fallback_start, fallback_end, kasan); > > +} > > + > > void execmem_free(void *ptr) > > { > > /* > > @@ -101,6 +115,28 @@ static bool execmem_validate_params(struct execmem_params *p) > > return true; > > } > > > > +static void execmem_init_missing(struct execmem_params *p) > > Shall we call this execmem_default_init_data? This also fills in jit.text (next patch), so _data doesn't work here :) And it's not really a default, the defaults are set explicitly for arches that don't have execmem_arch_params. > > +{ > > + struct execmem_modules_range *m = &p->modules; > > + > > + if (!pgprot_val(execmem_params.modules.data.pgprot)) > > + execmem_params.modules.data.pgprot = PAGE_KERNEL; > > Do we really need to check each of these? IOW, can we do: > > if (!pgprot_val(execmem_params.modules.data.pgprot)) { > execmem_params.modules.data.pgprot = PAGE_KERNEL; > execmem_params.modules.data.alignment = m->text.alignment; > execmem_params.modules.data.start = m->text.start; > execmem_params.modules.data.end = m->text.end; > execmem_params.modules.data.fallback_start = m->text.fallback_start; > execmem_params.modules.data.fallback_end = m->text.fallback_end; > } Yes, we can have a single check here. > Thanks, > Song > > [...] -- Sincerely yours, Mike. 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 2884FC0015E for ; Sat, 17 Jun 2023 06:52:07 +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:In-Reply-To:MIME-Version:References: 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=JOhMklsWyYqnwRmWXRBUuRBYAtS43HdiYnIx/hFaMLI=; b=TXa1eLqEW56E7P JQ6LvUAKHB9XJuT9vQ3dUzY0BMoTeOa8PFccS0L/Y0CUf97NOtERK6ng8LU6vqb5MuNMZS6TerBbo 0te+sD+cTzGlKfnraXGc3tbpeMKMMsQdbDN9+lSGJfWOO38xNg1lq4PpCjPxSdhZu5z5BX2iwSUyi 7v/3j++CZuBaGlFFQ5Xblz/87l88zdwqU1g5Ujr6iMQaEH5f8eoTkBpz8PaOTJ3nxYJ3Vuqtrh5dD 9OM8fCYDDbIOMOd/+VXcDe1sJ6Q5O/Mcp8iebt2kxDZBX/49FVua3JS4EphdAWJ135iGuZir0UQ67 yze28v8dgjf72t8XOjvw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qAPn0-002vfA-32; Sat, 17 Jun 2023 06:52:02 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qAPmx-002vbu-0T; Sat, 17 Jun 2023 06:52:01 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 69FCC60B07; Sat, 17 Jun 2023 06:51:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F5A2C433C0; Sat, 17 Jun 2023 06:51:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686984717; bh=/qKKDaoSMPytALuHQ04GytBWLf/bqmvRcK74ppFE2a8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=P0RFez1EfGYRPTyev/ddBuUzPfaI7NYAV3qwPAYDnlRPd3VlORPb9LLwAJNsB7HOD XaTNoL/vc3WgcVwGzmW11kDKJAUwiH+6/aq1FZDc7+GKKGRDNnH6fEazV3xviU4Xdu C+/q5uFaTCGSUOqz7wG3tCyqcwsxuFowQGM9EqAXvug3eByaI82gwGU/LAA7W+0x7N lIyzQgQ47UaYju+tMMa6eYibyB5m2xJlH6icNOvjTXhyI/Ih1KbRLoHwZvr/gyzXyu vOgqeIZZrqb6yw/imXyF8xZATseZuyfjlfKJVafWUrfVejHNNcMI379QODomewks5q shTjXZO35vEXQ== Date: Sat, 17 Jun 2023 09:51:11 +0300 From: Mike Rapoport To: Song Liu Cc: linux-kernel@vger.kernel.org, Andrew Morton , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Mark Rutland , Michael Ellerman , Nadav Amit , "Naveen N. Rao" , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@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 Subject: Re: [PATCH v2 06/12] mm/execmem: introduce execmem_data_alloc() Message-ID: <20230617065111.GR52412@kernel.org> References: <20230616085038.4121892-1-rppt@kernel.org> <20230616085038.4121892-7-rppt@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230616_235159_294055_7D47D369 X-CRM114-Status: GOOD ( 29.40 ) 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 T24gRnJpLCBKdW4gMTYsIDIwMjMgYXQgMDE6MDE6MDhQTSAtMDcwMCwgU29uZyBMaXUgd3JvdGU6 Cj4gT24gRnJpLCBKdW4gMTYsIDIwMjMgYXQgMTo1MeKAr0FNIE1pa2UgUmFwb3BvcnQgPHJwcHRA a2VybmVsLm9yZz4gd3JvdGU6Cj4gPgo+ID4gRnJvbTogIk1pa2UgUmFwb3BvcnQgKElCTSkiIDxy cHB0QGtlcm5lbC5vcmc+Cj4gPgo+ID4gRGF0YSByZWxhdGVkIHRvIGNvZGUgYWxsb2NhdGlvbnMs IHN1Y2ggYXMgbW9kdWxlIGRhdGEgc2VjdGlvbiwgbmVlZCB0bwo+ID4gY29tcGx5IHdpdGggYXJj aGl0ZWN0dXJlIGNvbnN0cmFpbnRzIGZvciBpdHMgcGxhY2VtZW50IGFuZCBpdHMKPiA+IGFsbG9j YXRpb24gcmlnaHQgbm93IHdhcyBkb25lIHVzaW5nIGV4ZWNtZW1fdGV4dF9hbGxvYygpLgo+ID4K PiA+IENyZWF0ZSBhIGRlZGljYXRlZCBBUEkgZm9yIGFsbG9jYXRpbmcgZGF0YSByZWxhdGVkIHRv IGNvZGUgYWxsb2NhdGlvbnMKPiA+IGFuZCBhbGxvdyBhcmNoaXRlY3R1cmVzIHRvIGRlZmluZSBh ZGRyZXNzIHJhbmdlcyBmb3IgZGF0YSBhbGxvY2F0aW9ucy4KPiA+Cj4gPiBTaW5jZSBjdXJyZW50 bHkgdGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciBwb3dlcnBjIHZhcmlhbnRzIHRoYXQgdXNlIHRo ZQo+ID4gVk1BTExPQyBhZGRyZXNzIHNwYWNlIGZvciBtb2R1bGUgZGF0YSBhbGxvY2F0aW9ucywg YXV0b21hdGljYWxseSByZXVzZQo+ID4gYWRkcmVzcyByYW5nZXMgZGVmaW5lZCBmb3IgdGV4dCB1 bmxlc3MgYWRkcmVzcyByYW5nZSBmb3IgZGF0YSBpcwo+ID4gZXhwbGljaXRseSBkZWZpbmVkIGJ5 IGFuIGFyY2hpdGVjdHVyZS4KPiA+Cj4gPiBXaXRoIHNlcGFyYXRpb24gb2YgY29kZSBhbmQgZGF0 YSBhbGxvY2F0aW9ucywgZGF0YSBzZWN0aW9ucyBvZiB0aGUKPiA+IG1vZHVsZXMgYXJlIG5vdyBt YXBwZWQgYXMgUEFHRV9LRVJORUwgcmF0aGVyIHRoYW4gUEFHRV9LRVJORUxfRVhFQyB3aGljaAo+ ID4gd2FzIGEgZGVmYXVsdCBvbiBtYW55IGFyY2hpdGVjdHVyZXMuCj4gPgo+ID4gU2lnbmVkLW9m Zi1ieTogTWlrZSBSYXBvcG9ydCAoSUJNKSA8cnBwdEBrZXJuZWwub3JnPgo+IFsuLi5dCj4gPiAg c3RhdGljIHZvaWQgZnJlZV9tb2RfbWVtKHN0cnVjdCBtb2R1bGUgKm1vZCkKPiA+IGRpZmYgLS1n aXQgYS9tbS9leGVjbWVtLmMgYi9tbS9leGVjbWVtLmMKPiA+IGluZGV4IGE2N2FjZDc1ZmZlZi4u ZjdiZjQ5NmFkNGMzIDEwMDY0NAo+ID4gLS0tIGEvbW0vZXhlY21lbS5jCj4gPiArKysgYi9tbS9l eGVjbWVtLmMKPiA+IEBAIC02Myw2ICs2MywyMCBAQCB2b2lkICpleGVjbWVtX3RleHRfYWxsb2Mo c2l6ZV90IHNpemUpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrX3N0 YXJ0LCBmYWxsYmFja19lbmQsIGthc2FuKTsKPiA+ICB9Cj4gPgo+ID4gK3ZvaWQgKmV4ZWNtZW1f ZGF0YV9hbGxvYyhzaXplX3Qgc2l6ZSkKPiA+ICt7Cj4gPiArICAgICAgIHVuc2lnbmVkIGxvbmcg c3RhcnQgPSBleGVjbWVtX3BhcmFtcy5tb2R1bGVzLmRhdGEuc3RhcnQ7Cj4gPiArICAgICAgIHVu c2lnbmVkIGxvbmcgZW5kID0gZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLmVuZDsKPiA+ICsg ICAgICAgcGdwcm90X3QgcGdwcm90ID0gZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLnBncHJv dDsKPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGFsaWduID0gZXhlY21lbV9wYXJhbXMubW9kdWxl cy5kYXRhLmFsaWdubWVudDsKPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBmYWxsYmFja19zdGFy dCA9IGV4ZWNtZW1fcGFyYW1zLm1vZHVsZXMuZGF0YS5mYWxsYmFja19zdGFydDsKPiA+ICsgICAg ICAgdW5zaWduZWQgbG9uZyBmYWxsYmFja19lbmQgPSBleGVjbWVtX3BhcmFtcy5tb2R1bGVzLmRh dGEuZmFsbGJhY2tfZW5kOwo+ID4gKyAgICAgICBib29sIGthc2FuID0gZXhlY21lbV9wYXJhbXMu bW9kdWxlcy5mbGFncyAmIEVYRUNNRU1fS0FTQU5fU0hBRE9XOwo+ID4gKwo+ID4gKyAgICAgICBy ZXR1cm4gZXhlY21lbV9hbGxvYyhzaXplLCBzdGFydCwgZW5kLCBhbGlnbiwgcGdwcm90LAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja19zdGFydCwgZmFsbGJhY2tfZW5k LCBrYXNhbik7Cj4gPiArfQo+ID4gKwo+ID4gIHZvaWQgZXhlY21lbV9mcmVlKHZvaWQgKnB0cikK PiA+ICB7Cj4gPiAgICAgICAgIC8qCj4gPiBAQCAtMTAxLDYgKzExNSwyOCBAQCBzdGF0aWMgYm9v bCBleGVjbWVtX3ZhbGlkYXRlX3BhcmFtcyhzdHJ1Y3QgZXhlY21lbV9wYXJhbXMgKnApCj4gPiAg ICAgICAgIHJldHVybiB0cnVlOwo+ID4gIH0KPiA+Cj4gPiArc3RhdGljIHZvaWQgZXhlY21lbV9p bml0X21pc3Npbmcoc3RydWN0IGV4ZWNtZW1fcGFyYW1zICpwKQo+IAo+IFNoYWxsIHdlIGNhbGwg dGhpcyBleGVjbWVtX2RlZmF1bHRfaW5pdF9kYXRhPwoKVGhpcyBhbHNvIGZpbGxzIGluIGppdC50 ZXh0IChuZXh0IHBhdGNoKSwgc28gX2RhdGEgZG9lc24ndCB3b3JrIGhlcmUgOikKQW5kIGl0J3Mg bm90IHJlYWxseSBhIGRlZmF1bHQsIHRoZSBkZWZhdWx0cyBhcmUgc2V0IGV4cGxpY2l0bHkgZm9y IGFyY2hlcwp0aGF0IGRvbid0IGhhdmUgZXhlY21lbV9hcmNoX3BhcmFtcy4KIAo+ID4gK3sKPiA+ ICsgICAgICAgc3RydWN0IGV4ZWNtZW1fbW9kdWxlc19yYW5nZSAqbSA9ICZwLT5tb2R1bGVzOwo+ ID4gKwo+ID4gKyAgICAgICBpZiAoIXBncHJvdF92YWwoZXhlY21lbV9wYXJhbXMubW9kdWxlcy5k YXRhLnBncHJvdCkpCj4gPiArICAgICAgICAgICAgICAgZXhlY21lbV9wYXJhbXMubW9kdWxlcy5k YXRhLnBncHJvdCA9IFBBR0VfS0VSTkVMOwo+IAo+IERvIHdlIHJlYWxseSBuZWVkIHRvIGNoZWNr IGVhY2ggb2YgdGhlc2U/IElPVywgY2FuIHdlIGRvOgo+IAo+IGlmICghcGdwcm90X3ZhbChleGVj bWVtX3BhcmFtcy5tb2R1bGVzLmRhdGEucGdwcm90KSkgewo+ICAgICAgICBleGVjbWVtX3BhcmFt cy5tb2R1bGVzLmRhdGEucGdwcm90ID0gUEFHRV9LRVJORUw7Cj4gICAgICAgIGV4ZWNtZW1fcGFy YW1zLm1vZHVsZXMuZGF0YS5hbGlnbm1lbnQgPSBtLT50ZXh0LmFsaWdubWVudDsKPiAgICAgICAg ZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLnN0YXJ0ID0gbS0+dGV4dC5zdGFydDsKPiAgICAg ICAgZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLmVuZCA9IG0tPnRleHQuZW5kOwo+ICAgICAg ICBleGVjbWVtX3BhcmFtcy5tb2R1bGVzLmRhdGEuZmFsbGJhY2tfc3RhcnQgPSBtLT50ZXh0LmZh bGxiYWNrX3N0YXJ0Owo+ICAgICAgIGV4ZWNtZW1fcGFyYW1zLm1vZHVsZXMuZGF0YS5mYWxsYmFj a19lbmQgPSBtLT50ZXh0LmZhbGxiYWNrX2VuZDsKPiB9CgpZZXMsIHdlIGNhbiBoYXZlIGEgc2lu Z2xlIGNoZWNrIGhlcmUuCiAKPiBUaGFua3MsCj4gU29uZwo+IAo+IFsuLi5dCgotLSAKU2luY2Vy ZWx5IHlvdXJzLApNaWtlLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1yaXNjdgo= 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (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 69B18EB64D9 for ; Sat, 17 Jun 2023 06:52:52 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=P0RFez1E; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Qjmtp6gY4z3c2y for ; Sat, 17 Jun 2023 16:52:50 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=P0RFez1E; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=139.178.84.217; helo=dfw.source.kernel.org; envelope-from=rppt@kernel.org; receiver=lists.ozlabs.org) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Qjmsr29Hqz30fG for ; Sat, 17 Jun 2023 16:52:00 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 69FCC60B07; Sat, 17 Jun 2023 06:51:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F5A2C433C0; Sat, 17 Jun 2023 06:51:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686984717; bh=/qKKDaoSMPytALuHQ04GytBWLf/bqmvRcK74ppFE2a8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=P0RFez1EfGYRPTyev/ddBuUzPfaI7NYAV3qwPAYDnlRPd3VlORPb9LLwAJNsB7HOD XaTNoL/vc3WgcVwGzmW11kDKJAUwiH+6/aq1FZDc7+GKKGRDNnH6fEazV3xviU4Xdu C+/q5uFaTCGSUOqz7wG3tCyqcwsxuFowQGM9EqAXvug3eByaI82gwGU/LAA7W+0x7N lIyzQgQ47UaYju+tMMa6eYibyB5m2xJlH6icNOvjTXhyI/Ih1KbRLoHwZvr/gyzXyu vOgqeIZZrqb6yw/imXyF8xZATseZuyfjlfKJVafWUrfVejHNNcMI379QODomewks5q shTjXZO35vEXQ== Date: Sat, 17 Jun 2023 09:51:11 +0300 From: Mike Rapoport To: Song Liu Subject: Re: [PATCH v2 06/12] mm/execmem: introduce execmem_data_alloc() Message-ID: <20230617065111.GR52412@kernel.org> References: <20230616085038.4121892-1-rppt@kernel.org> <20230616085038.4121892-7-rppt@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , x86@kernel.org, Catalin Marinas , linux-mips@vger.kernel.org, linux-mm@kvack.org, sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org, Nadav Amit , linux-s390@vger.kernel.org, Helge Deller , Huacai Chen , Russell King , "Naveen N. Rao" , linux-trace-kernel@vger.kernel.org, Will Deacon , Heiko Carstens , Steven Rostedt , loongarch@lists.linux.dev, Thomas Gleixner , bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Thomas Bogendoerfer , linux-parisc@vger.kernel.org, Puranjay Mohan , netdev@vger.kernel.org, Kent Overstreet , linux-kernel@vger.kernel.org, Dinh Nguyen , Luis Chamberlain , Palmer Dabbelt , Andrew Morton , Rick Edgecombe , linuxppc-dev@lists.ozlabs.org, "David S. Miller" , linux-modules@vger.kernel.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Fri, Jun 16, 2023 at 01:01:08PM -0700, Song Liu wrote: > On Fri, Jun 16, 2023 at 1:51 AM Mike Rapoport wrote: > > > > From: "Mike Rapoport (IBM)" > > > > Data related to code allocations, such as module data section, need to > > comply with architecture constraints for its placement and its > > allocation right now was done using execmem_text_alloc(). > > > > Create a dedicated API for allocating data related to code allocations > > and allow architectures to define address ranges for data allocations. > > > > Since currently this is only relevant for powerpc variants that use the > > VMALLOC address space for module data allocations, automatically reuse > > address ranges defined for text unless address range for data is > > explicitly defined by an architecture. > > > > With separation of code and data allocations, data sections of the > > modules are now mapped as PAGE_KERNEL rather than PAGE_KERNEL_EXEC which > > was a default on many architectures. > > > > Signed-off-by: Mike Rapoport (IBM) > [...] > > static void free_mod_mem(struct module *mod) > > diff --git a/mm/execmem.c b/mm/execmem.c > > index a67acd75ffef..f7bf496ad4c3 100644 > > --- a/mm/execmem.c > > +++ b/mm/execmem.c > > @@ -63,6 +63,20 @@ void *execmem_text_alloc(size_t size) > > fallback_start, fallback_end, kasan); > > } > > > > +void *execmem_data_alloc(size_t size) > > +{ > > + unsigned long start = execmem_params.modules.data.start; > > + unsigned long end = execmem_params.modules.data.end; > > + pgprot_t pgprot = execmem_params.modules.data.pgprot; > > + unsigned int align = execmem_params.modules.data.alignment; > > + unsigned long fallback_start = execmem_params.modules.data.fallback_start; > > + unsigned long fallback_end = execmem_params.modules.data.fallback_end; > > + bool kasan = execmem_params.modules.flags & EXECMEM_KASAN_SHADOW; > > + > > + return execmem_alloc(size, start, end, align, pgprot, > > + fallback_start, fallback_end, kasan); > > +} > > + > > void execmem_free(void *ptr) > > { > > /* > > @@ -101,6 +115,28 @@ static bool execmem_validate_params(struct execmem_params *p) > > return true; > > } > > > > +static void execmem_init_missing(struct execmem_params *p) > > Shall we call this execmem_default_init_data? This also fills in jit.text (next patch), so _data doesn't work here :) And it's not really a default, the defaults are set explicitly for arches that don't have execmem_arch_params. > > +{ > > + struct execmem_modules_range *m = &p->modules; > > + > > + if (!pgprot_val(execmem_params.modules.data.pgprot)) > > + execmem_params.modules.data.pgprot = PAGE_KERNEL; > > Do we really need to check each of these? IOW, can we do: > > if (!pgprot_val(execmem_params.modules.data.pgprot)) { > execmem_params.modules.data.pgprot = PAGE_KERNEL; > execmem_params.modules.data.alignment = m->text.alignment; > execmem_params.modules.data.start = m->text.start; > execmem_params.modules.data.end = m->text.end; > execmem_params.modules.data.fallback_start = m->text.fallback_start; > execmem_params.modules.data.fallback_end = m->text.fallback_end; > } Yes, we can have a single check here. > Thanks, > Song > > [...] -- Sincerely yours, Mike. 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 BE6CDEB64D9 for ; Sat, 17 Jun 2023 06:52:23 +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:In-Reply-To:MIME-Version:References: 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=65vFcArzXsEvH81rA+7ZPUW6a1lxnFCNW+mPTmyYVjY=; b=AX07DROth4xeeU +AZ9DpaUC1dyyv5qaTEOPrzINtT/dVfuZIPYlvwUgQs9VXamdWVffKpmL4okDQtYCRagtdK5QIgKO d4pOvm0GvksbIEdYE03Urr4IkvKcaQz/mx8+QvFnWx/YEKy7VC+QE9ib0WbILa3KUvnbi3xCVSqkC TSC5RUFIaVqKWUc2+uSteljR+9hfFB1lCzdo95WKPaHNXsc3WD1DRr3g+pP6ZWPtgDtWREF8LmLYU khdU/pltkhWougNhfl/d15gyhNtVNrJiDlnDH9Ag6ahTPVGbQW0y2v7oF0Sz3JIi8OkNjryVHyJro q35pX9X4MmfjZ33AEmIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qAPn0-002vei-1b; Sat, 17 Jun 2023 06:52:02 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qAPmx-002vbu-0T; Sat, 17 Jun 2023 06:52:01 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 69FCC60B07; Sat, 17 Jun 2023 06:51:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F5A2C433C0; Sat, 17 Jun 2023 06:51:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686984717; bh=/qKKDaoSMPytALuHQ04GytBWLf/bqmvRcK74ppFE2a8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=P0RFez1EfGYRPTyev/ddBuUzPfaI7NYAV3qwPAYDnlRPd3VlORPb9LLwAJNsB7HOD XaTNoL/vc3WgcVwGzmW11kDKJAUwiH+6/aq1FZDc7+GKKGRDNnH6fEazV3xviU4Xdu C+/q5uFaTCGSUOqz7wG3tCyqcwsxuFowQGM9EqAXvug3eByaI82gwGU/LAA7W+0x7N lIyzQgQ47UaYju+tMMa6eYibyB5m2xJlH6icNOvjTXhyI/Ih1KbRLoHwZvr/gyzXyu vOgqeIZZrqb6yw/imXyF8xZATseZuyfjlfKJVafWUrfVejHNNcMI379QODomewks5q shTjXZO35vEXQ== Date: Sat, 17 Jun 2023 09:51:11 +0300 From: Mike Rapoport To: Song Liu Cc: linux-kernel@vger.kernel.org, Andrew Morton , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Mark Rutland , Michael Ellerman , Nadav Amit , "Naveen N. Rao" , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@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 Subject: Re: [PATCH v2 06/12] mm/execmem: introduce execmem_data_alloc() Message-ID: <20230617065111.GR52412@kernel.org> References: <20230616085038.4121892-1-rppt@kernel.org> <20230616085038.4121892-7-rppt@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230616_235159_294055_7D47D369 X-CRM114-Status: GOOD ( 29.40 ) 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 T24gRnJpLCBKdW4gMTYsIDIwMjMgYXQgMDE6MDE6MDhQTSAtMDcwMCwgU29uZyBMaXUgd3JvdGU6 Cj4gT24gRnJpLCBKdW4gMTYsIDIwMjMgYXQgMTo1MeKAr0FNIE1pa2UgUmFwb3BvcnQgPHJwcHRA a2VybmVsLm9yZz4gd3JvdGU6Cj4gPgo+ID4gRnJvbTogIk1pa2UgUmFwb3BvcnQgKElCTSkiIDxy cHB0QGtlcm5lbC5vcmc+Cj4gPgo+ID4gRGF0YSByZWxhdGVkIHRvIGNvZGUgYWxsb2NhdGlvbnMs IHN1Y2ggYXMgbW9kdWxlIGRhdGEgc2VjdGlvbiwgbmVlZCB0bwo+ID4gY29tcGx5IHdpdGggYXJj aGl0ZWN0dXJlIGNvbnN0cmFpbnRzIGZvciBpdHMgcGxhY2VtZW50IGFuZCBpdHMKPiA+IGFsbG9j YXRpb24gcmlnaHQgbm93IHdhcyBkb25lIHVzaW5nIGV4ZWNtZW1fdGV4dF9hbGxvYygpLgo+ID4K PiA+IENyZWF0ZSBhIGRlZGljYXRlZCBBUEkgZm9yIGFsbG9jYXRpbmcgZGF0YSByZWxhdGVkIHRv IGNvZGUgYWxsb2NhdGlvbnMKPiA+IGFuZCBhbGxvdyBhcmNoaXRlY3R1cmVzIHRvIGRlZmluZSBh ZGRyZXNzIHJhbmdlcyBmb3IgZGF0YSBhbGxvY2F0aW9ucy4KPiA+Cj4gPiBTaW5jZSBjdXJyZW50 bHkgdGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciBwb3dlcnBjIHZhcmlhbnRzIHRoYXQgdXNlIHRo ZQo+ID4gVk1BTExPQyBhZGRyZXNzIHNwYWNlIGZvciBtb2R1bGUgZGF0YSBhbGxvY2F0aW9ucywg YXV0b21hdGljYWxseSByZXVzZQo+ID4gYWRkcmVzcyByYW5nZXMgZGVmaW5lZCBmb3IgdGV4dCB1 bmxlc3MgYWRkcmVzcyByYW5nZSBmb3IgZGF0YSBpcwo+ID4gZXhwbGljaXRseSBkZWZpbmVkIGJ5 IGFuIGFyY2hpdGVjdHVyZS4KPiA+Cj4gPiBXaXRoIHNlcGFyYXRpb24gb2YgY29kZSBhbmQgZGF0 YSBhbGxvY2F0aW9ucywgZGF0YSBzZWN0aW9ucyBvZiB0aGUKPiA+IG1vZHVsZXMgYXJlIG5vdyBt YXBwZWQgYXMgUEFHRV9LRVJORUwgcmF0aGVyIHRoYW4gUEFHRV9LRVJORUxfRVhFQyB3aGljaAo+ ID4gd2FzIGEgZGVmYXVsdCBvbiBtYW55IGFyY2hpdGVjdHVyZXMuCj4gPgo+ID4gU2lnbmVkLW9m Zi1ieTogTWlrZSBSYXBvcG9ydCAoSUJNKSA8cnBwdEBrZXJuZWwub3JnPgo+IFsuLi5dCj4gPiAg c3RhdGljIHZvaWQgZnJlZV9tb2RfbWVtKHN0cnVjdCBtb2R1bGUgKm1vZCkKPiA+IGRpZmYgLS1n aXQgYS9tbS9leGVjbWVtLmMgYi9tbS9leGVjbWVtLmMKPiA+IGluZGV4IGE2N2FjZDc1ZmZlZi4u ZjdiZjQ5NmFkNGMzIDEwMDY0NAo+ID4gLS0tIGEvbW0vZXhlY21lbS5jCj4gPiArKysgYi9tbS9l eGVjbWVtLmMKPiA+IEBAIC02Myw2ICs2MywyMCBAQCB2b2lkICpleGVjbWVtX3RleHRfYWxsb2Mo c2l6ZV90IHNpemUpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrX3N0 YXJ0LCBmYWxsYmFja19lbmQsIGthc2FuKTsKPiA+ICB9Cj4gPgo+ID4gK3ZvaWQgKmV4ZWNtZW1f ZGF0YV9hbGxvYyhzaXplX3Qgc2l6ZSkKPiA+ICt7Cj4gPiArICAgICAgIHVuc2lnbmVkIGxvbmcg c3RhcnQgPSBleGVjbWVtX3BhcmFtcy5tb2R1bGVzLmRhdGEuc3RhcnQ7Cj4gPiArICAgICAgIHVu c2lnbmVkIGxvbmcgZW5kID0gZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLmVuZDsKPiA+ICsg ICAgICAgcGdwcm90X3QgcGdwcm90ID0gZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLnBncHJv dDsKPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGFsaWduID0gZXhlY21lbV9wYXJhbXMubW9kdWxl cy5kYXRhLmFsaWdubWVudDsKPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBmYWxsYmFja19zdGFy dCA9IGV4ZWNtZW1fcGFyYW1zLm1vZHVsZXMuZGF0YS5mYWxsYmFja19zdGFydDsKPiA+ICsgICAg ICAgdW5zaWduZWQgbG9uZyBmYWxsYmFja19lbmQgPSBleGVjbWVtX3BhcmFtcy5tb2R1bGVzLmRh dGEuZmFsbGJhY2tfZW5kOwo+ID4gKyAgICAgICBib29sIGthc2FuID0gZXhlY21lbV9wYXJhbXMu bW9kdWxlcy5mbGFncyAmIEVYRUNNRU1fS0FTQU5fU0hBRE9XOwo+ID4gKwo+ID4gKyAgICAgICBy ZXR1cm4gZXhlY21lbV9hbGxvYyhzaXplLCBzdGFydCwgZW5kLCBhbGlnbiwgcGdwcm90LAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja19zdGFydCwgZmFsbGJhY2tfZW5k LCBrYXNhbik7Cj4gPiArfQo+ID4gKwo+ID4gIHZvaWQgZXhlY21lbV9mcmVlKHZvaWQgKnB0cikK PiA+ICB7Cj4gPiAgICAgICAgIC8qCj4gPiBAQCAtMTAxLDYgKzExNSwyOCBAQCBzdGF0aWMgYm9v bCBleGVjbWVtX3ZhbGlkYXRlX3BhcmFtcyhzdHJ1Y3QgZXhlY21lbV9wYXJhbXMgKnApCj4gPiAg ICAgICAgIHJldHVybiB0cnVlOwo+ID4gIH0KPiA+Cj4gPiArc3RhdGljIHZvaWQgZXhlY21lbV9p bml0X21pc3Npbmcoc3RydWN0IGV4ZWNtZW1fcGFyYW1zICpwKQo+IAo+IFNoYWxsIHdlIGNhbGwg dGhpcyBleGVjbWVtX2RlZmF1bHRfaW5pdF9kYXRhPwoKVGhpcyBhbHNvIGZpbGxzIGluIGppdC50 ZXh0IChuZXh0IHBhdGNoKSwgc28gX2RhdGEgZG9lc24ndCB3b3JrIGhlcmUgOikKQW5kIGl0J3Mg bm90IHJlYWxseSBhIGRlZmF1bHQsIHRoZSBkZWZhdWx0cyBhcmUgc2V0IGV4cGxpY2l0bHkgZm9y IGFyY2hlcwp0aGF0IGRvbid0IGhhdmUgZXhlY21lbV9hcmNoX3BhcmFtcy4KIAo+ID4gK3sKPiA+ ICsgICAgICAgc3RydWN0IGV4ZWNtZW1fbW9kdWxlc19yYW5nZSAqbSA9ICZwLT5tb2R1bGVzOwo+ ID4gKwo+ID4gKyAgICAgICBpZiAoIXBncHJvdF92YWwoZXhlY21lbV9wYXJhbXMubW9kdWxlcy5k YXRhLnBncHJvdCkpCj4gPiArICAgICAgICAgICAgICAgZXhlY21lbV9wYXJhbXMubW9kdWxlcy5k YXRhLnBncHJvdCA9IFBBR0VfS0VSTkVMOwo+IAo+IERvIHdlIHJlYWxseSBuZWVkIHRvIGNoZWNr IGVhY2ggb2YgdGhlc2U/IElPVywgY2FuIHdlIGRvOgo+IAo+IGlmICghcGdwcm90X3ZhbChleGVj bWVtX3BhcmFtcy5tb2R1bGVzLmRhdGEucGdwcm90KSkgewo+ICAgICAgICBleGVjbWVtX3BhcmFt cy5tb2R1bGVzLmRhdGEucGdwcm90ID0gUEFHRV9LRVJORUw7Cj4gICAgICAgIGV4ZWNtZW1fcGFy YW1zLm1vZHVsZXMuZGF0YS5hbGlnbm1lbnQgPSBtLT50ZXh0LmFsaWdubWVudDsKPiAgICAgICAg ZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLnN0YXJ0ID0gbS0+dGV4dC5zdGFydDsKPiAgICAg ICAgZXhlY21lbV9wYXJhbXMubW9kdWxlcy5kYXRhLmVuZCA9IG0tPnRleHQuZW5kOwo+ICAgICAg ICBleGVjbWVtX3BhcmFtcy5tb2R1bGVzLmRhdGEuZmFsbGJhY2tfc3RhcnQgPSBtLT50ZXh0LmZh bGxiYWNrX3N0YXJ0Owo+ICAgICAgIGV4ZWNtZW1fcGFyYW1zLm1vZHVsZXMuZGF0YS5mYWxsYmFj a19lbmQgPSBtLT50ZXh0LmZhbGxiYWNrX2VuZDsKPiB9CgpZZXMsIHdlIGNhbiBoYXZlIGEgc2lu Z2xlIGNoZWNrIGhlcmUuCiAKPiBUaGFua3MsCj4gU29uZwo+IAo+IFsuLi5dCgotLSAKU2luY2Vy ZWx5IHlvdXJzLApNaWtlLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=