From nobody Sun Apr 5 18:19:06 2026 Received: from mail-dl1-f54.google.com (mail-dl1-f54.google.com [74.125.82.54]) (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 F2A6D3E51F8 for ; Tue, 3 Mar 2026 19:48:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772567333; cv=none; b=bj10ZbQQTR/QsmpSLGy8+bn8VW5vedJHWKJFjCn+xwL5h9Gs/kWQ7HIgvRn0myolkECaGWT0bxgvwUuGs0rjqNyFDyDw8ZaqCOrRxB0KS24CKq/F1mKEndDGYAbXBUmQ1ibql2AjmZqxWnga7XU/4XwDdTwgMe5H/O1ZrBbLBn4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772567333; c=relaxed/simple; bh=qHMm9ZyH8Wpv6s29RZJn88hjlimTQnHrlei+LdWqhtU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=InPbCqZenEynBYQ/STW/ZGBskh6bmdChytrZ4y/NCSWh5P8W8n6K5vZ71yyxMMGgw8zC0Ck/xznHtM6oag1UfjLVk7e8P2EDfg4ihejQkFPUIG6sUqGinEaMyfpxAvOkwv8sTjr7uoxDZ5/OApde/U+KK6gKXUevmsvEdx4sZXc= 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=j80ybD8b; arc=none smtp.client-ip=74.125.82.54 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="j80ybD8b" Received: by mail-dl1-f54.google.com with SMTP id a92af1059eb24-1273349c56bso7355411c88.0 for ; Tue, 03 Mar 2026 11:48:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772567331; x=1773172131; 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=dOCB92VFaJvp1/msg1aXr5lsyHqZuKZRc8ptpqCWqZQ=; b=j80ybD8br7csEBjhqd5j7jZGSwFXDX8ZyyfIHtDdSJ6dDWag3swdVM0BZc37b1X6Ii NbatNItl0Te33lqLSy8VLakzpXFCqgOqyNb9NVB8BdPZXqUyztMRueAmrx0JVgSvdXw0 05h1u3U5xIUITw1sZz6wiXgfxUfr+epHmpJNuL6mMtcUsMEfGVJ7BSdeYedRLslFVcGS ALmvAz9eygDZsNAOZFVE1wCqdCXqtRnZulg//pINI9XLN2LYvVmPvVxG3KnITNZwgMMO UBHFMRR32AHEk7EA2RADPoM8kLCpO53khO02YIHH8re2Eb8+wMWilrYgx7i2EZnRwXPE W1tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772567331; x=1773172131; 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=dOCB92VFaJvp1/msg1aXr5lsyHqZuKZRc8ptpqCWqZQ=; b=ujh1nS5zDKaCgqFYAxOVQhQdH9yIraX7ZgxCVF+0Jni7rEJ8iz9RSKVxWB6eY82bbh W8I1xhNRSUPDyF3DWMJOZiJ+lHoyo/CMlzwrChMofx9t/Q3Dy/XweW2buPybUXvo5obf 3BLYH8Eub6SObRpHEBxz/dT5TAsY6OzhrigD5uo/P8DGQdkoI3/qyItt7JAJiOW8l6Fk ogoHVZGRlQoFOUKxc3hKHAppGNcVUNNW9Tlk0h48n8fWSdCKkrEXcqWpLWuRPZ7hNclX chhBZWH1OOeeQOZFjj45XHHDDA6aRUfQb1y/nbCSaTHXeQtOtj+cCULGQCJQg2nX/Zw+ oDQg== X-Forwarded-Encrypted: i=1; AJvYcCWjEXTtG5TS22ZWUnOVSpPJco5K5uhv6N5lr32r09R9pGZQftqjvoH867RciuRzDPtwg7yL17G+LMgskz8=@vger.kernel.org X-Gm-Message-State: AOJu0YyKhdDwSvl/pIdcg6ZXKqfUOnNNadEP3aUijggCy75Zpk+8feqL E4hQeQTXW49Oidra+LQmHfqN9ZbTh47Zd/eaCN0LpC1mbUU4OtoS6soR X-Gm-Gg: ATEYQzwFEyXVQO/wv7Pp5BZGm5ZKNX1DJbWswvCnEPD1Mqp7yoV2W1O2b09rA3hDhk+ bbjRoBVBRmikA9uBGFlpCarLun+rFUw6l+p3ODg+3jdmkQGXQJzPtg4OVrgZUbfXKIprqW43fdp TomkPg7h6nHMzEELsuLgDdCo6varyQQ5DTYeKkwddLeJcIBnVoILnwR6M5IW2ALQXBGvVdr+1Cn uxInWGImyO26IKyoLaRJRe9XRb8T3fey/CIU4y8sD8RyW7tMfyKuEwUCDwncMaxisUur6hrAwgP lG6FQ01GAppttd+RHwA07VXbxjYuipZ7DxPpeWINwFb0OpiAhGuOpRtOnusi+Igp1+z6/2lqOVa qzpdvceEwFuKuddbaPk73p28pT3aMv8halbcPyPmTpJinMTisbofoCWEvxs3lXWvWmYksK3nCWt LprIw8eHRT/OFbwJTrfEJ18DoDdBNo/QLq+RQ0GXQjhDRndv/GWOe1nvP8RydAwGpmK/mMJuI8o E4m9ojJ0I9fiew= X-Received: by 2002:a05:7022:48d:b0:119:e569:f61b with SMTP id a92af1059eb24-1278fb93eb2mr6842247c88.20.1772567331045; Tue, 03 Mar 2026 11:48:51 -0800 (PST) Received: from fedora (c-67-164-59-41.hsd1.ca.comcast.net. [67.164.59.41]) by smtp.googlemail.com with ESMTPSA id a92af1059eb24-1279e9950cesm9258748c88.7.2026.03.03.11.48.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 11:48:50 -0800 (PST) From: "Vishal Moola (Oracle)" To: Lu Baolu , Dave Hansen , x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Rik van Riel , Andrew Morton , Juergen Gross , Yu-cheng Yu , "Matthew Wilcox (Oracle)" , "Mike Rapoport (Microsoft)" , "Vishal Moola (Oracle)" Subject: [RESEND PATCH v7 4/4] x86/mm/pat: Convert split_large_page() to use ptdescs Date: Tue, 3 Mar 2026 11:48:27 -0800 Message-ID: <20260303194828.1406905-5-vishal.moola@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260303194828.1406905-1-vishal.moola@gmail.com> References: <20260303194828.1406905-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" Use the ptdesc APIs for all page table allocation and free sites to allow their separate allocation from struct page in the future. Update split_large_page() to allocate a ptdesc instead of allocating a page for use as a page table. 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 17c1c28e3491..cba907c39718 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