From patchwork Fri Jan 11 05:12:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pingfan Liu X-Patchwork-Id: 10757351 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 94D2914E5 for ; Fri, 11 Jan 2019 05:13:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 77A07299B3 for ; Fri, 11 Jan 2019 05:13:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 648DC299C3; Fri, 11 Jan 2019 05:13:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BF086299B3 for ; Fri, 11 Jan 2019 05:13:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 826098E0003; Fri, 11 Jan 2019 00:13:19 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7D4B48E0001; Fri, 11 Jan 2019 00:13:19 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6EB5E8E0003; Fri, 11 Jan 2019 00:13:19 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by kanga.kvack.org (Postfix) with ESMTP id 29E838E0001 for ; Fri, 11 Jan 2019 00:13:19 -0500 (EST) Received: by mail-pl1-f200.google.com with SMTP id t10so7591230plo.13 for ; Thu, 10 Jan 2019 21:13:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id; bh=yiNiXONw2hvDBpSYOL1d5N1MZI2fH8KXdlUQmgz4Znk=; b=WeFzrl/vB99EbbheFnGMNw8wsRvLwBsU89z4YDbwNDWvZPgiZR+2uz6pj3xHaISmu7 P0ayDZPQMwvuRCtLI8hr0aHZW0AiHJb2b8XfbYlvEOOR+C9JxpTNgW7I6RDDcJnJO05X tz2NLUp/WPz8OH3tp83dVjSi5/ErEis2T6kKglONv39CyxhuZLtul2p7G/OFsCcQ70se YKiwabesOKjUz21qdxe0kWZwisOP8opRkYi+QM5An6j0QTrxT870ijQRxFnmXb9/ntgN kOkH4RW1aTNfmY3p8CujgwAvjQ7JG8iT9fknrzKkQNKNvVaXmLPZq9+mC+qDVbVwkQcj WnAg== X-Gm-Message-State: AJcUukdrJH67VS5fzQdjdZobffZO+Jh7QwWyx7pS8ocbZtU/5+kropQx CmWfv5CbCWkAe7wwL6RxKGj1+wGqLivetY1/K38i8q3ffWBx+Enix+Gj2mZfZpd5h7supeID9R2 JdFtQszTnK39NLObR6Slau2/wsbfbz7bTwdHH/C9TR0Mn16U6a4kY1DZPdpO08F6Tm2Ohvz2Wb+ PBBTXsHww4fBykDGWAJvzHDHGYOsSd4ouhsSBqo79DvxmuO/IJf0bGWbIoPjV420lwnTzkbyPoM MmQ86AzSP9t7s3vRbK5xdWZwPvyjFYFPH0rtMRQ0Lp7Whkdh+Pw8kpGD/Tfss9NPeobG+s7hawz slFIJYjSwIYZ8EdTqo3bSMD8+fWJpUHI1n3YWvLYdPg2eszhAIVt9NFboDvzibzaMwoZ8RnWG4O t X-Received: by 2002:a17:902:70c6:: with SMTP id l6mr13596201plt.30.1547183598769; Thu, 10 Jan 2019 21:13:18 -0800 (PST) X-Received: by 2002:a17:902:70c6:: with SMTP id l6mr13596168plt.30.1547183597980; Thu, 10 Jan 2019 21:13:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547183597; cv=none; d=google.com; s=arc-20160816; b=ZV+2TD8uWqBuR3zjTDGqS1xEGrWmji+MGnPmnY3T4ZnscpQnyHP3GpDsoZ3g6W144f X4YnENtDUjDUDpivCcu0fGcZcbgyxtx8DY19UZN/Gp7Ew0HS/AdVrpweZarYi2YxNi4J l4zQEc8mPfe9N+kxjOYqLkQVboS1m7o/4/FMuhkYnuJJNiaTneFL+zHeLkMpT6TrF1dp ZT8CvEaKY7uQSXTpJuhYSL8IyP0KHx8NxKlkZSJl4JF0/clH3IEh6eE4byVvcYe/4YEv SCx39oskhCmumo1qxZuJPy7SGU3xrWj0UQKmeYtN4zLH8ujH0teFrwYXQ//+yZ1X2hhs Swrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature; bh=yiNiXONw2hvDBpSYOL1d5N1MZI2fH8KXdlUQmgz4Znk=; b=hZ//v0rHxVdMPTQrNj6d5XOfFknp+omdM6eGzSX8SgIQpxPS3WcvzchoL9+GPec205 tFwnbOApEnY6QlJ7hzrclKZ1wusm5X5E5u1VbuTpLdD6W+d20qYgM3FgE0zfxktFOH8m L4bYXLZKrHoSICihYHp7W4IFCu45aPiOYBXvH+X10pKbaSZS3EEktwQcOtO5ZyAr4tNZ 3b7aFDs2bTDNktf2QlsZXz/PBPE2oM4wdryxhsZwF9jGZBJQe7pbR6DpYulOSG15RUPD 3RGNMJUPfJfBVuSV72qDIZcp4uanX91YnXx3NtjR8ScaCV8fJc7M3bR11gRZgzxPaSlx 3FfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Imun+eR9; spf=pass (google.com: domain of kernelfans@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=kernelfans@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id c8sor1649554plr.70.2019.01.10.21.13.17 for (Google Transport Security); Thu, 10 Jan 2019 21:13:17 -0800 (PST) Received-SPF: pass (google.com: domain of kernelfans@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Imun+eR9; spf=pass (google.com: domain of kernelfans@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=kernelfans@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=yiNiXONw2hvDBpSYOL1d5N1MZI2fH8KXdlUQmgz4Znk=; b=Imun+eR9QhZIf1CBWp1uTUvcu5c57x6vr/TD90brUG3h9+tzOmOdHmt/PFarV+h4iM ECaoPAXZhC7f+gFgH8zk3gm3sDYQWwWUiJHxmbpVd4VfkM5Nhkr3SNVHzirNLtqmRR8r 3n8XqbC1ZS6MYSropDcrzMzA+8NTDWmgfpD7CXX04EMJXKXl64uawfa7vR89Sc+fnA3G j+sguhsTgN5w9Jm45XJyfT7l5vmjIkKqrCugfyIheLGK7Id9ZpHttrA5JWFwPiY97a++ 89mZzdRxZvm3R+yrRBFO4lE6XTtghhI1ZY0rmclP4ZZxDhPAwQoAPEQL5xMe58Ku3j/E iCNQ== X-Google-Smtp-Source: ALg8bN5rMV8JFql1nyNXCDkvGEFzOQ0KzKP/vFF0LATwv/Hp28/MAYHRgpLWoRhd7tg434tfMvck9w== X-Received: by 2002:a17:902:2aa8:: with SMTP id j37mr12667449plb.226.1547183597655; Thu, 10 Jan 2019 21:13:17 -0800 (PST) Received: from mylaptop.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id q7sm93490471pgp.40.2019.01.10.21.13.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 Jan 2019 21:13:16 -0800 (PST) From: Pingfan Liu To: linux-kernel@vger.kernel.org Cc: Pingfan Liu , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Dave Hansen , Andy Lutomirski , Peter Zijlstra , "Rafael J. Wysocki" , Len Brown , Yinghai Lu , Tejun Heo , Chao Fan , Baoquan He , Juergen Gross , Andrew Morton , Mike Rapoport , Vlastimil Babka , Michal Hocko , x86@kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org Subject: [PATCHv2 0/7] x86_64/mm: remove bottom-up allocation style by pushing forward the parsing of mem hotplug info Date: Fri, 11 Jan 2019 13:12:50 +0800 Message-Id: <1547183577-20309-1-git-send-email-kernelfans@gmail.com> X-Mailer: git-send-email 2.7.4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Background When kaslr kernel can be guaranteed to sit inside unmovable node after [1]. But if kaslr kernel is located near the end of the movable node, then bottom-up allocator may create pagetable which crosses the boundary between unmovable node and movable node. It is a probability issue, two factors include -1. how big the gap between kernel end and unmovable node's end. -2. how many memory does the system own. Alternative way to fix this issue is by increasing the gap by boot/compressed/kaslr*. But taking the scenario of PB level memory, the pagetable will take server MB even if using 1GB page, different page attr and fragment will make things worse. So it is hard to decide how much should the gap increase. The following figure show the defection of current bottom-up style: [startA, endA][startB, "kaslr kernel verly close to" endB][startC, endC] If nodeA,B is unmovable, while nodeC is movable, then init_mem_mapping() can generate pgtable on nodeC, which stain movable node. This patch makes it certainty instead of a probablity problem. It achieves this by pushing forward the parsing of mem hotplug info ahead of init_mem_mapping(). Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: "Rafael J. Wysocki" Cc: Len Brown Cc: Yinghai Lu Cc: Tejun Heo Cc: Chao Fan Cc: Baoquan He Cc: Juergen Gross Cc: Andrew Morton Cc: Mike Rapoport Cc: Vlastimil Babka Cc: Michal Hocko Cc: x86@kernel.org Cc: linux-acpi@vger.kernel.org Cc: linux-mm@kvack.org Pingfan Liu (7): x86/mm: concentrate the code to memblock allocator enabled acpi: change the topo of acpi_table_upgrade() mm/memblock: introduce allocation boundary for tracing purpose x86/setup: parse acpi to get hotplug info before init_mem_mapping() x86/mm: set allowed range for memblock allocator x86/mm: remove bottom-up allocation style for x86_64 x86/mm: isolate the bottom-up style to init_32.c arch/arm/mm/init.c | 3 +- arch/arm/mm/mmu.c | 4 +- arch/arm/mm/nommu.c | 2 +- arch/arm64/kernel/setup.c | 2 +- arch/csky/kernel/setup.c | 2 +- arch/microblaze/mm/init.c | 2 +- arch/mips/kernel/setup.c | 2 +- arch/powerpc/mm/40x_mmu.c | 6 +- arch/powerpc/mm/44x_mmu.c | 2 +- arch/powerpc/mm/8xx_mmu.c | 2 +- arch/powerpc/mm/fsl_booke_mmu.c | 5 +- arch/powerpc/mm/hash_utils_64.c | 4 +- arch/powerpc/mm/init_32.c | 2 +- arch/powerpc/mm/pgtable-radix.c | 2 +- arch/powerpc/mm/ppc_mmu_32.c | 8 +- arch/powerpc/mm/tlb_nohash.c | 6 +- arch/unicore32/mm/mmu.c | 2 +- arch/x86/kernel/setup.c | 93 ++++++++++++++--------- arch/x86/mm/init.c | 163 +++++----------------------------------- arch/x86/mm/init_32.c | 147 ++++++++++++++++++++++++++++++++++++ arch/x86/mm/mm_internal.h | 8 +- arch/xtensa/mm/init.c | 2 +- drivers/acpi/tables.c | 4 +- include/linux/acpi.h | 5 +- include/linux/memblock.h | 10 ++- mm/memblock.c | 23 ++++-- 26 files changed, 290 insertions(+), 221 deletions(-)