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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 12760C7EE2C for ; Sat, 27 May 2023 10:42:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232031AbjE0KmM (ORCPT ); Sat, 27 May 2023 06:42:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229717AbjE0KmL (ORCPT ); Sat, 27 May 2023 06:42:11 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0EBF110A; Sat, 27 May 2023 03:42:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9EF3F60B67; Sat, 27 May 2023 10:42:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE11AC433EF; Sat, 27 May 2023 10:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685184129; bh=Z4TeIapFpeS1e5WxOMUpOrDg87Rxe8ydQavxJsO0vug=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qtjpACU3i7FVjLT023Ddg5iX1Sm9mYGyR9BAcAldcZGtkGi1IgPSjR20Gkom5YVFi 9GqwWTqSe6aCGE+Jk6r1lk9ASI1BqwfpG0h2HSrQ1BaMlG84/DZwyIoKGVbNuFJs46 KM/CX4KgN01bs8ctMAmNzdH3P/7vJMOVtl/spQpp1NeNWLVBfmoG8tubTTHEz78nbM Mi5TzSK4O/LtfJpDtvhI5QLWzSn68VROvh7bVsKVmfCA0L8DXw2EUj7uC78b19+5Rx 6iPjAV5tMRrgS7SBBOhhGo75UiSObo7waKqxJ5uuMYjPYcI7MRtTbdg+ba8TB9jNgs b+IpYHQpsYW9A== Date: Sat, 27 May 2023 13:41:44 +0300 From: Mike Rapoport To: Vishal Moola Cc: Andrew Morton , Matthew Wilcox , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org Subject: Re: [PATCH v2 05/34] mm: add utility functions for ptdesc Message-ID: <20230527104144.GH4967@kernel.org> References: <20230501192829.17086-1-vishal.moola@gmail.com> <20230501192829.17086-6-vishal.moola@gmail.com> <20230525090956.GX4967@kernel.org> <20230525202537.GA4967@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-arch@vger.kernel.org On Thu, May 25, 2023 at 01:53:24PM -0700, Vishal Moola wrote: > On Thu, May 25, 2023 at 1:26 PM Mike Rapoport wrote: > > > > On Thu, May 25, 2023 at 11:04:28AM -0700, Vishal Moola wrote: > > > On Thu, May 25, 2023 at 2:10 AM Mike Rapoport wrote: > > > > > + > > > > > +static inline struct ptdesc *ptdesc_alloc(gfp_t gfp, unsigned int order) > > > > > +{ > > > > > + struct page *page = alloc_pages(gfp | __GFP_COMP, order); > > > > > + > > > > > + return page_ptdesc(page); > > > > > +} > > > > > + > > > > > +static inline void ptdesc_free(struct ptdesc *pt) > > > > > +{ > > > > > + struct page *page = ptdesc_page(pt); > > > > > + > > > > > + __free_pages(page, compound_order(page)); > > > > > +} > > > > > > > > The ptdesc_{alloc,free} API does not sound right to me. The name > > > > ptdesc_alloc() implies the allocation of the ptdesc itself, rather than > > > > allocation of page table page. The same goes for free. > > > > > > I'm not sure I see the difference. Could you elaborate? > > > > I read ptdesc_alloc() as "allocate a ptdesc" rather than as "allocate a > > page for page table and return ptdesc pointing to that page". Seems very > > confusing to me already and it will be even more confusion when we'll start > > allocating actual ptdescs. > > Hmm, I see what you're saying. I'm envisioning this function evolving into > one that allocates a ptdesc later. I don't see why we would need to have both a > page table page AND ptdesc at any point, but that may be a lack of knowledge > from my part. Sorry if I wasn't clear, by "page table page" I meant the page (or memory for that matter) for actual page table rather than struct page describing that memory. So what we allocate here is the actual memory for the page tables and not the memory for the metadata. That's why I think the name ptdesc_alloc is confusing. > I was thinking later, if necessary, we could make another function > (only to be used internally) to allocate page table pages. -- 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 416E1C77B73 for ; Sat, 27 May 2023 10:42:28 +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=I4X4pVcKZD/Mdj+eneOp62poi/gwe3EKT4x3Mkh6PDw=; b=wcVtOQwxvfj0Af prrTDkMFMggKu6tc56+8KqtLu/EBv3HuTjOiQEQAq0UYqaA7ZtgvV+T0AIER2XFZnWXvwExZN4y9W jw+sPMINLhRBfYQy5NGG8zlt7B8bqDNbM5C8U5is2si5eBCuSQ3QvHSsPKa4woErQ59NPdeO0eHvu u0gEKTCy1P+jBtnPx3CXmU4hZnrsQpVTwyPrKhROsRhm0mx3g9+ltD3rNputbaSVXrrjhtncsP7vz Oltd0MhxfG5QCZJcLXkbKrusZI/2PA0vafLUmmIh8d2ugQjucOnHeVP7oC9Fuk3AnzhPF+OYZHWok gCgd5/lGpBM8JPGhppIA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q2rNG-005TvN-0v; Sat, 27 May 2023 10:42:14 +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 1q2rNC-005Tti-2S; Sat, 27 May 2023 10:42:12 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9F50861072; Sat, 27 May 2023 10:42:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE11AC433EF; Sat, 27 May 2023 10:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685184129; bh=Z4TeIapFpeS1e5WxOMUpOrDg87Rxe8ydQavxJsO0vug=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qtjpACU3i7FVjLT023Ddg5iX1Sm9mYGyR9BAcAldcZGtkGi1IgPSjR20Gkom5YVFi 9GqwWTqSe6aCGE+Jk6r1lk9ASI1BqwfpG0h2HSrQ1BaMlG84/DZwyIoKGVbNuFJs46 KM/CX4KgN01bs8ctMAmNzdH3P/7vJMOVtl/spQpp1NeNWLVBfmoG8tubTTHEz78nbM Mi5TzSK4O/LtfJpDtvhI5QLWzSn68VROvh7bVsKVmfCA0L8DXw2EUj7uC78b19+5Rx 6iPjAV5tMRrgS7SBBOhhGo75UiSObo7waKqxJ5uuMYjPYcI7MRtTbdg+ba8TB9jNgs b+IpYHQpsYW9A== Date: Sat, 27 May 2023 13:41:44 +0300 From: Mike Rapoport To: Vishal Moola Cc: Andrew Morton , Matthew Wilcox , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org Subject: Re: [PATCH v2 05/34] mm: add utility functions for ptdesc Message-ID: <20230527104144.GH4967@kernel.org> References: <20230501192829.17086-1-vishal.moola@gmail.com> <20230501192829.17086-6-vishal.moola@gmail.com> <20230525090956.GX4967@kernel.org> <20230525202537.GA4967@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-20230527_034210_907718_3302A13C X-CRM114-Status: GOOD ( 23.36 ) 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 T24gVGh1LCBNYXkgMjUsIDIwMjMgYXQgMDE6NTM6MjRQTSAtMDcwMCwgVmlzaGFsIE1vb2xhIHdy b3RlOgo+IE9uIFRodSwgTWF5IDI1LCAyMDIzIGF0IDE6MjbigK9QTSBNaWtlIFJhcG9wb3J0IDxy cHB0QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFRodSwgTWF5IDI1LCAyMDIzIGF0IDEx OjA0OjI4QU0gLTA3MDAsIFZpc2hhbCBNb29sYSB3cm90ZToKPiA+ID4gT24gVGh1LCBNYXkgMjUs IDIwMjMgYXQgMjoxMOKAr0FNIE1pa2UgUmFwb3BvcnQgPHJwcHRAa2VybmVsLm9yZz4gd3JvdGU6 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgcHRkZXNjICpwdGRl c2NfYWxsb2MoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIpCj4gPiA+ID4gPiArewo+ID4g PiA+ID4gKyAgICAgc3RydWN0IHBhZ2UgKnBhZ2UgPSBhbGxvY19wYWdlcyhnZnAgfCBfX0dGUF9D T01QLCBvcmRlcik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICByZXR1cm4gcGFnZV9wdGRl c2MocGFnZSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0YXRpYyBpbmxp bmUgdm9pZCBwdGRlc2NfZnJlZShzdHJ1Y3QgcHRkZXNjICpwdCkKPiA+ID4gPiA+ICt7Cj4gPiA+ ID4gPiArICAgICBzdHJ1Y3QgcGFnZSAqcGFnZSA9IHB0ZGVzY19wYWdlKHB0KTsKPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICsgICAgIF9fZnJlZV9wYWdlcyhwYWdlLCBjb21wb3VuZF9vcmRlcihwYWdl KSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+Cj4gPiA+ID4gVGhlIHB0ZGVzY197YWxsb2MsZnJlZX0g QVBJIGRvZXMgbm90IHNvdW5kIHJpZ2h0IHRvIG1lLiBUaGUgbmFtZQo+ID4gPiA+IHB0ZGVzY19h bGxvYygpIGltcGxpZXMgdGhlIGFsbG9jYXRpb24gb2YgdGhlIHB0ZGVzYyBpdHNlbGYsIHJhdGhl ciB0aGFuCj4gPiA+ID4gYWxsb2NhdGlvbiBvZiBwYWdlIHRhYmxlIHBhZ2UuIFRoZSBzYW1lIGdv ZXMgZm9yIGZyZWUuCj4gPiA+Cj4gPiA+IEknbSBub3Qgc3VyZSBJIHNlZSB0aGUgZGlmZmVyZW5j ZS4gQ291bGQgeW91IGVsYWJvcmF0ZT8KPiA+Cj4gPiBJIHJlYWQgcHRkZXNjX2FsbG9jKCkgYXMg ImFsbG9jYXRlIGEgcHRkZXNjIiByYXRoZXIgdGhhbiBhcyAiYWxsb2NhdGUgYQo+ID4gcGFnZSBm b3IgcGFnZSB0YWJsZSBhbmQgcmV0dXJuIHB0ZGVzYyBwb2ludGluZyB0byB0aGF0IHBhZ2UiLiBT ZWVtcyB2ZXJ5Cj4gPiBjb25mdXNpbmcgdG8gbWUgYWxyZWFkeSBhbmQgaXQgd2lsbCBiZSBldmVu IG1vcmUgY29uZnVzaW9uIHdoZW4gd2UnbGwgc3RhcnQKPiA+IGFsbG9jYXRpbmcgYWN0dWFsIHB0 ZGVzY3MuCj4gCj4gSG1tLCBJIHNlZSB3aGF0IHlvdSdyZSBzYXlpbmcuIEknbSBlbnZpc2lvbmlu ZyB0aGlzIGZ1bmN0aW9uIGV2b2x2aW5nIGludG8KPiBvbmUgdGhhdCBhbGxvY2F0ZXMgYSBwdGRl c2MgbGF0ZXIuIEkgZG9uJ3Qgc2VlIHdoeSB3ZSB3b3VsZCBuZWVkIHRvIGhhdmUgYm90aCBhCj4g cGFnZSB0YWJsZSBwYWdlIEFORCBwdGRlc2MgYXQgYW55IHBvaW50LCBidXQgdGhhdCBtYXkgYmUg YSBsYWNrIG9mIGtub3dsZWRnZQo+IGZyb20gbXkgcGFydC4KClNvcnJ5IGlmIEkgd2Fzbid0IGNs ZWFyLCBieSAicGFnZSB0YWJsZSBwYWdlIiBJIG1lYW50IHRoZSBwYWdlIChvciBtZW1vcnkKZm9y IHRoYXQgbWF0dGVyKSBmb3IgYWN0dWFsIHBhZ2UgdGFibGUgcmF0aGVyIHRoYW4gc3RydWN0IHBh Z2UgZGVzY3JpYmluZwp0aGF0IG1lbW9yeS4KClNvIHdoYXQgd2UgYWxsb2NhdGUgaGVyZSBpcyB0 aGUgYWN0dWFsIG1lbW9yeSBmb3IgdGhlIHBhZ2UgdGFibGVzIGFuZCBub3QKdGhlIG1lbW9yeSBm b3IgdGhlIG1ldGFkYXRhLiBUaGF0J3Mgd2h5IEkgdGhpbmsgdGhlIG5hbWUgcHRkZXNjX2FsbG9j IGlzCmNvbmZ1c2luZy4KIAo+IEkgd2FzIHRoaW5raW5nIGxhdGVyLCBpZiBuZWNlc3NhcnksIHdl IGNvdWxkIG1ha2UgYW5vdGhlciBmdW5jdGlvbgo+IChvbmx5IHRvIGJlIHVzZWQgaW50ZXJuYWxs eSkgdG8gYWxsb2NhdGUgcGFnZSB0YWJsZSBwYWdlcy4KCi0tIApTaW5jZXJlbHkgeW91cnMsCk1p a2UuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== 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 94088C77B7E for ; Sat, 27 May 2023 10:42:16 +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=Zxklo0hpQblgiCdDXDvR3KqG+fdNz9Qz05tjhGf69YI=; b=b+Z+exRkWxZrLK Nx3NjpM5xi0Jcxd9f4BZLNokYSlmR2DCeflY782yrorlk0qlw9n3/RTzkwNWX13m6lqrEDYtIFZ28 44hkz7cZBb/C95b7RIp8akd4YuUdZGxsq9ZuaUsKX6OurxpdWH1HLkR23Bh2u8x+H9WuscKBS/cle hA5Xj4E71Siuhbw3TETouaGmCLPLrz9WCLss8bpeLaGNPBJMckUuRHWVbS6joSVZvsj7m30IW17uG DKtiuMbx5f+cuCzQkfbHNHE+bkL5XlQNfpn7+W/QLphiVVtgy2GbsnF9ml+Q+N9kt6YGhFlnSUrMb frbH43SU5M6KYR2U5F7A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q2rNG-005Tw5-37; Sat, 27 May 2023 10:42:15 +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 1q2rNC-005Tti-2S; Sat, 27 May 2023 10:42:12 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9F50861072; Sat, 27 May 2023 10:42:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE11AC433EF; Sat, 27 May 2023 10:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685184129; bh=Z4TeIapFpeS1e5WxOMUpOrDg87Rxe8ydQavxJsO0vug=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qtjpACU3i7FVjLT023Ddg5iX1Sm9mYGyR9BAcAldcZGtkGi1IgPSjR20Gkom5YVFi 9GqwWTqSe6aCGE+Jk6r1lk9ASI1BqwfpG0h2HSrQ1BaMlG84/DZwyIoKGVbNuFJs46 KM/CX4KgN01bs8ctMAmNzdH3P/7vJMOVtl/spQpp1NeNWLVBfmoG8tubTTHEz78nbM Mi5TzSK4O/LtfJpDtvhI5QLWzSn68VROvh7bVsKVmfCA0L8DXw2EUj7uC78b19+5Rx 6iPjAV5tMRrgS7SBBOhhGo75UiSObo7waKqxJ5uuMYjPYcI7MRtTbdg+ba8TB9jNgs b+IpYHQpsYW9A== Date: Sat, 27 May 2023 13:41:44 +0300 From: Mike Rapoport To: Vishal Moola Cc: Andrew Morton , Matthew Wilcox , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org Subject: Re: [PATCH v2 05/34] mm: add utility functions for ptdesc Message-ID: <20230527104144.GH4967@kernel.org> References: <20230501192829.17086-1-vishal.moola@gmail.com> <20230501192829.17086-6-vishal.moola@gmail.com> <20230525090956.GX4967@kernel.org> <20230525202537.GA4967@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-20230527_034210_907718_3302A13C X-CRM114-Status: GOOD ( 23.36 ) X-BeenThere: linux-um@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-um" Errors-To: linux-um-bounces+linux-um=archiver.kernel.org@lists.infradead.org T24gVGh1LCBNYXkgMjUsIDIwMjMgYXQgMDE6NTM6MjRQTSAtMDcwMCwgVmlzaGFsIE1vb2xhIHdy b3RlOgo+IE9uIFRodSwgTWF5IDI1LCAyMDIzIGF0IDE6MjbigK9QTSBNaWtlIFJhcG9wb3J0IDxy cHB0QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFRodSwgTWF5IDI1LCAyMDIzIGF0IDEx OjA0OjI4QU0gLTA3MDAsIFZpc2hhbCBNb29sYSB3cm90ZToKPiA+ID4gT24gVGh1LCBNYXkgMjUs IDIwMjMgYXQgMjoxMOKAr0FNIE1pa2UgUmFwb3BvcnQgPHJwcHRAa2VybmVsLm9yZz4gd3JvdGU6 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgcHRkZXNjICpwdGRl c2NfYWxsb2MoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIpCj4gPiA+ID4gPiArewo+ID4g PiA+ID4gKyAgICAgc3RydWN0IHBhZ2UgKnBhZ2UgPSBhbGxvY19wYWdlcyhnZnAgfCBfX0dGUF9D T01QLCBvcmRlcik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICByZXR1cm4gcGFnZV9wdGRl c2MocGFnZSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0YXRpYyBpbmxp bmUgdm9pZCBwdGRlc2NfZnJlZShzdHJ1Y3QgcHRkZXNjICpwdCkKPiA+ID4gPiA+ICt7Cj4gPiA+ ID4gPiArICAgICBzdHJ1Y3QgcGFnZSAqcGFnZSA9IHB0ZGVzY19wYWdlKHB0KTsKPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICsgICAgIF9fZnJlZV9wYWdlcyhwYWdlLCBjb21wb3VuZF9vcmRlcihwYWdl KSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+Cj4gPiA+ID4gVGhlIHB0ZGVzY197YWxsb2MsZnJlZX0g QVBJIGRvZXMgbm90IHNvdW5kIHJpZ2h0IHRvIG1lLiBUaGUgbmFtZQo+ID4gPiA+IHB0ZGVzY19h bGxvYygpIGltcGxpZXMgdGhlIGFsbG9jYXRpb24gb2YgdGhlIHB0ZGVzYyBpdHNlbGYsIHJhdGhl ciB0aGFuCj4gPiA+ID4gYWxsb2NhdGlvbiBvZiBwYWdlIHRhYmxlIHBhZ2UuIFRoZSBzYW1lIGdv ZXMgZm9yIGZyZWUuCj4gPiA+Cj4gPiA+IEknbSBub3Qgc3VyZSBJIHNlZSB0aGUgZGlmZmVyZW5j ZS4gQ291bGQgeW91IGVsYWJvcmF0ZT8KPiA+Cj4gPiBJIHJlYWQgcHRkZXNjX2FsbG9jKCkgYXMg ImFsbG9jYXRlIGEgcHRkZXNjIiByYXRoZXIgdGhhbiBhcyAiYWxsb2NhdGUgYQo+ID4gcGFnZSBm b3IgcGFnZSB0YWJsZSBhbmQgcmV0dXJuIHB0ZGVzYyBwb2ludGluZyB0byB0aGF0IHBhZ2UiLiBT ZWVtcyB2ZXJ5Cj4gPiBjb25mdXNpbmcgdG8gbWUgYWxyZWFkeSBhbmQgaXQgd2lsbCBiZSBldmVu IG1vcmUgY29uZnVzaW9uIHdoZW4gd2UnbGwgc3RhcnQKPiA+IGFsbG9jYXRpbmcgYWN0dWFsIHB0 ZGVzY3MuCj4gCj4gSG1tLCBJIHNlZSB3aGF0IHlvdSdyZSBzYXlpbmcuIEknbSBlbnZpc2lvbmlu ZyB0aGlzIGZ1bmN0aW9uIGV2b2x2aW5nIGludG8KPiBvbmUgdGhhdCBhbGxvY2F0ZXMgYSBwdGRl c2MgbGF0ZXIuIEkgZG9uJ3Qgc2VlIHdoeSB3ZSB3b3VsZCBuZWVkIHRvIGhhdmUgYm90aCBhCj4g cGFnZSB0YWJsZSBwYWdlIEFORCBwdGRlc2MgYXQgYW55IHBvaW50LCBidXQgdGhhdCBtYXkgYmUg YSBsYWNrIG9mIGtub3dsZWRnZQo+IGZyb20gbXkgcGFydC4KClNvcnJ5IGlmIEkgd2Fzbid0IGNs ZWFyLCBieSAicGFnZSB0YWJsZSBwYWdlIiBJIG1lYW50IHRoZSBwYWdlIChvciBtZW1vcnkKZm9y IHRoYXQgbWF0dGVyKSBmb3IgYWN0dWFsIHBhZ2UgdGFibGUgcmF0aGVyIHRoYW4gc3RydWN0IHBh Z2UgZGVzY3JpYmluZwp0aGF0IG1lbW9yeS4KClNvIHdoYXQgd2UgYWxsb2NhdGUgaGVyZSBpcyB0 aGUgYWN0dWFsIG1lbW9yeSBmb3IgdGhlIHBhZ2UgdGFibGVzIGFuZCBub3QKdGhlIG1lbW9yeSBm b3IgdGhlIG1ldGFkYXRhLiBUaGF0J3Mgd2h5IEkgdGhpbmsgdGhlIG5hbWUgcHRkZXNjX2FsbG9j IGlzCmNvbmZ1c2luZy4KIAo+IEkgd2FzIHRoaW5raW5nIGxhdGVyLCBpZiBuZWNlc3NhcnksIHdl IGNvdWxkIG1ha2UgYW5vdGhlciBmdW5jdGlvbgo+IChvbmx5IHRvIGJlIHVzZWQgaW50ZXJuYWxs eSkgdG8gYWxsb2NhdGUgcGFnZSB0YWJsZSBwYWdlcy4KCi0tIApTaW5jZXJlbHkgeW91cnMsCk1p a2UuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC11bSBtYWlsaW5nIGxpc3QKbGludXgtdW1AbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXVtCg== 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 C9F69C77B73 for ; Sat, 27 May 2023 10:43:07 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4QSz0967SWz3fHs for ; Sat, 27 May 2023 20:43:05 +1000 (AEST) 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=qtjpACU3; 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=) 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=qtjpACU3; dkim-atps=neutral Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4QSyz83q7Hz3f5c for ; Sat, 27 May 2023 20:42:12 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9F50861072; Sat, 27 May 2023 10:42:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE11AC433EF; Sat, 27 May 2023 10:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685184129; bh=Z4TeIapFpeS1e5WxOMUpOrDg87Rxe8ydQavxJsO0vug=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qtjpACU3i7FVjLT023Ddg5iX1Sm9mYGyR9BAcAldcZGtkGi1IgPSjR20Gkom5YVFi 9GqwWTqSe6aCGE+Jk6r1lk9ASI1BqwfpG0h2HSrQ1BaMlG84/DZwyIoKGVbNuFJs46 KM/CX4KgN01bs8ctMAmNzdH3P/7vJMOVtl/spQpp1NeNWLVBfmoG8tubTTHEz78nbM Mi5TzSK4O/LtfJpDtvhI5QLWzSn68VROvh7bVsKVmfCA0L8DXw2EUj7uC78b19+5Rx 6iPjAV5tMRrgS7SBBOhhGo75UiSObo7waKqxJ5uuMYjPYcI7MRtTbdg+ba8TB9jNgs b+IpYHQpsYW9A== Date: Sat, 27 May 2023 13:41:44 +0300 From: Mike Rapoport To: Vishal Moola Subject: Re: [PATCH v2 05/34] mm: add utility functions for ptdesc Message-ID: <20230527104144.GH4967@kernel.org> References: <20230501192829.17086-1-vishal.moola@gmail.com> <20230501192829.17086-6-vishal.moola@gmail.com> <20230525090956.GX4967@kernel.org> <20230525202537.GA4967@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: linux-arch@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-sh@vger.kernel.org, linux-um@lists.infradead.org, linux-mips@vger.kernel.org, linux-csky@vger.kernel.org, linux-mm@kvack.org, linux-m68k@lists.linux-m68k.org, Matthew Wilcox , loongarch@lists.linux.dev, sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, Andrew Morton , linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Thu, May 25, 2023 at 01:53:24PM -0700, Vishal Moola wrote: > On Thu, May 25, 2023 at 1:26 PM Mike Rapoport wrote: > > > > On Thu, May 25, 2023 at 11:04:28AM -0700, Vishal Moola wrote: > > > On Thu, May 25, 2023 at 2:10 AM Mike Rapoport wrote: > > > > > + > > > > > +static inline struct ptdesc *ptdesc_alloc(gfp_t gfp, unsigned int order) > > > > > +{ > > > > > + struct page *page = alloc_pages(gfp | __GFP_COMP, order); > > > > > + > > > > > + return page_ptdesc(page); > > > > > +} > > > > > + > > > > > +static inline void ptdesc_free(struct ptdesc *pt) > > > > > +{ > > > > > + struct page *page = ptdesc_page(pt); > > > > > + > > > > > + __free_pages(page, compound_order(page)); > > > > > +} > > > > > > > > The ptdesc_{alloc,free} API does not sound right to me. The name > > > > ptdesc_alloc() implies the allocation of the ptdesc itself, rather than > > > > allocation of page table page. The same goes for free. > > > > > > I'm not sure I see the difference. Could you elaborate? > > > > I read ptdesc_alloc() as "allocate a ptdesc" rather than as "allocate a > > page for page table and return ptdesc pointing to that page". Seems very > > confusing to me already and it will be even more confusion when we'll start > > allocating actual ptdescs. > > Hmm, I see what you're saying. I'm envisioning this function evolving into > one that allocates a ptdesc later. I don't see why we would need to have both a > page table page AND ptdesc at any point, but that may be a lack of knowledge > from my part. Sorry if I wasn't clear, by "page table page" I meant the page (or memory for that matter) for actual page table rather than struct page describing that memory. So what we allocate here is the actual memory for the page tables and not the memory for the metadata. That's why I think the name ptdesc_alloc is confusing. > I was thinking later, if necessary, we could make another function > (only to be used internally) to allocate page table pages. -- 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 E5CD2C77B7E for ; Sat, 27 May 2023 10:42:40 +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=XUHIcXq78BDm1tggwwNvfPHWFy7SVCTtKsMb/4EUC+k=; b=4E1I23wdrSFY6I A86mHZu4ya4ZbjP99zaWKYpBHwAbH2E1uUPsKE39TgIjoHLAi55w6VnhE8mArE2ukoMyxdAZ+06at 2TssAIDK0ue1gl/OpMJaWv7Y7cyUuDFNOI5RRpt13ElDARVi4rOFmKYvxZiDspR1SqZ/Cd8ihZlc9 qyyeWPDbsmDkKyhAYfIhe20T/Uge/4oR/SEpVCPuekebv9rgzgSXOmrI1ho4xGxJgHGXnRVHhD05E RjaqQe93Q/5Wh0HEK99/2rKja7BGCXTx5Q9n9YypR1+iekxLUbt8446HcFexrlpPacC5eZzmBDE6/ OaNU78t3DM1Rhww1kh6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q2rNF-005Tv6-2e; Sat, 27 May 2023 10:42:13 +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 1q2rNC-005Tti-2S; Sat, 27 May 2023 10:42:12 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9F50861072; Sat, 27 May 2023 10:42:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE11AC433EF; Sat, 27 May 2023 10:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685184129; bh=Z4TeIapFpeS1e5WxOMUpOrDg87Rxe8ydQavxJsO0vug=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qtjpACU3i7FVjLT023Ddg5iX1Sm9mYGyR9BAcAldcZGtkGi1IgPSjR20Gkom5YVFi 9GqwWTqSe6aCGE+Jk6r1lk9ASI1BqwfpG0h2HSrQ1BaMlG84/DZwyIoKGVbNuFJs46 KM/CX4KgN01bs8ctMAmNzdH3P/7vJMOVtl/spQpp1NeNWLVBfmoG8tubTTHEz78nbM Mi5TzSK4O/LtfJpDtvhI5QLWzSn68VROvh7bVsKVmfCA0L8DXw2EUj7uC78b19+5Rx 6iPjAV5tMRrgS7SBBOhhGo75UiSObo7waKqxJ5uuMYjPYcI7MRtTbdg+ba8TB9jNgs b+IpYHQpsYW9A== Date: Sat, 27 May 2023 13:41:44 +0300 From: Mike Rapoport To: Vishal Moola Cc: Andrew Morton , Matthew Wilcox , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org Subject: Re: [PATCH v2 05/34] mm: add utility functions for ptdesc Message-ID: <20230527104144.GH4967@kernel.org> References: <20230501192829.17086-1-vishal.moola@gmail.com> <20230501192829.17086-6-vishal.moola@gmail.com> <20230525090956.GX4967@kernel.org> <20230525202537.GA4967@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-20230527_034210_907718_3302A13C X-CRM114-Status: GOOD ( 23.36 ) 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 T24gVGh1LCBNYXkgMjUsIDIwMjMgYXQgMDE6NTM6MjRQTSAtMDcwMCwgVmlzaGFsIE1vb2xhIHdy b3RlOgo+IE9uIFRodSwgTWF5IDI1LCAyMDIzIGF0IDE6MjbigK9QTSBNaWtlIFJhcG9wb3J0IDxy cHB0QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFRodSwgTWF5IDI1LCAyMDIzIGF0IDEx OjA0OjI4QU0gLTA3MDAsIFZpc2hhbCBNb29sYSB3cm90ZToKPiA+ID4gT24gVGh1LCBNYXkgMjUs IDIwMjMgYXQgMjoxMOKAr0FNIE1pa2UgUmFwb3BvcnQgPHJwcHRAa2VybmVsLm9yZz4gd3JvdGU6 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgcHRkZXNjICpwdGRl c2NfYWxsb2MoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIpCj4gPiA+ID4gPiArewo+ID4g PiA+ID4gKyAgICAgc3RydWN0IHBhZ2UgKnBhZ2UgPSBhbGxvY19wYWdlcyhnZnAgfCBfX0dGUF9D T01QLCBvcmRlcik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICByZXR1cm4gcGFnZV9wdGRl c2MocGFnZSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0YXRpYyBpbmxp bmUgdm9pZCBwdGRlc2NfZnJlZShzdHJ1Y3QgcHRkZXNjICpwdCkKPiA+ID4gPiA+ICt7Cj4gPiA+ ID4gPiArICAgICBzdHJ1Y3QgcGFnZSAqcGFnZSA9IHB0ZGVzY19wYWdlKHB0KTsKPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICsgICAgIF9fZnJlZV9wYWdlcyhwYWdlLCBjb21wb3VuZF9vcmRlcihwYWdl KSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+Cj4gPiA+ID4gVGhlIHB0ZGVzY197YWxsb2MsZnJlZX0g QVBJIGRvZXMgbm90IHNvdW5kIHJpZ2h0IHRvIG1lLiBUaGUgbmFtZQo+ID4gPiA+IHB0ZGVzY19h bGxvYygpIGltcGxpZXMgdGhlIGFsbG9jYXRpb24gb2YgdGhlIHB0ZGVzYyBpdHNlbGYsIHJhdGhl ciB0aGFuCj4gPiA+ID4gYWxsb2NhdGlvbiBvZiBwYWdlIHRhYmxlIHBhZ2UuIFRoZSBzYW1lIGdv ZXMgZm9yIGZyZWUuCj4gPiA+Cj4gPiA+IEknbSBub3Qgc3VyZSBJIHNlZSB0aGUgZGlmZmVyZW5j ZS4gQ291bGQgeW91IGVsYWJvcmF0ZT8KPiA+Cj4gPiBJIHJlYWQgcHRkZXNjX2FsbG9jKCkgYXMg ImFsbG9jYXRlIGEgcHRkZXNjIiByYXRoZXIgdGhhbiBhcyAiYWxsb2NhdGUgYQo+ID4gcGFnZSBm b3IgcGFnZSB0YWJsZSBhbmQgcmV0dXJuIHB0ZGVzYyBwb2ludGluZyB0byB0aGF0IHBhZ2UiLiBT ZWVtcyB2ZXJ5Cj4gPiBjb25mdXNpbmcgdG8gbWUgYWxyZWFkeSBhbmQgaXQgd2lsbCBiZSBldmVu IG1vcmUgY29uZnVzaW9uIHdoZW4gd2UnbGwgc3RhcnQKPiA+IGFsbG9jYXRpbmcgYWN0dWFsIHB0 ZGVzY3MuCj4gCj4gSG1tLCBJIHNlZSB3aGF0IHlvdSdyZSBzYXlpbmcuIEknbSBlbnZpc2lvbmlu ZyB0aGlzIGZ1bmN0aW9uIGV2b2x2aW5nIGludG8KPiBvbmUgdGhhdCBhbGxvY2F0ZXMgYSBwdGRl c2MgbGF0ZXIuIEkgZG9uJ3Qgc2VlIHdoeSB3ZSB3b3VsZCBuZWVkIHRvIGhhdmUgYm90aCBhCj4g cGFnZSB0YWJsZSBwYWdlIEFORCBwdGRlc2MgYXQgYW55IHBvaW50LCBidXQgdGhhdCBtYXkgYmUg YSBsYWNrIG9mIGtub3dsZWRnZQo+IGZyb20gbXkgcGFydC4KClNvcnJ5IGlmIEkgd2Fzbid0IGNs ZWFyLCBieSAicGFnZSB0YWJsZSBwYWdlIiBJIG1lYW50IHRoZSBwYWdlIChvciBtZW1vcnkKZm9y IHRoYXQgbWF0dGVyKSBmb3IgYWN0dWFsIHBhZ2UgdGFibGUgcmF0aGVyIHRoYW4gc3RydWN0IHBh Z2UgZGVzY3JpYmluZwp0aGF0IG1lbW9yeS4KClNvIHdoYXQgd2UgYWxsb2NhdGUgaGVyZSBpcyB0 aGUgYWN0dWFsIG1lbW9yeSBmb3IgdGhlIHBhZ2UgdGFibGVzIGFuZCBub3QKdGhlIG1lbW9yeSBm b3IgdGhlIG1ldGFkYXRhLiBUaGF0J3Mgd2h5IEkgdGhpbmsgdGhlIG5hbWUgcHRkZXNjX2FsbG9j IGlzCmNvbmZ1c2luZy4KIAo+IEkgd2FzIHRoaW5raW5nIGxhdGVyLCBpZiBuZWNlc3NhcnksIHdl IGNvdWxkIG1ha2UgYW5vdGhlciBmdW5jdGlvbgo+IChvbmx5IHRvIGJlIHVzZWQgaW50ZXJuYWxs eSkgdG8gYWxsb2NhdGUgcGFnZSB0YWJsZSBwYWdlcy4KCi0tIApTaW5jZXJlbHkgeW91cnMsCk1p a2UuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h cm0ta2VybmVsCg==