From nobody Fri Apr 3 07:55:21 2026 Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6010624E4C4 for ; Thu, 19 Feb 2026 02:04:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466652; cv=none; b=NI4BIwsjDLC+5gJtuN1mg6N+nQjndkURzos3cFHBjVgR6A0g2podT6E2J5r1fxuH7R9G1t7/vkhdINO/RyhEbpNlIsfBuakqfofmvAkBcwe1kOWNcWKKkhO/CVEf5dXIFNOqtzD0mqVVZTKIWd9adFS0C6ZNPBkVAM6UFNLwAGc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466652; c=relaxed/simple; bh=+ppINgrU3HFrEJeAVSnA18s8nxssDaYEZmiEDzXhaZU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b1PPzBilQ6B6U/BQR5kWxGyRv7nVxWiKpjI95fYsceH59M/oucBXU+2VX3vVSJMLXPEzWT1zJIPxxQYUK0WjChpIu+lKfpqNSgym8esDpTQsuUMGzSalbln9+YaEkrLI9gJr62Cxui6nOZJgWnnRLB3dD9EtvTsvfhFtzQqmZBI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TIpRJTSe; arc=none smtp.client-ip=209.85.160.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TIpRJTSe" Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-40ee486a76eso297590fac.2 for ; Wed, 18 Feb 2026 18:04:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771466650; x=1772071450; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tIP3NJQw0FC1KA2/Vngrp26vHXmL8g0a5C1ifEFmdpI=; b=TIpRJTSeSwFlDwu9j4h3fIPp0fvbPP+J+W9W9xnKw79qX2cKgtUdQlJRUI5EOiAQkw tY0qUQl2bXYyuzEuK5tJdvXCt8cTb7mbETUb7sEqGxnBdS+Wze6XMBy06fPXgXXVd6TN B3rwpltEudm5xtVUA5dD4Ac8h+8kA8KAN3ViBtg2ZCk47LcZeOwA57+6V5IQFbblugWl wW0zh4zBnAAY+jAXMFnRvXeIyKvmYRAxwQ425sOa8thGd9nvtESgCteFS0ShaijEb+mw OxKyYjIdGFwdRPCsft3+dQ8F+zp5zrK75rcp0EPEHsmCZMQB2qZFmZq226wQuQ4AbKlq GhtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771466650; x=1772071450; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=tIP3NJQw0FC1KA2/Vngrp26vHXmL8g0a5C1ifEFmdpI=; b=BUJZSZVX9S8H1g6viD49v+iruEQFD4wBox1QnI+sm7RArP4JS23LFF3/k8S2eT93gc DT3NIqM9VFQtBBCM3r7k96KN9K1hM+YxiKZEDZyKtvLQZC6P0hXLJVwN2zC78fC2Sunl dFrnMBo09ud5IRyD3X1Rnkc9VJd0KewmDm8Sc3+bRFyzENq8b6H4PgLbYBLGD4OiZu6m h4urayCpkHQXc+XHSOL131ffbE1rUsNnvmzLIf8VJGygn9Ri8Y3JemlUAvPvW7pee3As GhzG2bw1hsJ4JLhvemcf5ADew6VFVOt4W8gwq5y4rt49SoCtp+Wk2Q0p17eigHo0pd1b z8sA== X-Gm-Message-State: AOJu0Yww4+HuD5a4M/NbRTl7H+0h+KoVqYWM3bYY34ovC7aurAUAD0TL 9BfJcaA8P2qT4nEQLnw+rhX5OJqIa1Do4934aRrEEs1cIlxzQBVv2wIz6Kl9oQ== X-Gm-Gg: AZuq6aLL7OH3phHl0hHGP9DzZHutt2q6InCaOdqpDV91hCXmxI/LG3g9T3Nzy3t3UUi Ox8D1D25aWJRPv6v1dsehjGUEyepXpnGezpMhkYpGM2liYwn41nY4V4zLBEgd0xYumKiPc7lllP g1/fFnbvZhzXYoJodB1qZEjb7SXQS1HLudzAQwqKuW50N1iROrAVd68I/OfserUCEqmVc5HjKjo SYl43xlyEjOs0+pAGC+SE1tqdViSiUBZlK+i5imKx4pZr/X/JWxp9wauxMgInlTZ+01t34f8MH1 HsxMEfch87jkZREzvs8TJTxSFtnIo/M/WIpXxfTlMPxmpfwRxl8HBf1xFOWrm0BK03amh/B18UB mYxty/tAA5wbTdXSbHLcMUyD9v8DaxYeuZSQa6ELrSGFo9Vru+lCUQFLABBvzTYoYA/1IBpTz9l KVMG/g437PXBahO0uroFlgHCfRVzBEQEeMC+USL+EgFz+mAbFEDxKR9KodO0lTGW15KRbaWUk1Z kML3L5f8editpRnMi13NjwBC9H49AAdpQqt+iE= X-Received: by 2002:a05:6820:308d:b0:679:95da:9752 with SMTP id 006d021491bc7-67995daa0cemr5527182eaf.11.1771466649788; Wed, 18 Feb 2026 18:04:09 -0800 (PST) Received: from syn-2603-8080-10f0-ab80-0000-0000-0000-1382.res6.spectrum.com ([2603:8080:10f0:ab80::1382]) by smtp.googlemail.com with ESMTPSA id 006d021491bc7-676e3b52902sm12187297eaf.11.2026.02.18.18.04.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 18:04:08 -0800 (PST) From: "Vishal Moola (Oracle)" To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, "Mike Rapoport (Microsoft)" , "Dave Hansen" Cc: "Matthew Wilcox (Oracle)" , akpm@linux-foundation.org, Andy Lutomirski , Peter Zijlstra , "Vishal Moola (Oracle)" Subject: [PATCH v6 1/4] x86/mm/pat: Convert pte code to use page table apis Date: Wed, 18 Feb 2026 18:03:51 -0800 Message-ID: <20260219020354.321088-2-vishal.moola@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260219020354.321088-1-vishal.moola@gmail.com> References: <20260219020354.321088-1-vishal.moola@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We need all allocation and free sites to use the ptdesc APIs in order to allocate them separately from regular pages. Convert the pte allocation/free sites to use the generic page table apis, since those use ptdescs already. Pass through init_mm since these are kernel page tables, pte_alloc_one_kernel() effectively becomes a no-op otherwise. Signed-off-by: Vishal Moola (Oracle) Acked-by: Mike Rapoport (Microsoft) --- arch/x86/mm/pat/set_memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index 6c6eb486f7a6..d52010fd3023 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -1408,7 +1408,7 @@ static bool try_to_free_pte_page(pte_t *pte) if (!pte_none(pte[i])) return false; =20 - free_page((unsigned long)pte); + pte_free_kernel(&init_mm, pte); return true; } =20 @@ -1539,7 +1539,7 @@ static void unmap_pud_range(p4d_t *p4d, unsigned long= start, unsigned long end) =20 static int alloc_pte_page(pmd_t *pmd) { - pte_t *pte =3D (pte_t *)get_zeroed_page(GFP_KERNEL); + pte_t *pte =3D pte_alloc_one_kernel(&init_mm); if (!pte) return -1; =20 --=20 2.53.0 From nobody Fri Apr 3 07:55:21 2026 Received: from mail-oo1-f42.google.com (mail-oo1-f42.google.com [209.85.161.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE73426E706 for ; Thu, 19 Feb 2026 02:04:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466654; cv=none; b=VdZrfCOLdEj+PR5a48MmNYDvXqUMkEn5wik3PIc9PfyVn1o31u/PZ2EVHyoKGn4YUzrrsTHXNEciieJmd78LVNrNlXpcnFMM3bucVCqOO+6cyxPqajkHbewnJM2L1VV6U48Xf9kQxp0+adCVRDK5jL5NR/bn+RFsZUZCz8e8Pno= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466654; c=relaxed/simple; bh=oNN3M+Li/7uEHsL3+e6WkBKtDRwSokzGuiuhUCjEkDU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EA82OyB410vPGD7WBeLkjD3QyVkIUa9Qd8XPLOW+fxlVko0wlS8Fv9R8HcU8fSbktBxhHCrOjYD1CF1kF3y5BmY2aVwhFOiockWAMaOQLAi42xJY1Nm4mOBiK7aIIb4otPm/E1z1HsyZlRj7jZQsUGrbX760Ab447+Wstz4cS9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ivb3EK3B; arc=none smtp.client-ip=209.85.161.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ivb3EK3B" Received: by mail-oo1-f42.google.com with SMTP id 006d021491bc7-662f9aeb765so181254eaf.3 for ; Wed, 18 Feb 2026 18:04:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771466652; x=1772071452; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nHBv8qiAqn9zn5/9Lglf+QJsgs0ZODCHP/HKhTXpHe4=; b=Ivb3EK3BxYbwaUWoGIFdSzIlrHlvmnR2wtlnfhJSoHXdswixA/AkHU1yNSwd/o7qN1 wMTqQZT8gircshrIWEZ4lzeQYwTqOjZydwXf2Uu+hczx+rNy8FQiZQ9d1p8/2u488qKQ HiOagVxaWMQ+/gdTutEjOWr42zaxsb0InKHzGh2dYjixrIS7CtAQmUhi3sz3zTv+gfXz ElybEsssz5GUThQS2PBIHgcId6fRFBN0PM99mb323i7tUldE4qzc9IzKnsLG7gcCK6bw DVPfUIBszQkExMqLk+hx+FqwbORtee2ay++SGIpZlljz7wYMNOBM1BDp9YLQJfjtYmfn mj6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771466652; x=1772071452; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nHBv8qiAqn9zn5/9Lglf+QJsgs0ZODCHP/HKhTXpHe4=; b=sRTCKbJ6s0rO1zzX4AfxH2m8rUk5rKdjm76uHNQB8C4mroqsgxW6WCsrKEbZfEGjmu xVgm8SSuIyjj//KZY7I8zqykJZ3ZikgETGCyYQfDj60VL52qE7+/a/LElqiVKPJwI4Ip 9wsBfHi01yqVkfLCbNGYP4xh9n1vPjbvgCBoAwdn1s9uAGcNlEVKpBLrU1/MjpIFFova CPm9z2bWqZSKsVO+yEyh991KzG2r8H06ODWmTQhoWK6eoHz09dq1S31xaSWxeHypfESP BFcFboG+xdYM8e9SYIa6mYEEDAREbuR+PGsHAFKHSfHJQgnDVEibNRWdxvAfgN2IFZkl yC8g== X-Gm-Message-State: AOJu0YzFwG5wmiZw3RkvnN3FpNzZtFO5z3C4gS7JA0b++MJ+fHtZKDVR FHtsXdFGE3pk/F0Mqg9ZqpoqQPcQ+e2k7BctPy8BpGuR8BhFKIr8KWR8dVtOWw== X-Gm-Gg: AZuq6aJBt0aCfxzZGmhbJ5sS4tEETAC2Vyouqr3BiPAAabQHd8rPwpshQdiuDUzlwK0 xstk9Dm8mhiUGy2atLjIUsHcNA8S3O0B6et822W5144NYKiSze//kR8Aka1ncWyZhv/fXLKbaoN HBUjLuLzEj1Age3yXu/LzICaERtP71iV5mJbqG1rdGA4rgUWSykjAA6JkFlnacvBGhkNIS7JdZA d7udAqedun7kOabfwvm9qEc7StPhNAWy2OochcbpKREbIaqMxLcoVa5FKMiHlOR6lX3DWwLwxxM bx0QtIF2l4SdZ1Rr/fmLO/5fV9ySl25LhHNDIpgpWy39LhYxmnGAU78gpnVpk8BjdhLS6NFaJXM I/iF78y2q1U/ic7aw7cYKrfpEr+COVTOA7fi71UVbx6bO3ocX1RkTjVUQ/XT02f82r1w6SPXBko cwkAy+PE6Xz3jlohGC/gSTzQejHWAGQnUcuyIAEGh9NzaqVWkYMI9srTg/gZKijmgot6+6CDgqI sJUgz/W1ZANbrOI221ibVkljHYOR2imUKOWnyw= X-Received: by 2002:a05:6820:1c8f:b0:679:5f79:91dd with SMTP id 006d021491bc7-6795f799aefmr7884557eaf.60.1771466652087; Wed, 18 Feb 2026 18:04:12 -0800 (PST) Received: from syn-2603-8080-10f0-ab80-0000-0000-0000-1382.res6.spectrum.com ([2603:8080:10f0:ab80::1382]) by smtp.googlemail.com with ESMTPSA id 006d021491bc7-676e3b52902sm12187297eaf.11.2026.02.18.18.04.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 18:04:11 -0800 (PST) From: "Vishal Moola (Oracle)" To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, "Mike Rapoport (Microsoft)" , "Dave Hansen" Cc: "Matthew Wilcox (Oracle)" , akpm@linux-foundation.org, Andy Lutomirski , Peter Zijlstra , "Vishal Moola (Oracle)" Subject: [PATCH v6 2/4] x86/mm/pat: Convert pmd code to use page table apis Date: Wed, 18 Feb 2026 18:03:52 -0800 Message-ID: <20260219020354.321088-3-vishal.moola@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260219020354.321088-1-vishal.moola@gmail.com> References: <20260219020354.321088-1-vishal.moola@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We need all allocation and free sites to use the ptdesc APIs in order to allocate them separately from regular pages. Convert the pmd allocation/free sites to use the generic page table apis, since those use ptdescs already. Pass through init_mm since these are kernel page tables, pmd_alloc_one() needs it to identify kernel page tables. Also, the generic implementation doesn't use the second argument. Pass it a placeholder so we don't have to reimplement it or risk breaking other architectures. Signed-off-by: Vishal Moola (Oracle) Acked-by: Mike Rapoport (Microsoft) --- arch/x86/mm/pat/set_memory.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index d52010fd3023..655bef618ea0 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -1420,7 +1420,7 @@ static bool try_to_free_pmd_page(pmd_t *pmd) if (!pmd_none(pmd[i])) return false; =20 - free_page((unsigned long)pmd); + pmd_free(&init_mm, pmd); return true; } =20 @@ -1549,7 +1549,10 @@ static int alloc_pte_page(pmd_t *pmd) =20 static int alloc_pmd_page(pud_t *pud) { - pmd_t *pmd =3D (pmd_t *)get_zeroed_page(GFP_KERNEL); + /* The generic implementation of pmd_alloc_one() doesn't use + * the second argument. Pass it 0 as a placeholder. + */ + pmd_t *pmd =3D pmd_alloc_one(&init_mm, 0); if (!pmd) return -1; =20 --=20 2.53.0 From nobody Fri Apr 3 07:55:21 2026 Received: from mail-oo1-f48.google.com (mail-oo1-f48.google.com [209.85.161.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 775441F30BB for ; Thu, 19 Feb 2026 02:04:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466656; cv=none; b=mvTruEGJnCSwrbGPyQxWwhZGsIaYJdtenN/zN0U4VF4Sn+z1JkvRlZGwYJ8yVtQzEINXF5Q0tpDZn6+GSjE8ZZCv8oYn/78U8ngDE04EFR3+cGQAyt+xlSN7Fpou/x/36buti/Y3ADEItN8xkjs6My4g/WWzEmuxjOTwHO+keFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466656; c=relaxed/simple; bh=mDeoFbEy465/wDhm9Cswv/ATP7wbViItQMgNZtU+WWg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=afwN9O14nwNFwe0giPzrjO8EsXBANA/gw4BRW2VZJcKSvBIjbt/Ca/UR6KpTF7yOHBuTr7IJEeKXqv9rzH6DzYNfxJShiIgYE4m0L0ObKPP4YZ7eI195gKjXR0/F/N+Dp3IDQcjwML8KBMIB5EPjOjOZs1XyL1+glZ/SHspJXTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DVxAmF8J; arc=none smtp.client-ip=209.85.161.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DVxAmF8J" Received: by mail-oo1-f48.google.com with SMTP id 006d021491bc7-66f3e7d9eccso278563eaf.1 for ; Wed, 18 Feb 2026 18:04:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771466654; x=1772071454; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EdFeIfI8cied5QM4K9689DPXawhhk8T32tDnon6B7bQ=; b=DVxAmF8J31UuinpG1cWDb/RpMEx/Z6b8PvnOmysqqdpJs7MVlnoYizbjQr0Ek2CErD olPzzQQ3uRjxDhNAz09/ZWtYzuVC2zAfd4HwKAWw1Mw7jNDyGnAi66U2RyP+oUFiOKLm NjEwPCfPrhdZ+/OHgz9Z2bis/7HIqJKgjhrH67lrur4SUgvD68MCcMfeC1my7Q62T7s4 LMh0I5eTr8hfcXuLvhUNMqhTUci0miEhCUq/zYSz9PwWi+YHm4eJbvVFqYIaAXhVUKq8 6cZR3BWByWdJ+Z1izGB8xoA/nmP3yToerA/lQwuWSvwGOQGv3ICZNHZgwaYH7eceEImH 5ThQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771466654; x=1772071454; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EdFeIfI8cied5QM4K9689DPXawhhk8T32tDnon6B7bQ=; b=SqXNG97DbesMZ1HqUletDpvbHH6DXDLN5q4lq4BRtHy5i6vLTN6RNKSdpp+1GXlOsc rRvkiKsQfmiuAboWUd3J9Z2xv7Z7Wmiwoa/CegsjAghN8rqNJE+Bi3z0RV6TLqQN8vZs uwx0WvoDosZKGbquOF89r2dRkgd7JadBQz39MRCffxJuqwzH/ebNmmV21PYkWEG7hBxt tCllgpqsotPP0VSWxo/eqKDuZDIbhwJ+sh6+kZRLT0v4x9AWxoBMaGxkMiqn+3siACdI K9g6vOgM16yGfoaSUhOqQcwV5lvguTMP7q3D1doBEhuaXPCmWh+NgHQe7DGeNn1f/QwP 0zzQ== X-Gm-Message-State: AOJu0YzL5AiVRqjwbWkO7uWbwYwkiHiGwe3gxPgiKAbK6k9P/9LSeLEa GXpVEpRDs+aYIniIJ7PJ++uxpibVt4Xb8V5kYVyERifMDmwrS4M+65TIcqMh7w== X-Gm-Gg: AZuq6aJzB8ZdBLWoKLjOkV9hI9V1dqBaj6FSPT8wBggzFMy2BNE3eihsWQjfXwXfgwD ywkZ+vjjwhGzsQ9MOoUy5BlNhfXAvH3nsw9Wfnrctl4tOtCJRKBCrlF2uwLqpYC9Kv8Za041+LJ p7QI2ihVytye9jbrSdSGLZfQk1+MmOybIxoQ6mtjCz3ubbiNdgfz2z5YBV6PNwegh8ryic88C+6 O4yCtlDuMjesS81HBwIPMOdIu1uW1T6MR6TNjjTt4wsIzWzQUDv02jWKRKXMWZPnizEOoZ87Ynv gYDLqEy1dqNQrfocW2ckIUQxb6IgyAfKp9LP1ywHOedpTWjP1pTJD+sSJhJ3TeOwX4SDBokpbhQ DeyEHKQmTsRsK4pkbrKkGBabM8x/Cc6QeKnT+D4yzaZigFGOpjR4XovvjVDWOUP88x0898IdhXv a25o8v6xcZrkwwGm3C6JTjHJM56Dj+IH49BEw6LRsNt4qqqvpbwSqPs1Iqr1suLy3v2OoLkEF25 VX2hXnOpX/EEInL9yoV4D0hpPbVFZqIRdWtW1k= X-Received: by 2002:a05:6820:151b:b0:676:7cea:7912 with SMTP id 006d021491bc7-679a746f4aemr2138268eaf.73.1771466653864; Wed, 18 Feb 2026 18:04:13 -0800 (PST) Received: from syn-2603-8080-10f0-ab80-0000-0000-0000-1382.res6.spectrum.com ([2603:8080:10f0:ab80::1382]) by smtp.googlemail.com with ESMTPSA id 006d021491bc7-676e3b52902sm12187297eaf.11.2026.02.18.18.04.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 18:04:13 -0800 (PST) From: "Vishal Moola (Oracle)" To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, "Mike Rapoport (Microsoft)" , "Dave Hansen" Cc: "Matthew Wilcox (Oracle)" , akpm@linux-foundation.org, Andy Lutomirski , Peter Zijlstra , "Vishal Moola (Oracle)" Subject: [PATCH v6 3/4] x86/mm/pat: Convert populate_pgd() to use page table apis Date: Wed, 18 Feb 2026 18:03:53 -0800 Message-ID: <20260219020354.321088-4-vishal.moola@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260219020354.321088-1-vishal.moola@gmail.com> References: <20260219020354.321088-1-vishal.moola@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We need all allocation and free sites to use the ptdesc APIs in order to allocate them separately from regular pages. Convert the remaining get_zeroed_page() calls to the generic page table apis, since those use ptdescs already. Pass through init_mm since these are kernel page tables, both functions need it to identify kernel page tables. Also, the generic implementations don't use the second argument. Pass it a placeholder so we don't have to reimplement it or risk breaking other architectures. Its not obvious if these pages get freed. Regardless, the only other possible free paths have already been converted, and my frozen page table test kernel hasn't found any issues. Signed-off-by: Vishal Moola (Oracle) Acked-by: Mike Rapoport (Microsoft) --- arch/x86/mm/pat/set_memory.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index 655bef618ea0..8f74d4bfd591 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -1746,7 +1746,11 @@ static int populate_pgd(struct cpa_data *cpa, unsign= ed long addr) pgd_entry =3D cpa->pgd + pgd_index(addr); =20 if (pgd_none(*pgd_entry)) { - p4d =3D (p4d_t *)get_zeroed_page(GFP_KERNEL); + /* The generic implementation of p4d_alloc_one() + * doesn't use the second argument. Pass it 0 as + * a placeholder. + */ + p4d =3D p4d_alloc_one(&init_mm, 0); if (!p4d) return -1; =20 @@ -1758,7 +1762,11 @@ static int populate_pgd(struct cpa_data *cpa, unsign= ed long addr) */ p4d =3D p4d_offset(pgd_entry, addr); if (p4d_none(*p4d)) { - pud =3D (pud_t *)get_zeroed_page(GFP_KERNEL); + /* The generic implementation of pud_alloc_one() + * doesn't use the second argument. Pass it 0 as + * a placeholder. + */ + pud =3D pud_alloc_one(&init_mm, 0); if (!pud) return -1; =20 --=20 2.53.0 From nobody Fri Apr 3 07:55:21 2026 Received: from mail-oi1-f172.google.com (mail-oi1-f172.google.com [209.85.167.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DCFA275B03 for ; Thu, 19 Feb 2026 02:04:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466658; cv=none; b=UPJiGfneCL/a39ziKXCFXpHcKB9hiWgVsuqh3Ww9aF4XOoWhP7VrY1fE70qiDpMaOuh5oUmGs2PBfrEckCmbXxf1QEeIbk3aJdH18qWhipIzyxuefLw1jl/P7FL5aC5qDzGDnDnLE2Y8NRnA+SdIh7lh/pOf0Sz7c9moxT7iVvc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466658; c=relaxed/simple; bh=SHCR5bDZvABOWRG0sygxRAPhGzWpnD4Z0SKRarBk7Ns=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nBFKbMm+rpFFNHhXh6EXmvNoZSPajwtg4fz/KH6ny3FEhIxmkX8xP+f63hHI5UT0/ZKeNYUApnn6kzac4xT4NFM0O6lyBDAIHG95av1aaxintPuED7obqe5+cCM6Kwl3BTvNAUauvo+XSYjNWdMm5bRe7vPQZo1L+i3SGGyTmpE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HwqZeFLE; arc=none smtp.client-ip=209.85.167.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HwqZeFLE" Received: by mail-oi1-f172.google.com with SMTP id 5614622812f47-4639279c7a6so154163b6e.1 for ; Wed, 18 Feb 2026 18:04:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771466656; x=1772071456; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EKXZaR9Z7QBgOp0G8H5rTH0s4LUebUliiAlBrVmUCHQ=; b=HwqZeFLEvPSC+qh0BTm0vJhb1VxQPIwPPYTiYHwDsztjg8N6XUpoDwUJj+/r+pUU+S q1r5+Oe/+SkuV/JX7e0rLEw88mJvG4NcW6HDZoDGulZFpU8E4Z953TkzgdGvP/U66Y0I kpS8NE/BpRJQ+9hgTYAV7BNT6QI3a0QEjMWZoL+X+wrLGI4xWHm/2bJB1401w38dr5+5 SwC8p414WeJAIAYGg+BU6CnJdL64yXzWvpPDQE0+DuCt4sxVTv1huanU5q2PjHwhUeYC Ai4fJ+Iw7vkQoVuuryJHQ1q/U0H2rqcyGA2TKxdRm4eEgaQeiE7KWgXyJdsbTNDr8FbH QAeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771466656; x=1772071456; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EKXZaR9Z7QBgOp0G8H5rTH0s4LUebUliiAlBrVmUCHQ=; b=tmiD9gYPdCiiWL3w8AjZYRH92czYzl/ldWcj5h73AjaMuaAGViI/R3h8UrSJS42YiX QTN5KlHUtUj8NM3MmeF4qmG1f8fd+U5cU+7Ah7g8vqlsWRTimeK9wL6tFMaU0/QredKL rL4Z6wCAde8EIhVn1YDz5N86fbxatEn6uNfJiY1IPnxn7J8UyDQNN/GVSDAoY2TkxF2V 7jSwwfDfA84yfjSpdpB0IcFqMzgPT628rmhAkD3dOx7Ck07Xi4fAXWK+U5Yg2ChMlooU Fe0zWuGNuKMFMsz7xNEtfWvl1DOsh2Jzu3uj4ENIoeYmUzeTtVwnVFh59ArJZwWrb9rg h6dA== X-Gm-Message-State: AOJu0YxICBemmQxeBRZCPcZ4lPiL+kanxXAQ8snRKTp+hsqopy40E0oD LMbnIFAT12DpLaIuazL+AQXj/Jk2MQd3H2rEKHh0NcZtM9FghlxJgERiRR45lg== X-Gm-Gg: AZuq6aLltBJTtER66pb4bvoUCOgV8Aq31KyT/aWLIl6F8BKUZ756hWa9H4Is0QqCruc qtU2QdS/dVyaxGDPW3fF3sB4/VkF+aD4rAfs8zOPVz+r1a4S3Hc0XSPF7aJlnnPr6wvstZdog9c X4rdXikBd6nTk5U4a22cwZPi1zNd8CrCcbE12xc9DIDpYG2tdrDQsSpaTMP42lNqZ60s04m9ePP xmLNvaW5e1loEqPbX3jB4RR6iXR5q8bpR4tE9zeN7GW4hU4/Fr5Zjbj+txgrOnLi6/niZmO8j6z A0ykJOZX9zG1H2sksK9G+5+ZZc9NNJGohwIv2pC3eTOGsr7qlWoIxrmWabP9ey8PqiV1l2ncJSA FGeNXKI/HIYoscay7HuZEflDX2EJRZKhLEafKrD9iojAkvP+m+OZuC1302XBDtGPEc8OKLONLBk 5TJf9FH8TH03nDC9JDkchGRZMai97ixwzNfCQwo8MZ5PtSM1cTpWIYO3fUmTE0FLkzI29LdpEpO v80IthmEjt/OXzdGUz6yzV6IuLmMx/fcZP1wDA= X-Received: by 2002:a05:6820:480f:b0:661:13eb:6ce4 with SMTP id 006d021491bc7-6785989d6ebmr7546695eaf.21.1771466656047; Wed, 18 Feb 2026 18:04:16 -0800 (PST) Received: from syn-2603-8080-10f0-ab80-0000-0000-0000-1382.res6.spectrum.com ([2603:8080:10f0:ab80::1382]) by smtp.googlemail.com with ESMTPSA id 006d021491bc7-676e3b52902sm12187297eaf.11.2026.02.18.18.04.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 18:04:15 -0800 (PST) From: "Vishal Moola (Oracle)" To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, "Mike Rapoport (Microsoft)" , "Dave Hansen" Cc: "Matthew Wilcox (Oracle)" , akpm@linux-foundation.org, Andy Lutomirski , Peter Zijlstra , "Vishal Moola (Oracle)" Subject: [PATCH v6 4/4] x86/mm/pat: Convert split_large_page() to use ptdescs Date: Wed, 18 Feb 2026 18:03:54 -0800 Message-ID: <20260219020354.321088-5-vishal.moola@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260219020354.321088-1-vishal.moola@gmail.com> References: <20260219020354.321088-1-vishal.moola@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In order to separately allocate ptdescs from pages, we need all allocation and free sites to use the appropriate functions. split_large_page() allocates a page to be used as a page table. This should be allocating a ptdesc, so convert it. Signed-off-by: Vishal Moola (Oracle) Acked-by: Mike Rapoport (Microsoft) --- arch/x86/mm/pat/set_memory.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index 8f74d4bfd591..e26535f3b8bd 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -1119,9 +1119,10 @@ static void split_set_pte(struct cpa_data *cpa, pte_= t *pte, unsigned long pfn, =20 static int __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long addres= s, - struct page *base) + struct ptdesc *ptdesc) { unsigned long lpaddr, lpinc, ref_pfn, pfn, pfninc =3D 1; + struct page *base =3D ptdesc_page(ptdesc); pte_t *pbase =3D (pte_t *)page_address(base); unsigned int i, level; pgprot_t ref_prot; @@ -1226,18 +1227,18 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpt= e, unsigned long address, static int split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address) { - struct page *base; + struct ptdesc *ptdesc; =20 if (!debug_pagealloc_enabled()) spin_unlock(&cpa_lock); - base =3D alloc_pages(GFP_KERNEL, 0); + ptdesc =3D pagetable_alloc(GFP_KERNEL, 0); if (!debug_pagealloc_enabled()) spin_lock(&cpa_lock); - if (!base) + if (!ptdesc) return -ENOMEM; =20 - if (__split_large_page(cpa, kpte, address, base)) - __free_page(base); + if (__split_large_page(cpa, kpte, address, ptdesc)) + pagetable_free(ptdesc); =20 return 0; } --=20 2.53.0