From nobody Fri Apr 3 09:35:15 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) --- 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