From patchwork Mon Apr 14 03:46:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Arora X-Patchwork-Id: 14049625 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 98B2DC369B2 for ; Mon, 14 Apr 2025 03:46:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49569280037; Sun, 13 Apr 2025 23:46:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 38C50280040; Sun, 13 Apr 2025 23:46:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 13F74280037; Sun, 13 Apr 2025 23:46:46 -0400 (EDT) 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 D0C1A28003E for ; Sun, 13 Apr 2025 23:46:45 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5D120B19B3 for ; Mon, 14 Apr 2025 03:46:46 +0000 (UTC) X-FDA: 83331262812.12.2590B94 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf15.hostedemail.com (Postfix) with ESMTP id C3AC4A0005 for ; Mon, 14 Apr 2025 03:46:42 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=cJ+48OTb; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=vZ9cUUFx; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf15.hostedemail.com: domain of ankur.a.arora@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=ankur.a.arora@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744602403; 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:in-reply-to:references:references:dkim-signature; bh=u9P3VpLIvdp+NSb70dIKhiVvV1dVwGDeX3t3RWLaGjs=; b=KBnvN3QyzF49hAQwAY/uet9lUlWIE5e8KNrPI4f/wHaZbIpUaWEwqzcNt9BTbvMtQt+Q9l 7ngzZgShvcu21o/fSYutG3J8PAVWaJSmL+cOhIdf028rw/4GUTgqkmedl60OMxbtxGYX9b MgJqi1nebwhvPagVpj/OiGtj9ssTRYs= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1744602403; a=rsa-sha256; cv=pass; b=A0Hm9346xxNxNpNI9SloggI1coHkQaWNasRMPWMOiTpOX5StAjzhzMgKOINNHViHJso5zM G38Kd65LKl4DuBK0o0owsvwaeppE1HEZ9PxNCooMVyZamwy1za0slpZgIpwK7w0llKG1eC bTDdT/kAhdGSdqbxbneign7DiALrc+k= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=cJ+48OTb; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=vZ9cUUFx; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf15.hostedemail.com: domain of ankur.a.arora@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=ankur.a.arora@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53E3bnSB007627; Mon, 14 Apr 2025 03:46:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=u9P3VpLIvdp+NSb70dIKhiVvV1dVwGDeX3t3RWLaGjs=; b= cJ+48OTbBWbtocjQ+mWKg2lWXX2UzDzZzSQi6a6Hqe9n3/doQPCEaBY5EHUBYwOR ++cT4bEj3UbXXdSWlBAmxOm2gp1P+HhqsifwSjMdnBsB2vnTq59zHwCxsbo+b7jE vaMu05dm1jyb56CXH1e67J8EjEAtt70yY1ndHdGm2++DymiXQWZiMU5OKbnjgXyI AlwPSSsv+VZCsQUttzx1m0cwWFkPFplGvX/ar85fmcZ1KgCHayA3kjBHKoB3iHiE Wv96N1EA+np6FR8+xf9TrsR2BzRzFBhSNqPLvqgmnPiuiihXwDCcf4ypucwqLUWL llDFu4CXNC23ZiJZJp+BMA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 460tm28079-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Apr 2025 03:46:18 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 53E3bADv038784; Mon, 14 Apr 2025 03:46:17 GMT Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazlp17010002.outbound.protection.outlook.com [40.93.1.2]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 460d4p6fw5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Apr 2025 03:46:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E/hV5lD5nb9KfzWOkE1J4SuyOkwyYyG8zPvYgMeLA4JGFuw3nRcADsTL/wV7vCEwXYLFwN95LPcWqn+bhlJQlAKZInu6McmtI/VYAYsRtYUVujvv7BOQgNQ1xd0DWd9MNRYLefH++TriKQOSWe7IRFGzolGXZHwxZEOSv8GzG+eHb7UzSKKfXt42tVp1qop7buoowybXCzQ7AK3wAx3pYpCXIp0J/qKP/RMUUSm4qccgKPEpeAYOBWX/GsB7HeFIWA27wbnF7C6vcerPPlp7H84Gixqo4D3h9Kl3GceBR3oT73UboNqAbV1hZt4gfrp+tAmLpIThkBbwZFutZRZBaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=u9P3VpLIvdp+NSb70dIKhiVvV1dVwGDeX3t3RWLaGjs=; b=tu9XXATBZyWtjb5uPKRjvIJweqiwXm+CrlEcoI8dcZggES9QG5AK8S+nTZ8lCEfxqoa+jiuiSofhsgrTsfN36wVivwtitlLd4lyEKbNF21jNK9R4L6XL7PxODMg/NayxmvZBXtMbtg0U1O/6xvdkMR6y+GViT+Wsvn9CGJ5cGt73swNYIAxBYdGnYBI7tSO4jC69QzV/kn0s1CE04sh8+e1mxAWKFbW++3/JRwAOTHJqCeSFrnt1N7RZvrqlC0PU6acNwZuWYVqrTzkJnuSig9aIlI8AZCapB8RN2Ld1utx/WW5X2wIEFQPABPiX+ORhrsqnCkv+zUl26U+qdk23GQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u9P3VpLIvdp+NSb70dIKhiVvV1dVwGDeX3t3RWLaGjs=; b=vZ9cUUFxtoPR2vj4NvUhr/rtkc/UelCi1SlyormO3sKtGx2gR6z50hRI/vyw5ul1Shv0/jttlIUULWfv29OYPS5A1M6nGjRBE09VSS/8H2bIWHv6UyRmPvgfqD8Il8PwEKdo7nB+1bSSIz83X1//f+EJ7t8U8TBZ6E4JsXpB85g= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by DS4PPFDB583D803.namprd10.prod.outlook.com (2603:10b6:f:fc00::d50) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 03:46:14 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 03:46:14 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, luto@kernel.org, peterz@infradead.org, paulmck@kernel.org, rostedt@goodmis.org, tglx@linutronix.de, willy@infradead.org, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ankur.a.arora@oracle.com Subject: [PATCH v3 3/4] huge_page: allow arch override for folio_zero_user() Date: Sun, 13 Apr 2025 20:46:06 -0700 Message-Id: <20250414034607.762653-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250414034607.762653-1-ankur.a.arora@oracle.com> References: <20250414034607.762653-1-ankur.a.arora@oracle.com> X-ClientProxiedBy: MW4PR04CA0360.namprd04.prod.outlook.com (2603:10b6:303:8a::35) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|DS4PPFDB583D803:EE_ X-MS-Office365-Filtering-Correlation-Id: bf3fd167-6a40-4b0c-1e11-08dd7b06e7f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: s5au/PX662NJWAMp2e9APYavoAzfzZB4foB5+U6xDCe1YCa3sngr6UgRNnhMdqI0KzyegPNjvh5NbSU+i8nJZskF54O3tXmewJels5A4dFwHC2gy/JFbpqOAzEOrgvBLL2i6GLwXBO7mj7XPGcCxsAsmPEV2BQtGrNEft7rMYIhAkhJPLxZqAEXbBpL0I6Yg4ePvIBpTShVL9kXCEgWLclY88qaja9ER8GHa2MgZSjjAt+9Y1WpheKsC3AKH3qz8FG+Jcb2A+6vwucQ9uczWg6G5uekgQPqYngs9WyNkDViL2Q4d9ZNjnrvt/sI7ZtuGSqZz75xk+LXuL9NSvYrhN5DDPWvS7OGpUGBdvbfaBBH4RX2IwV2fE1Etk+TLr5ac1wntMmEhAwsYyKAmkkFNwGpkDozqq8rrPinkEaITeUNETvEYd56kNIXe/ZuEImHH5Ndq9FSSsXJDjUJCyLAcU7rNc6J/JqbE9hUbcRFyTaey11bnBAa0kJL2Ot3BPyRboAMneLZLptPY3EBxeTC3eeJCxxZomYMAdNyUO1+WaLDptNvjxa4elLv/wlIRNft0cYJSUzFpu1qYaeJ2AFaBmHccSK4YlKZklTATJpCw6kDEsqn2s+yj9ghUibD3AOZuLRp+vNC17VGBaZUuZ1XMdT2deAHgBK2n8EJdwEwIIsHD+qSQEmgBpGWXjSJyRaGR2mf/O5qew3+Pp/3LEMh3CEAmkmZDs+cGGnLVZBl3hBY92PS8upvlg9WHoEQxgPv7ZqQbJAa5J6KR8SH9GLhAKY1Je4jLx+ehyMkDtk9BudQBCGAz78Lt0T4WdeM8E20WW2JGL6xWdVZ+tYLKPKDJ5nA7xJClRyfy6bo5rrmWla6LxoT2WC8coxoqIGSkqy6yPGdAPhiyeeMEX+CWjd4a6DN0RdqFx9sk5gFjGht4dBazuqb1LHI3XGUKOlANzLdb28yRPxhqbkUDdkGoZKsbJijTMmfo68Yy4Ht0r5puHG5KrFutH8JihKDXrlKMsepNh6zjVjWoK40njn268dxzPMQ6113FjQo/PB5lt72XzwV6Sb9NQuMUNkoOlw92VoVT6J2feWSlBfG7CX8ZOSfrmEcPUrFHk3/RdRWsC/2GE93xQiXUVwoSSrtHWKVG6buRfAUzhp0RAHCzfS2pndRn1gu0Ilmpd/j/E8z7b2V+mSiQcDpkA17GCTx8J8wh7anxRqruowC/r4Zi3yew7CjqU+Z74BpxhQK4FHNI9GmtrYuHBgNOSS7NVESDe6y5ji1r5AxoR28Wz2i6WPhY+81gMY7fdGswiuX44B9VmBJ5wpzPY99iwR3YlS6qNC4tzaBJ8oeZqQYnnCgdD4+wNN39u6TLQLv67eCvIYR5FDiBqzTjzV1raKNI3GxoOs+pST9cRCKoyRf7Ye/LX7ubWTSWDl+94KYWDPXyzXKR67VOgDU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QMUDcZdUwgCup14Ej7pnU36bgHMFUNZzdHpfOZpQlRiWD8Jvb0TRJoB3Ke0zR/5tapaNHmZIrDYRqWuf94DmnX4T7m8wi4MShtMeoP07bWr0eEh/PjT07oWyZbctuS1ZSkmkNIRuAhOZRcpxI1nLaWwKZrq6ocQLEI9QeE9YlOyMqyd/8ffQNKaF9gjWd4kz8RtPK2PvjHxSw4YODoHE+H0hd3J69397dO3Vm5ymJK91H4l/X6vvMZrIvBTIFG8jLRXF+cC4fmgice6YctCQf3QZHe61txGx462ukxQHQzSHOm8p4eF+c+oVJhD8xA9eYSz6yjhlhkuItosX+EZwc6QF8WhUqhjrBwPlHMy40ngPA0bsDIwYJbGgmrXyK9p4JXTIOT1MQ7dyQM2UDOsFadQiF4hp5t4a9gRIyMPZud5zWAmCc0NqpYD6i5GmxTqJdGrOiGvxIcPY5BMvmVdboUxO/mnQZkvquXr74d8C5txBDyUhIX/gbOjXr6SZtG/Dtl4mtWV6NGMH+Fai7n6wSq8fFjYirMGf0/7t5Am9pRq/jEn3BZlk+2wQqLwShtcWHsV95U7gXXBQnKJckvHFHfa5BC3sZO3bBYVKePYmW/5fllxDMaAsbP7KALMULHwKlFPBbeciD72RmAGft1xamGyxqFB/CTPAXWywU+qmqaDgC7cz5Or5NSj+vVQgk/AQVfpu5nz9fFFiJO9FYsWSckwDk0lZiB/zmTqDKWMZZ+G5sS4qWwFJYXrZPqYUW7fqSgTReFR/Zq7Jgg0h+9c1JVybD8aUbJ4gi+Sfe5BKowf1iI83TCuaQ1HRSststeKgLlTdco9bawGK/uaKbVLkD3t2NLhZ4E86WDgPEBW7mi5zi09S/PzLqRa5e+GnGSbwzuUBxOCkhe2GPbnk5CgrvRfWFQFp6z09TI9NJprYu6v+ZneitF3ixX/LaIl7h2Q2xoZRPeGkGYMjyn0ovuDMkEeHyiBRTZZ/7pO7xd1jy0T8HqqHPy5bhDMifvyMBB4IR+VXdcTpvu7lveW8AB68xIt8FmN97c1uPPgNg711p1HgqinUNfOOo6UyBABaJHgjCZHT60r1n5WmNmFvoWaXoG5ex97o2PWErlymsgEZB5JpZFdy8o346QICB+qwESu/Y+MAcvnZDIrvVoTN+FFwTNZY2v9Y1/45FEag4cbsXUhjAi9AvYzlr1dngN8wsovVzZ/6Kq0vajolUqlVJEILdPTe8YSgCnjUQWo7kxJlj0lWJLMc7J206f7rulx9T3kFpxdyYvyklH10qweS5GNdpsFMSYfF7J2+t8h9OiiyYKJKiQdNXMolGzHjpmjcI7xc4BAC08TcDGGmOBsDoMg2HmzuqnYclBzvqdcwMLVOOzl9/EtdkeyOP/rdtKC8+CGIvt60WpQjDGJOOdNom+RmMuBZSu+L6MMKYVAQIQxjZpj1jktuzfOBI/2hxVxXQO3NOr7WRydu0DNqAueSaDJs+BXzKSeM2srU8c3Wws8LhoQo563bPPbQu/3YJzl3lneq2SvvZtWgFfdn3QjAORibDYgAXdgdLdEqvwgsLX1Cc2WWrBLUCXQyEy/SPxnCUvhKbpVelCztilfyiK4BRNvFew== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: t+dRBiyBM8Q870hwtlLyjXueWRR7o8NK9Vuj3Hr6BQ2vyUojWLfxVAnUvXnugNIJUGNrEkga8prodaFdNtu9M/qKpweDqeY8M9VZ3bwdJ72WKMbf+hML04CXRY3BdoqItAxbTQqIuILLybFmcJrhWATkM7MZiOHvJkUAQoXyJHGJA/iNLRsign7ABzsMlXQtRoYWYe2iRsbDS3HXoXcm0W5lXGs5keWLOrkUkPF1QSYSvXzuuLCSM0jbMeFDCGifZ2Il/xa/+kbHg4tdctdZyj70xvxlgfsgELDSAxw5K6gE+4gnW6qzv0493gMUoxH7XXsPGEZpucHG1OINIiHFGJXEJ87yESDwpWkRHApf2WP7aD6D4xVNuWunCM3wbU3oMGsCEwuvYc7JCIdEla3lDkH0VHD8MdcP7+SH4CGc52/kOwssqWNexUFrrShqEMla8DD3OlJ+6SFjM00+4VsQt6PqROvbznND7z/OQe5/LEPizpU9ZGjxJ0/DRwYOhkCWrAy7qZURdCG5rjvFHvoVQHEF9bDpLSE64G3nNyB3DK5Y9QqUuNsG1pQCr8vRjKQPub1nmxJp8VCVJFvufHgjCCXnqOq/goJWZO04zirTcrQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf3fd167-6a40-4b0c-1e11-08dd7b06e7f0 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 03:46:14.8770 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bU4gXNVzG/GowSFa7H1OFHyXbgeuIP9Eghq7rrdFPHYJS3fLdcakeuneCMGESPRQTDEpZjezCeSJyIRvGJNs9+yY2SR0w06Zz5Kp5zcg5d4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PPFDB583D803 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-14_01,2025-04-10_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxscore=0 phishscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2504140026 X-Proofpoint-ORIG-GUID: RudJO8jlJ9QWLlvv5h5ga7DrfUtBWKCO X-Proofpoint-GUID: RudJO8jlJ9QWLlvv5h5ga7DrfUtBWKCO X-Stat-Signature: sd6uypobhhrpm9hha6yfozrqouuy7j9p X-Rspam-User: X-Rspamd-Queue-Id: C3AC4A0005 X-Rspamd-Server: rspam08 X-HE-Tag: 1744602402-642667 X-HE-Meta: U2FsdGVkX18Cv5mx5aWXBu9hlFLxqjc64k6KqBkV09TnbN8TDTiZzgEdbTK7GAhq4ZTguCoV0bB2goLDQys5QqR4cjYLJ8rk03cua6Se53xx36NCRLDGmirOKOa5U4EJYCfAk+i77X5TCZ0BboQDX60wjXnLhoDnjScyTZUoOCzhhrOufutBE8u1Fal+NIXw0R4hi4eAV40EHafv235a9QeRRMCWHo2FP8DCWjq1DHiekMrGZdzmX81AxmEfRpH3hcsFtAB9T1hleDnhjgNd5JF2LGRYwy7MgKhzv25taexfNT4KviiBBbp6rc+XlL8eyohQtjJ0NdSWrgLzFA17AoCa/VhGTjW6ocfEZ+eUByc7hogV5r3YYksR61TNge9kG2NtRVW/JvPFMORMyE5gd6NrcMv0zoqRfqa97UbNiXLk63+PJU0+wmfkZgQaeEKaLFCSk4EpqhkErSg6SuGIg/jmRb2zxvxt27uTBM9ebbKM2bOX1YOEaBsaW9davNUHXCD0ZhzQSQHUtYqFaF9hb2MmSCz5uiuJ5YQ258gX+mE1oMtnClhRJ1b0X1HP+VDNaZgX2RM3ORwAeBwRcr6vwK0mLUtF/qIYG9BpuiaWwHh8j9Z+7t/U2/eylDGc94L1EG9NrcQK+IYHAhWkttI/l1DffnFmKuZl2gGb66nXo3HjyuZz4ZfoigwwCJ6GrXYvTyIXaxlaZxgun2Qsi1v6SREk03mX5upl1NRjr+4PtoV1X2WZaXwwmUpFU550WVrRND23GAcxpUJ5QV0qS6EhZ3WI1W1nUE02mMl13Ip2356isGpST3mQKx75T7VlGwyKVKMagb95dMkJmhy1BFwF/vTgv4Y9sV8MBCVN4Fp0J+r65cFmL38jhqXeAKFuQfY0cdKXKzap5FuFRt/RJE4nXptsvcSQKwh+5bojwvKmtonf/YNxo8/3h0Hw/+fBFSsor05GuB1k6KlHRmRhvcB Ijqo/KHQ PKsBHReMv5mgulLbVWMe31AWvCTSqgdOn2aW2ib7GQpcaHam61sAM/rd6zlCOKhgmmg4YgXNkdyYCoOjWPI6DEnQ9u5OCWHQj4LZrrMIt8GqLBy0QDGJYBnk+ujlhOzbN06Nx8c8wSg7XXaIkEqCZbBaade7b5TCLXZhrMMsB/VEFQD5NmC5pGLSPNjegsNKMbI84yp3wRMFizf4qj18QtfTnGaw98kXjSJ9NKF6z+yFOCDHhDLScyvSlEm/WhRJn9s/yDhaqGeHhsbDJu3VLjqgdxJmDBOqSF2VM7R5AQclhqx3Ht5qYPFORN/L0VexX9JgOOHzWWf0A1aomBAtwx+2qGR1np1WsIf9sG+mG+iRtZYNdVwm9wABzQK01mk8cPMnhwwTYVPX6PR0hIZyVeMB9QzWBCEPGCQdNqyXt5cSAfeu4tlXiP9Vi0TWColcZWaDClmQafQZV40NcpZ9YvOpP7wVUoZ3k2rtNMF/Ee1S5ppix3dBVPSEGj1BlzUopbnCKWDuXLMJOqLnttq9U7XCyyXJhtb43uYBr/sJGF9Ft0RKYOSwHGET8kHvlr9ZHYNn1j5YaCSDYN9Sa6IkKHqNKC4wR3AmGei2VjVqq+vfTao5pzqsmxqlTtliqIt4eUZGoU/kLw85GKeEUhDTjuugfa2LYrA5nQkB1Za4XgQSMvsv+sSnBkqUvB11WqTivjPIHpB4jvENa1u81/Pi5Skc2BKQTX7R4qhl3 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: folio_zero_user() is constrained to operate in a page-at-a-time fashion because it needs to handle the CONFIG_HIGHMEM case. Additionally, cooperative preemption models (none, voluntary) need regular invocations of cond_resched() which limits the chunk size when zeroing. Move the page-at-a-time handling to __folio_zero_user(). And allow an architecture specific override. Note that when running under CONFIG_PREEMPT_DYNAMIC, we could switch between cooperative and preemptible models at runtime, falling back to __folio_zero_user() in the first case. Suggested-by: Linus Torvalds Signed-off-by: Ankur Arora --- mm/memory.c | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 2d8c265fc7d6..ac6a19d7bdf4 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -7235,6 +7235,32 @@ static int clear_subpage(unsigned long addr, int idx, void *arg) return 0; } +/* + * __folio_zero_user - page-at-a-time zeroing. + * + * Handle cases where we have nothing better available. This could be + * for a few reasons: + * + * - the architecture does not support multi-page zeroing (no override + * for folio_zero_user_preemptible()): because there might be no + * optimized zeroing primitive, or because CONFIG_HIGHMEM is supported. + * + * - !preempt_model_preemptible(): need to call cond_resched() + * periodically to provide reasonable latency. + */ +static void __folio_zero_user(struct folio *folio, unsigned long addr_hint) +{ + unsigned int nr_pages = folio_nr_pages(folio); + + if (unlikely(nr_pages > MAX_ORDER_NR_PAGES)) + clear_gigantic_page(folio, addr_hint, nr_pages); + else + process_huge_page(addr_hint, nr_pages, clear_subpage, folio); +} + +void __weak folio_zero_user_preemptible(struct folio *, unsigned long) + __alias(__folio_zero_user); + /** * folio_zero_user - Zero a folio which will be mapped to userspace. * @folio: The folio to zero. @@ -7242,12 +7268,14 @@ static int clear_subpage(unsigned long addr, int idx, void *arg) */ void folio_zero_user(struct folio *folio, unsigned long addr_hint) { - unsigned int nr_pages = folio_nr_pages(folio); - - if (unlikely(nr_pages > MAX_ORDER_NR_PAGES)) - clear_gigantic_page(folio, addr_hint, nr_pages); + /* + * Use the arch optimized version if we are preemptible and can + * do zeroing of extended extents without worrying about latency. + */ + if (preempt_model_preemptible()) + folio_zero_user_preemptible(folio, addr_hint); else - process_huge_page(addr_hint, nr_pages, clear_subpage, folio); + __folio_zero_user(folio, addr_hint); } static int copy_user_gigantic_page(struct folio *dst, struct folio *src,