From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f200.google.com (mail-wr0-f200.google.com [209.85.128.200]) by kanga.kvack.org (Postfix) with ESMTP id ADACB6B0038 for ; Tue, 24 Oct 2017 07:38:22 -0400 (EDT) Received: by mail-wr0-f200.google.com with SMTP id 11so8607295wrb.10 for ; Tue, 24 Oct 2017 04:38:22 -0700 (PDT) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id r30sor46918edb.49.2017.10.24.04.38.21 for (Google Transport Security); Tue, 24 Oct 2017 04:38:21 -0700 (PDT) Date: Tue, 24 Oct 2017 14:38:19 +0300 From: "Kirill A. Shutemov" Subject: Re: [PATCH 0/6] Boot-time switching between 4- and 5-level paging for 4.15, Part 1 Message-ID: <20171024113819.pli7ifesp2u2rexi@node.shutemov.name> References: <20171017154241.f4zaxakfl7fcrdz5@node.shutemov.name> <20171020081853.lmnvaiydxhy5c63t@gmail.com> <20171020094152.skx5sh5ramq2a3vu@black.fi.intel.com> <20171020152346.f6tjybt7i5kzbhld@gmail.com> <20171020162349.3kwhdgv7qo45w4lh@node.shutemov.name> <20171023115658.geccs22o2t733np3@gmail.com> <20171023122159.wyztmsbgt5k2d4tb@node.shutemov.name> <20171023124014.mtklgmydspnvfcvg@gmail.com> <20171023124811.4i73242s5dotnn5k@node.shutemov.name> <20171024094039.4lonzocjt5kras7m@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171024094039.4lonzocjt5kras7m@gmail.com> Sender: owner-linux-mm@kvack.org List-ID: To: Ingo Molnar Cc: "Kirill A. Shutemov" , Ingo Molnar , Linus Torvalds , x86@kernel.org, Thomas Gleixner , "H. Peter Anvin" , Andrew Morton , Andy Lutomirski , Cyrill Gorcunov , Borislav Petkov , linux-mm@kvack.org, linux-kernel@vger.kernel.org On Tue, Oct 24, 2017 at 11:40:40AM +0200, Ingo Molnar wrote: > > * Kirill A. Shutemov wrote: > > > On Mon, Oct 23, 2017 at 02:40:14PM +0200, Ingo Molnar wrote: > > > > > > * Kirill A. Shutemov wrote: > > > > > > > > Making a variable that 'looks' like a constant macro dynamic in a rare Kconfig > > > > > scenario is asking for trouble. > > > > > > > > We expect boot-time page mode switching to be enabled in kernel of next > > > > generation enterprise distros. It shoudn't be that rare. > > > > > > My point remains even with not-so-rare Kconfig dependency. > > > > I don't follow how introducing new variable that depends on Kconfig option > > would help with the situation. > > A new, properly named variable or function (max_physmem_bits or > max_physmem_bits()) that is not all uppercase would make it abundantly clear that > it is not a constant but a runtime value. Would we need to rename every uppercase macros that would depend on max_physmem_bits()? Like MAXMEM. > > We would end up with inverse situation: people would use MAX_PHYSMEM_BITS > > where the new variable need to be used and we will in the same situation. > > It should result in sub-optimal resource allocations worst-case, right? I don't think it's the worst case. For instance, virt_addr_valid() depends indirectly on it: virt_addr_valid() __virt_addr_valid() phys_addr_valid() boot_cpu_data.x86_phys_bits (initialized with MAX_PHYSMEM_BITS) virt_addr_valid() is used in things like implementation /dev/kmem. To me it's far more risky than occasional build breakage for CONFIG_X86_5LEVEL=y. > We could also rename it to MAX_POSSIBLE_PHYSMEM_BITS to make it clear that the > real number of bits can be lower. If you still insist, I'll rework code as you describe, but I disagree that's the best way to go. We also need to make other upper case macros dynamic, like PGDIR_SHIFT or PTRS_PER_P4D. Reworking them in the same would be *far* more complex as they (and their derivatives) used heavily in generic code. To me it's a lot of code for a small to none benefit. P.S. Could you please take a look on x86/boot/compressed/64 changes? -- Kirill A. Shutemov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org