From patchwork Wed Dec 13 08:40:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 13490546 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 390B3C4167B for ; Wed, 13 Dec 2023 08:41: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:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=shyN2ArQPnPC/ABWliBu9+y0sUQMFmJwWJ80oW8vyE8=; b=ImDUrgz5051Pgsl1k0vH6HhiGk ojLY81IUOSatTLRLaqGn+8Xz38y8OLhyQfJneCu2RzvC64yyQPCd1IjtA6K1RrpguEMPr5Rh0Q9OM +dLci1/L+ZVMPXPvPGIPud8x+DBG5rZOOefgYW6jrIwDgTYLPeq7q49zBBnTsWRowPoqEbwfgot5q vxDmZ6xSipX1Yns/F5tOgQlWtsrzDMtfsV2c5wWkoseenPP4vPgxiJLi8yohIzAhhUCk/3nwvW6RD f4dQ/WwqmXf0w+XI67JXJf3KJCPJ5E7bfNmnGEqk/cmCx3ke3w3gyVWSqAreDtl73y+ofLvZ1MCAD pR0Ne0PA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDKnT-00E3Hx-2t; Wed, 13 Dec 2023 08:40:51 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDKnO-00E3GJ-1g for linux-arm-kernel@lists.infradead.org; Wed, 13 Dec 2023 08:40:47 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5e282ec7531so9063737b3.0 for ; Wed, 13 Dec 2023 00:40:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1702456843; x=1703061643; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=vCl+HPeBrh+IA/A7jnlZ9z32gTluMzfFG/j8n/9wsTE=; b=t/beFxrlQf5n+jgzJYgxCuhU6Ni2ZhnFpdrGfScs2itx4GPz8rdLxVX/a+c2ivKQz8 2QaXLlKhUFAaNlZNkeu7l3epJ6brLOtkoTg46so/HZhMlFhtdRJdMpQdBBiSPGMU44TU dGJ/H/ZalU0GPbLU7nTe9OAVdTOAHiMMvKnl81e9OWOxpYKMyVAkkQfORMWG2m5ZpgDT ZymR3JlMMHoqh7YOTl9x//FhUKiv6LgzMemhjHx/tVYTRi4c9hGvYiJmWSd+luu9Ovt1 V/dmkU2jBQWF9gXN28E0EE87832RThgmjXp8b0XmXkhhrXRLSFPBjOjf9TOl6HWni//f 5twQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702456843; x=1703061643; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vCl+HPeBrh+IA/A7jnlZ9z32gTluMzfFG/j8n/9wsTE=; b=GTnkCpZqs2Ff8/dSBfQlA3zLFa2w6vTLi42ZKJ0bgP50tOhTWGxfVFmSQHbjC/t2d1 s4JNAlvq8NXJmI+Y0kwWFysvsSXdEEE69bjJ6tRv0J6bHHenWkjT7FXhZzLQjbxuQ8OA zmuZWmaPRyBm1UUuMmRdrCdDksm6Egw5mU+H2F86xskerlPwch1bKEfraTYKwsvzBhEp T/5YPxhuXSGSpdobaTNEOBqMTuToqJiqIp5OJQ3qHhh3HmWjXzGCvczisId3AR28yQpv HIrz7k2rkgf9wDACUBeHlFlXvXNCjy+aAvLlRw1WJZWxG/cKLekXQEtu64YMyNt1f4+m r1fw== X-Gm-Message-State: AOJu0YwpgvLyTfApkSWLl8DVu133K7PvUJMTd7Pzucw//gPIyMMv98AO jORYNsXpuFoX+/FoCUc1/PCJM4aZrh128WSmripmJspTZUaOs0R6WSPaaiCaanHBx+IzBiTwhgV wfd4nBrNKrgBNYxAB/6zuG2+i3JsCU1LdlQCj6wbgWDV31qNWrGrNK0vxiO2ExJX6DcAZoSmtZ8 s= X-Google-Smtp-Source: AGHT+IEN7BoKO2CwOcJ+pKu4HTId8p/PS8Q/NpYJgbyFuC8MK3x3v8lPiPZy0icGTv7DPJubd1+yDySc X-Received: from palermo.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:118a]) (user=ardb job=sendgmr) by 2002:a05:690c:d08:b0:5cd:c47d:d89a with SMTP id cn8-20020a05690c0d0800b005cdc47dd89amr70002ywb.2.1702456842562; Wed, 13 Dec 2023 00:40:42 -0800 (PST) Date: Wed, 13 Dec 2023 09:40:27 +0100 In-Reply-To: <20231213084024.2367360-9-ardb@google.com> Mime-Version: 1.0 References: <20231213084024.2367360-9-ardb@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=3045; i=ardb@kernel.org; h=from:subject; bh=XkIz2zihTZXI27u4VK6G8hX9aM3QbLXFrzvr/rgD7eo=; b=owGbwMvMwCFmkMcZplerG8N4Wi2JIbUy93eQz8Sw5SFJGfNOvbh16SEH2233fsGS22ZXBOYet 88UadnSUcrCIMbBICumyCIw+++7nacnStU6z5KFmcPKBDKEgYtTACZi/5ORYcF0i5XT79Q4+Obc m6J1jDthSka0ezsrd0PW4YQNB6TOaTAynHx0YEHGGQn2lMKE56r7/nIubNU+u7nwaWOs2VmLB9I /OQE= X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog Message-ID: <20231213084024.2367360-11-ardb@google.com> Subject: [PATCH v7 2/7] arm64: mm: Move fixmap region above vmemmap region From: Ard Biesheuvel To: linux-arm-kernel@lists.infradead.org Cc: Ard Biesheuvel , Catalin Marinas , Will Deacon , Marc Zyngier , Mark Rutland X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_004046_559394_7876AA99 X-CRM114-Status: GOOD ( 16.51 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Ard Biesheuvel Move the fixmap region above the vmemmap region, so that the start of the vmemmap delineates the end of the region available for vmalloc and vmap allocations and the randomized placement of the kernel and modules. In a subsequent patch, we will take advantage of this to reclaim most of the vmemmap area when running a 52-bit VA capable build with 52-bit virtual addressing disabled at runtime. Note that the existing guard region of 256 MiB covers the fixmap and PCI I/O regions as well, so we can reduce it 8 MiB, which is what we use in other places too. Signed-off-by: Ard Biesheuvel --- arch/arm64/include/asm/memory.h | 2 +- arch/arm64/include/asm/pgtable.h | 2 +- arch/arm64/mm/fixmap.c | 3 +++ arch/arm64/mm/ptdump.c | 4 ++-- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h index 99caeff78e1a..2745bed8ae5b 100644 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@ -51,7 +51,7 @@ #define VMEMMAP_END (VMEMMAP_START + VMEMMAP_SIZE) #define PCI_IO_START (VMEMMAP_END + SZ_8M) #define PCI_IO_END (PCI_IO_START + PCI_IO_SIZE) -#define FIXADDR_TOP (VMEMMAP_START - SZ_32M) +#define FIXADDR_TOP (-UL(SZ_8M)) #if VA_BITS > 48 #define VA_BITS_MIN (48) diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index b19a8aee684c..8d30e2787b1f 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -22,7 +22,7 @@ * and fixed mappings */ #define VMALLOC_START (MODULES_END) -#define VMALLOC_END (VMEMMAP_START - SZ_256M) +#define VMALLOC_END (VMEMMAP_START - SZ_8M) #define vmemmap ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT)) diff --git a/arch/arm64/mm/fixmap.c b/arch/arm64/mm/fixmap.c index c0a3301203bd..6fc17b2e1714 100644 --- a/arch/arm64/mm/fixmap.c +++ b/arch/arm64/mm/fixmap.c @@ -16,6 +16,9 @@ #include #include +/* ensure that the fixmap region does not grow down into the PCI I/O region */ +static_assert(FIXADDR_TOT_START > PCI_IO_END); + #define NR_BM_PTE_TABLES \ SPAN_NR_ENTRIES(FIXADDR_TOT_START, FIXADDR_TOP, PMD_SHIFT) #define NR_BM_PMD_TABLES \ diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c index 46acb2a24da0..a929b5a321db 100644 --- a/arch/arm64/mm/ptdump.c +++ b/arch/arm64/mm/ptdump.c @@ -45,12 +45,12 @@ static struct addr_marker address_markers[] = { { MODULES_END, "Modules end" }, { VMALLOC_START, "vmalloc() area" }, { VMALLOC_END, "vmalloc() end" }, - { FIXADDR_TOT_START, "Fixmap start" }, - { FIXADDR_TOP, "Fixmap end" }, { VMEMMAP_START, "vmemmap start" }, { VMEMMAP_END, "vmemmap end" }, { PCI_IO_START, "PCI I/O start" }, { PCI_IO_END, "PCI I/O end" }, + { FIXADDR_TOT_START, "Fixmap start" }, + { FIXADDR_TOP, "Fixmap end" }, { -1, NULL }, };