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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB03AC282D1 for ; Fri, 28 Feb 2025 18:30:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 17D2728000A; Fri, 28 Feb 2025 13:30:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 12E7E280001; Fri, 28 Feb 2025 13:30:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E250928000A; Fri, 28 Feb 2025 13:30:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id BD538280001 for ; Fri, 28 Feb 2025 13:30:05 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 6396B50C24 for ; Fri, 28 Feb 2025 18:30:05 +0000 (UTC) X-FDA: 83170192770.15.D4F3488 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) by imf03.hostedemail.com (Postfix) with ESMTP id 69C3F2000B for ; Fri, 28 Feb 2025 18:30:03 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Sv8BlwRV; spf=pass (imf03.hostedemail.com: domain of 3qgDCZwQKCPceuckfnnfkd.bnlkhmtw-lljuZbj.nqf@flex--fvdl.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3qgDCZwQKCPceuckfnnfkd.bnlkhmtw-lljuZbj.nqf@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740767403; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=vT9V+Abq/i2ri7sXnmoXq0qIAuHJN34FJxNuQkKtmyk=; b=r3vwTyKbcZZZPfBnrJXqjrZHW+30pIuumUTnWHOHTGCGsIWEek5fwX+AHPysF2AGYvIeyo hXWametpHSwv/sOmzHHwR/SaBrsZmk2LNdooLD1m2eNT0Fnxe58zdOSgEhjbE3v7wdF/8z bo7eU6v1rm2sryy0zHkust4OT2lIuyE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740767403; a=rsa-sha256; cv=none; b=Sa4aYnHI1tzcJeN/aZAGsxdf2bELxTvH55U5bEh/hITY9qXUdz1HFeP3a/R1faO6DCphBc op662a2iutvc05wzsKlblkhDWCrdSFr2GSgov9Wz4JlVt5RZ9cIhdZRgNw4u5yT/4USpbH IT+D1NINq4BHotr1Pcf420SsvHHQ1aY= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Sv8BlwRV; spf=pass (imf03.hostedemail.com: domain of 3qgDCZwQKCPceuckfnnfkd.bnlkhmtw-lljuZbj.nqf@flex--fvdl.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3qgDCZwQKCPceuckfnnfkd.bnlkhmtw-lljuZbj.nqf@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2fe916ba298so5049685a91.1 for ; Fri, 28 Feb 2025 10:30:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740767402; x=1741372202; darn=kvack.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=vT9V+Abq/i2ri7sXnmoXq0qIAuHJN34FJxNuQkKtmyk=; b=Sv8BlwRV7tgtrFYj5uzuCYyv6BqOwZKUCvJ8jmkXXVEyHmj61xd6ltOHTl8Q70U2ey 9tB+OSrKPVjf8GVQsi1DVakC8fXVL92hskjZ9/Jl+Y4p1a65QPPFNiRj87S6527E/Pm1 C6uIe7GtgdYlWTYP2pdxoODC//PklpkoODxDchlIELGpCFJqrji6yNqXEs77LteQIfnZ PQHNGUX/R7sY+D7ln5WiMwGOvwssGi1K3oO/RJ5LO8HkcSY2itM5JhS+1xwBWMxf8cUs cPFOR03aSqMfaTHD4M9OqCy0SqZJdezCSSv9/BSwufjlRGSHyjytj3N9lcdNMRKgkz7P oraQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740767402; x=1741372202; 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=vT9V+Abq/i2ri7sXnmoXq0qIAuHJN34FJxNuQkKtmyk=; b=nHRACFRezWyTmyhAWY7AVH8CIfQKs/eWMbhSC3ZiLgEA8U2Po1upc03fYQ+CKGzX9r +rg+HldnnTE0fErFojXO8+p7a5TVteAppKza+29Fh1Qv4cOsXKjKFor+pw3furCPX6t2 W2yk8XuxS60GelWO7U5FOQIBHCIIBh/KMnFZs22JKyIoKaBbed4iZ8sbgQl8YtIv6IQW xkrMHOlsZd0NaS1lVOKD6ZEBmbiAiwhe1fNLVOYNimK7ZH9CdHQOCMhWTUICvVqvCSnL 734Cc63nryWBLnhAalxTGfQ91frd+XGKXj0j0gzxrDvwDt5ZsFFlxJ0FpTp9mTa0Mz63 Ol6A== X-Forwarded-Encrypted: i=1; AJvYcCVp/WjJVGaYNkJ1isaea+uyEayDPvy8yfHJfjrUvHKbNvkoE/iRRO9CpSJOq9RFcOwY83hwL/wIrw==@kvack.org X-Gm-Message-State: AOJu0YyfFFxP+JKacjx0mcIty3a3x4N01OM6BwNJ11SU71CVzD09p2Vi F/6Qg/K6OuWPUuM5omFLJWnzHfNFPmA/cjtnGWPhuLx0Mtxcl7owO88A1tBd2nQN0gYCow== X-Google-Smtp-Source: AGHT+IEJZtJlg1nf2iF5sruFhlqBO6bDCuDixMIcx2WJKx58Jky48PZHl6y7MGnhwLHWadCWonhMeC6V X-Received: from pjboh15.prod.google.com ([2002:a17:90b:3a4f:b0:2ea:5be5:da6]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2247:b0:2fe:84d6:cdf9 with SMTP id 98e67ed59e1d1-2febabf1a73mr6371733a91.26.1740767402413; Fri, 28 Feb 2025 10:30:02 -0800 (PST) Date: Fri, 28 Feb 2025 18:29:09 +0000 In-Reply-To: <20250228182928.2645936-1-fvdl@google.com> Mime-Version: 1.0 References: <20250228182928.2645936-1-fvdl@google.com> X-Mailer: git-send-email 2.48.1.711.g2feabab25a-goog Message-ID: <20250228182928.2645936-9-fvdl@google.com> Subject: [PATCH v5 08/27] x86/mm: make register_page_bootmem_memmap handle PTE mappings From: Frank van der Linden To: akpm@linux-foundation.org, muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: yuzhao@google.com, usamaarif642@gmail.com, joao.m.martins@oracle.com, roman.gushchin@linux.dev, ziy@nvidia.com, david@redhat.com, Frank van der Linden , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Dan Carpenter Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: tkt1hajn3kguryfbyqtjhgb8y988h88n X-Rspamd-Queue-Id: 69C3F2000B X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1740767403-542698 X-HE-Meta: U2FsdGVkX18LE9YcCC40PZZop0uSLIHJhD6kKjdEHeg8QfDW3eWV+gs/eG0wgm+NHjWZ+QNgwC6jgZfU9Ou8ASVCR8J4Qne0skDXk7ork01Klw6L+kmo3MbrmC0zUb29Wv7Su1eGxF/hQpRfy8xzX7AW3fsMgdv2MDMb5CqQzPm7eU9z5xUfcr0+OIwzq+75dyNgI2Tlp+5ptHGrU8gfenzcfM94mSnCuthPO+CRBssA7b6Y0xYj/ftBblsEQVLT03ue23wh6LE/CqhokeFuFAq6EnxIwZpr663OiyepVKUpN61X31FBcwt7FyZeqqwYuyrFoPK/FWxJEe4alpuBeo/XPHZam4AVG6lzeioXSbbEbLEUAkNnWeTFTULMzoFtHZ4x/zhQ0HLBGTaT9Wis61F5POZ6SaSblof4gqtby4qmANhSVcFZKe8rOGDWHyMZ0end/LjHjffzHYFFvmsuaCTpJeU8dc6Dsjq/1iKSMUikoaq59YLqb0XhbCh+iBFAMa8pqiBNMXT4asD9ZrQgY65wNigO5nTh/V8Qq2xhf8zsJny3xGzLiI9vQ3zVg+/zY2KHzJ/a2Fyh1E2UdD0XFapKGEE4m46aqLPyuS2w1PJa3yC5PzUpMpbn/2DNtNy6aq2aB7NgD2WYyM2rT/svgvdZG5dtRYe3FNuzcMQn9+9xdx5kuMnbz2Y+Bq0r6n+PaoRtjjNFBA9sm6g2g69y+FwYKAOcTUwhmA0o0mNA9knDO8k+U8QAklurnbU+HOa+LZqg7j0dC8Orpxpz8lck+w4sGoddYTtpdDMqpPzyXGe6rwQtN58zjq7d0plCP66AaXKrVGz4xn0DQoOpRtbwYKJKO/rzY02qrF6OL+ii0g26TQ8Gui358rxOaEA6uOWZV6euqeY3k0Yew9eRAGELNrfGjae1WmsPIEW1UlSrp4nu1DU+gp4+TIZ5omYLXL4UcqR62QVqbSWT6QpgxO4 Aarp7oYn FLfQrOiZBZNMljxycsZkEr4yBBAbMeXXHS3j6lV3q5+c6mP6lFGRyiIARL4zb5wI9HyZMo/fsgGgH1amEgUliREC415TyPUcOlj1p0NFYB9FVYhij9fpo+ZvD4oslzp+iGmFPX+v39S6DwWbjrK1PZNUoDYO3oVoiWfsTa6Z79eumWvowYf9tk/04W/TKF1O7wI4qEqVz+MPpjGYTutW6oKWswmRdNNb1TtNA0WqVw3jQx0ut8IY5BGXG3uCs933ipiPMFGmNs5IM26b3JGqXON0WlqskWwhYkhh0tQekuxQSG/uxWgJEYKKA5xxwFaxgVs5wel+Ut2loXY5ejM0YvAMgVIChU8vvvB3/HUgA8qpddC3VnxqHKW88IBzYRXPUHVxJVVWVhZnDsx1fCUb/6CQfdC4rbPee3DLM4mYgvQWXFpQLVYihxngs47/DZHIlRnApAvtF7sTrPyrzEw3KX04vsnh5h8//rOhPGUDx5jXaEtdBefTUw+OdmoAMMTlaNuqaQjTV58iW64XM2g3wTiw4lMnn8s2tEDZdhCHtpqJ8bIJRgGhou2GwqRrpKSHywMs9BUC0S58oQ9vGwCtBjP+joYGIGCqFAIaxRoc1V2PjZxCRog32fpvEVA2lZLumRt0nK8a8Vpt2xM73Mf7P7P0VW3d8HhXzMorsKeyVNplAk8SBp6nTGEuJ72FLmgCiF0bOAYm0gXmtxhmEIr3/gwpeCRB3vTGrqiCSqsijaFGdXPA= 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: List-Subscribe: List-Unsubscribe: register_page_bootmem_memmap expects that vmemmap pages handed to it are PMD-mapped, and that the number of pages to call get_page_bootmem on is PMD-aligned. This is currently a correct assumption, but will no longer be true once pre-HVO of hugetlb pages is implemented. Make it handle PTE-mapped vmemmap pages and a nr_pages argument that is not necessarily PAGES_PER_SECTION. Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Dan Carpenter Signed-off-by: Frank van der Linden --- arch/x86/mm/init_64.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 01ea7c6df303..6e8e4ef5312a 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -1599,11 +1599,14 @@ void register_page_bootmem_memmap(unsigned long section_nr, } get_page_bootmem(section_nr, pud_page(*pud), MIX_SECTION_INFO); - if (!boot_cpu_has(X86_FEATURE_PSE)) { + pmd = pmd_offset(pud, addr); + if (pmd_none(*pmd)) { + next = (addr + PAGE_SIZE) & PAGE_MASK; + continue; + } + + if (!boot_cpu_has(X86_FEATURE_PSE) || !pmd_leaf(*pmd)) { next = (addr + PAGE_SIZE) & PAGE_MASK; - pmd = pmd_offset(pud, addr); - if (pmd_none(*pmd)) - continue; get_page_bootmem(section_nr, pmd_page(*pmd), MIX_SECTION_INFO); @@ -1614,12 +1617,7 @@ void register_page_bootmem_memmap(unsigned long section_nr, SECTION_INFO); } else { next = pmd_addr_end(addr, end); - - pmd = pmd_offset(pud, addr); - if (pmd_none(*pmd)) - continue; - - nr_pmd_pages = 1 << get_order(PMD_SIZE); + nr_pmd_pages = (next - addr) >> PAGE_SHIFT; page = pmd_page(*pmd); while (nr_pmd_pages--) get_page_bootmem(section_nr, page++, -- 2.48.1.711.g2feabab25a-goog