Message ID | 20250219084001.1272445-1-quic_zhenhuah@quicinc.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 53860C021AA for <linux-mm@archiver.kernel.org>; Wed, 19 Feb 2025 08:40:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E1A5F28020D; Wed, 19 Feb 2025 03:40:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DA39128020C; Wed, 19 Feb 2025 03:40:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C1DAB28020D; Wed, 19 Feb 2025 03:40:54 -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 A11A928020C for <linux-mm@kvack.org>; Wed, 19 Feb 2025 03:40:54 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 540891A128A for <linux-mm@kvack.org>; Wed, 19 Feb 2025 08:40:54 +0000 (UTC) X-FDA: 83136048828.03.EF074A6 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by imf09.hostedemail.com (Postfix) with ESMTP id F02AB14000E for <linux-mm@kvack.org>; Wed, 19 Feb 2025 08:40:51 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcppdkim1 header.b=XtLC5qF0; spf=pass (imf09.hostedemail.com: domain of quic_zhenhuah@quicinc.com designates 205.220.168.131 as permitted sender) smtp.mailfrom=quic_zhenhuah@quicinc.com; dmarc=pass (policy=none) header.from=quicinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739954452; 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:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=N6c/s20pIDfoB9/BFl1ZEmTIze5jb/cLpzgJIpq8gH8=; b=Zn6r60l7uo+s0TwM/OquTmzrrJMaT3unPkgjHCfIbPxHEqFBSpuBOVBYFL/cel6tjvoQu4 cNEU8E6dyvAo0gnXv6rR443+M9F5S/E3gzCi5Xw9Zg+xgoRN2+mcswb1uEk549pE1ApGPE 7zbuYIzfChuUXv46bF62nOSk97imulM= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcppdkim1 header.b=XtLC5qF0; spf=pass (imf09.hostedemail.com: domain of quic_zhenhuah@quicinc.com designates 205.220.168.131 as permitted sender) smtp.mailfrom=quic_zhenhuah@quicinc.com; dmarc=pass (policy=none) header.from=quicinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739954452; a=rsa-sha256; cv=none; b=XBu7d//nQ335UZ+PJ5UCtz0TB8rnA91lfZj6ZIZ/zd3H1ppKnVPnI9Wc8QvTJm8TNSP4nP xrRWKgKcQVR1L3PnaVZCUOdAItEdQHgMq3/z37bpeqb4zpXuuIWgsN8jNZWYgHf05xnhBL VAlcdhhYBHqek1Lw4eb7JjWvmxYp8dY= Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 51J0N3Oj010056; Wed, 19 Feb 2025 08:40:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=N6c/s20pIDfoB9/BFl1ZEm TIze5jb/cLpzgJIpq8gH8=; b=XtLC5qF0J+hgVhW/Ac+uQ47JMA7u+rknDoJmUp xBMvV95aSZIx6/UXoHCmGEB4bCajONhVeUJQxB7/b60xgh55+kVjVgRUhLRmbwQt 0cJb46AfONy2E4lbKehMT9oVj0ll0NiHCalpQtYXzad8gZ77w7q6IChybr/9/hHJ Atzv6vK971oIdPx5/4SAamhGN4gYJ7Q75mSay34PN+NaS7BPw0iQ7ydEIK71x3fZ lY1FEIniv853sNkzLIuyMyez8dxkS0puj0Tj+gYy55GR0pHxNEpROftGFUOCkgt1 1A9h7LG0Ulx4QVHTyain3JzRvSepPrsM1QJCurzp/bu4ZNYQ== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 44vyy0ht5c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Feb 2025 08:40:38 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA03.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 51J8ebkM004831 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Feb 2025 08:40:37 GMT Received: from ap-kernel-sh01-lnx.qualcomm.com (10.80.80.8) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Wed, 19 Feb 2025 00:40:33 -0800 From: Zhenhua Huang <quic_zhenhuah@quicinc.com> To: <anshuman.khandual@arm.com>, <catalin.marinas@arm.com>, <david@redhat.com> CC: <will@kernel.org>, <ardb@kernel.org>, <ryan.roberts@arm.com>, <mark.rutland@arm.com>, <joey.gouly@arm.com>, <dave.hansen@linux.intel.com>, <akpm@linux-foundation.org>, <chenfeiyang@loongson.cn>, <chenhuacai@kernel.org>, <linux-mm@kvack.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <quic_tingweiz@quicinc.com>, Zhenhua Huang <quic_zhenhuah@quicinc.com>, <stable@vger.kernel.org> Subject: [PATCH v8] arm64: mm: Populate vmemmap at the page level if not section aligned Date: Wed, 19 Feb 2025 16:40:01 +0800 Message-ID: <20250219084001.1272445-1-quic_zhenhuah@quicinc.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: mWlH5yR6FFP0v0452-L2Ku2R7Qn3eOSG X-Proofpoint-ORIG-GUID: mWlH5yR6FFP0v0452-L2Ku2R7Qn3eOSG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-19_03,2025-02-18_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 mlxlogscore=999 spamscore=0 clxscore=1015 priorityscore=1501 phishscore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502100000 definitions=main-2502190068 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: F02AB14000E X-Stat-Signature: usj9hm7hpmxc4te9up5anpxgao484aup X-HE-Tag: 1739954451-22368 X-HE-Meta: U2FsdGVkX18tRK5Dr4ZMImG0SdUmxrOfxmkBl4UmwSaeITI7S4BAZMUs1oZJDYSWFCf3RDJpfDaOiPqxQ45wu3AB6Hj1F/4TQpdF+BSOHaFVDea4Bd9fy2bDWSdZgR7gXZntCm6spVnaSYLL3ARojMitv3FNqgawhpRKCnGqfMb+QsVwT/cwOrporUhB1DvDio9GX5g6zX29N5qif3DUXeMeDiHhIVv3rUjFkZWJ3dkIAz+/nN9zT32oaddnVt1rtfpKNSbiSa3V/72UdJbaT0+X2gBzuIfjtzZw+zbJp3neDlaz4qAOZAOcBIhdAD4kuqlQ4A1Lz/pUILOqWgGFmFjh8NCAx9eMYPHMt/pNUgsGH0j28jEQ7G7jIo1KG1WzNAamXHqXpi/Lxv4Kt/ICh2aqDgRl48K3pk+O8rxsvFvEBR9jrpODirtBGMYrwYQECVpIREwGpA6ouCvGDH2fW/qxLjdaWVK+D1ygpyYtqnkNohQ9ySB6Ekw35kzKVpx1lljG6I9mHuzbf7DsXx/S8b+t0RgmlUCob+vnZDHSqv4IPY9h9SVmWyBYFR4bICPRc5LJLJojxImSdvzDdsC8c7JWZERedYJI8Ek9BOfpqdQCA+X3gAxcGXfOrZh5BNB9UIkYRDBN2ehRjXyDiBN+hR0OHi5ucnpYxmnlS3ncVgeLypvcn6cdmpA1uHoSgs6w6fbk86OX7hGSv7m5F4C5pXZLBl5dlJjePXrQK/vN7T13sqh/IWtY9EJxKRujfhcISSMlo4FWMosXQrwOLtHENrarcl0+sVzpjptfiF0kM/LSOndRbCtncA8my/lscAW9sP6S20L297vT+m/UK+W0PNdtBez+/6+zryTKtDvJcs19elnuw8t2o43K3RrysEjN5fu/NZepEgD9yAtLD6lDHdpJxXYLu0nNhpoR74XvREFS8tljHyU1qSgWmUgieC/OprXbkrVpzllXy5siTVE ZFVyXZGo M7LLBdc+3Ej7PoOWmZC1hlKFndI2pCyydBi62mqFe39e0ijQO9ogDKBwhOQoY+Y8gBLeZ+5RDltda/2ebwrUbqO9vb1IwqMB1dwOhRnvMJ3I0JPr5VqRi2q3XSoNwVu4HE2G8aT/nkXIxKHU7t8CyLzZ9zqB07qJEPXV2yfR3a755kkZeGTop9YLw1A8sdifK0hBycy8Vut3xJR0gmXbrpEq27ZIROFd779KpeNJME40AwORu4LNmZbUL98iaoIi9LnodYGfPvikXLnGGVMiwewYf/bRPTS3S7H+r+RWlYMAFnXOAAxxaxEp55SqIDI6sv/ye4g9ll0mtmbhGs0YbV6MR1A== 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
[v8] arm64: mm: Populate vmemmap at the page level if not section aligned
|
expand
|
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index b4df5bc5b1b8..de05ccf47f21 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -1177,8 +1177,11 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, struct vmem_altmap *altmap) { WARN_ON((start < VMEMMAP_START) || (end > VMEMMAP_END)); + /* [start, end] should be within one section */ + WARN_ON(end - start > PAGES_PER_SECTION * sizeof(struct page)); - if (!IS_ENABLED(CONFIG_ARM64_4K_PAGES)) + if (!IS_ENABLED(CONFIG_ARM64_4K_PAGES) || + (end - start < PAGES_PER_SECTION * sizeof(struct page))) return vmemmap_populate_basepages(start, end, node, altmap); else return vmemmap_populate_hugepages(start, end, node, altmap);
On the arm64 platform with 4K base page config, SECTION_SIZE_BITS is set to 27, making one section 128M. The related page struct which vmemmap points to is 2M then. Commit c1cc1552616d ("arm64: MMU initialisation") optimizes the vmemmap to populate at the PMD section level which was suitable initially since hot plug granule is always one section(128M). However, commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug") introduced a 2M(SUBSECTION_SIZE) hot plug granule, which disrupted the existing arm64 assumptions. The first problem is that if start or end is not aligned to a section boundary, such as when a subsection is hot added, populating the entire section is wasteful. The next problem is if we hotplug something that spans part of 128 MiB section (subsections, let's call it memblock1), and then hotplug something that spans another part of a 128 MiB section(subsections, let's call it memblock2), and subsequently unplug memblock1, vmemmap_free() will clear the entire PMD entry which also supports memblock2 even though memblock2 is still active. Assuming hotplug/unplug sizes are guaranteed to be symmetric. Do the fix similar to x86-64: populate to pages levels if start/end is not aligned with section boundary. Cc: <stable@vger.kernel.org> # v5.4+ Fixes: ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug") Signed-off-by: Zhenhua Huang <quic_zhenhuah@quicinc.com> --- Hi Catalin and David, Following our latest discussion, I've updated the patch for your review. I also removed Catalin's review tag since I've made significant modifications. arch/arm64/mm/mmu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)