From mboxrd@z Thu Jan 1 00:00:00 1970 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 AF299C5B552 for ; Mon, 9 Jun 2025 15:33:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4452C6B0092; Mon, 9 Jun 2025 11:33:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 41D506B0098; Mon, 9 Jun 2025 11:33:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2E5436B0099; Mon, 9 Jun 2025 11:33:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 048626B0092 for ; Mon, 9 Jun 2025 11:33:32 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 8DCD780729 for ; Mon, 9 Jun 2025 15:33:32 +0000 (UTC) X-FDA: 83536256664.08.09A9D40 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf06.hostedemail.com (Postfix) with ESMTP id F3DC4180006 for ; Mon, 9 Jun 2025 15:33:28 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=cFgoG8zP; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dMtuj0am; spf=pass (imf06.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749483209; 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=5kEHp3+MlgJvAEJDJ88Lz4d8t2hX0ZsCl02aWq6+37A=; b=FkeX7JqH3hc7FjpvfI+LzEuu6STOrK7Abbly5kL5v4WWwEF9l6zMQTeifhv5F5FdjKTykx 44bbbIWEainXYUK6gOTUpuvMpKVJamp1MOuuxXDrLp9iI6AJcKoocVaWGc/zyJ1ChFEXsJ yMfjX+Dv9JoI3fkdM0C5zM6WX3EvrUE= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=cFgoG8zP; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dMtuj0am; spf=pass (imf06.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1749483209; a=rsa-sha256; cv=pass; b=QJ1TlAvFq6Ozc8tX5vaU9RdiAFjitoaxecjjHOtf/7e2BntcKn86hWdS8xuj/JJ97q9byY Phr1zNZJuObo+uJC+9j77zOXKfeDWXBtBzruHx0y/GqteYVt3bqcDcQ70P0gcsy0S5vH/B IObvnch3jGM9kdpXHhuCTU5FZY7xfbc= Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5593huC0000640; Mon, 9 Jun 2025 15:33:24 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-2025-04-25; bh=5kEHp3+MlgJvAEJDJ88Lz4d8t2hX0ZsCl02aWq6+37A=; b= cFgoG8zPOP8c5+USbBd0TVc3ZyxQyFqFvB+w+hv4c6M7Zf34BSEv9yXk9STgJhgb 83yOQyTTKAfVB8FfmCO62ABs+SDsCrY2F8nLl4kmDeC8KXwJ46IXDYVYRj2Y7kso VKbrm94zTrU2JUj1ksNzb66eb0NTHbkv9So+wh+M4tveWqVJW3/7GXLd38zQ6AQh 6bNEJSfDNYZW5iL9v7h/3xAzpb/FWLpLfF7zy5/j9ciIz824xSf5bgfYaAbsMnTP Jj2xUr5DcE/ho4hlpM1fGTXzolEHwmKvN9vbVvxmFHCojS9WyjSUEDqSiuLJp4z0 eSfmjYiAUtM4H6um4CaklA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 474d1v2db1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Jun 2025 15:33:24 +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 559FAYWH020255; Mon, 9 Jun 2025 15:33:23 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012001.outbound.protection.outlook.com [40.107.200.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 474bvdtxcf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Jun 2025 15:33:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gTjBq+VKS/86sanndfM7xa2+sjEqmg2u3KwyQJeXprXxUzcNkG1wZA+PrenIeyRktMsxVfEEB0UVxj+SnjQCgOn4Qu0742Whsf77V5CcoMyh87fJYlF+Otc3RLz1B2pUngkO+dwSbrbNMjtuKjIa69CsNf5H+gNX43XvKKqr+UOtOppVx1Nq/3p002ux+34a2ucI2xXSZx+w6TEGmPDJSetPtJRWpSxDDmhPICmbwEF/4KIvN9XfHKR4fZ8/1wo32arbV1MGAz32EljCPhh3QQ2kgLlQq7D2XhM6QEZ+fEfZx7mle663lkfhqjksKqRGpAG3RyI3YLRHdydmPwn36A== 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=5kEHp3+MlgJvAEJDJ88Lz4d8t2hX0ZsCl02aWq6+37A=; b=ZYZmOf+WoAmcBb1+Gpk9yE2KLmpkx13tBpgYGr3toD+fG65RX9sE7pKbKFd3b9FcO8tCjkN6jFZRVH23f8rKD0FU4l/y86LokWMkP02WvqFEn1QDKc47xvDmmJB2YP8eFb76rtwIIDtT5oQ/jV6boNNU8X66w8OxZXkR5GmJdPD3P4X/nh84IImXzOHoztION9DDu1IoChnf1niVEkS3XaId643UNsEJYwJjOZ+7YJvk+foQJdBiqXBkpIrWgsjlf9LKB8CfY8ILh0oZv9hZyQ4Q9/CwXpbEusQ0l6Tx5NOsRmpwM7jCLhtfMl1Ps+G0RYon9TqQWKHaV4lIp/Lsfg== 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=5kEHp3+MlgJvAEJDJ88Lz4d8t2hX0ZsCl02aWq6+37A=; b=dMtuj0amz99/jYpcjkD2Q9BfG/rvQ33rOLNtETDW2gbr4td4u3NDRmfKH3u/GoOGfa6LRt0r7cVLHLjcQpCj8HDCEj7hAQ/jWijoMDo1+2ujmatFxMO1XWkd9Km11lJ8aRRukts/NXyBc4gX5PcZic4wm6DQAFN/W2vu78AmGW8= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6278.namprd10.prod.outlook.com (2603:10b6:8:b8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8813.21; Mon, 9 Jun 2025 15:33:03 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%4]) with mapi id 15.20.8813.024; Mon, 9 Jun 2025 15:33:03 +0000 Date: Mon, 9 Jun 2025 16:33:01 +0100 From: Lorenzo Stoakes To: Baolin Wang Cc: akpm@linux-foundation.org, hughd@google.com, david@redhat.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, ziy@nvidia.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/2] mm: shmem: disallow hugepages if the system-wide shmem THP sysfs settings are disabled Message-ID: <86bf2dcd-4be9-4fd9-98cc-da55aea52be0@lucifer.local> References: <39d7617a6142c6091f233357171c5793e0992d36.1749109709.git.baolin.wang@linux.alibaba.com> <5578735d-a06c-4a50-9ca1-c141092f2b3a@linux.alibaba.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5578735d-a06c-4a50-9ca1-c141092f2b3a@linux.alibaba.com> X-ClientProxiedBy: LO2P265CA0140.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9f::32) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL4PR10MB8229:EE_|DM4PR10MB6278:EE_ X-MS-Office365-Filtering-Correlation-Id: fe1774cf-5713-4920-6cb2-08dda76aec89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Rm5JaHBTZ2g4OHFhbVVjVDJHbEYrTEcrVWpqZEJGdlZWVm9iWStkTCtuV3N6?= =?utf-8?B?L0J5SEQrejRFbW1jMVZyNi8rb2NkOUdNSFF2eVpRSUREQkV4L1B4cEluQ0NU?= =?utf-8?B?R0g5TzdqSmZuRmpINUhSaDFxR3ZEYVZxVi84RmRPZFZ0V3FCMEN6R3kzMVJq?= =?utf-8?B?bUtFV0xrRWRYQTgybHF4ajdteWw5VG1XU2NOZElQTGJTeHVSZStrVEFBcjV3?= =?utf-8?B?eDQ5ZWQ4ZHlkTEx1UVJ4NEtuVEErQ0ZVbS90MFRQL3JLN0FkQjBPZEJzMDJm?= =?utf-8?B?aENvbGE4Qnh5YTF0NFg0ZUhoaStPOGRZazA3Z01QYUVsRFJpUmM0RWJSOWZu?= =?utf-8?B?bXEvWm5aK09FUE5MRXRDcHRnM0dDT2R6a2R1Vy9UMlQ4Y1FtWGdiOG5Ed0xn?= =?utf-8?B?aUttMzZDelhCWVZMQzVVY3RiRUJIdnY2clBCZzZuT2NrWWQzWkN2YmN3QitB?= =?utf-8?B?cnpWUER4OVV6a1o3WnJpWWhVY3F5WTIzUTVtNzZycWN4dFJTcWtDSEQrTEV1?= =?utf-8?B?WjdkMFBtaFRVN0pFL2J4SktMRkFqMGhEdmxLcEJwRTdhWUpyM25tQWtFa2ww?= =?utf-8?B?dFJvSENGMTd1TGxXME5TUmtRNjJvWlFjMzc4S3huaHh4MzZFRWpGdzhiYlcw?= =?utf-8?B?YmI1R1UwVGkwcFhsYzJmWVFRdi9CaFNjcXdOL2c0c1VnVUs5OXluMW1tYS9q?= =?utf-8?B?NVNpLzZLeVRRQUdtcXdhdkoyWlNwZjFnVWlYb1VuWTZFQUt5QkJuY3JSRU9v?= =?utf-8?B?S1VpT29tWkNRcWdjRkJPQzhRMVJnQy80ZzF0Y1VnZVd1Nm5nWi93YjdCM1U5?= =?utf-8?B?TWhFSXBiQVZPY2hXWVl6THJoQzd3aFFJNStKTUhzcVBNVnNpRUU1SHpzR3Q5?= =?utf-8?B?MkVIUW1CODRUSEJROFROU0dhOGs0VEhBVyttNmt5d2tyOTZwQ0hwMFdNbENK?= =?utf-8?B?aHVaWTdpNHQrbFNSRzd2U1NUN3FOTjdVUXNJM25GOHdHdUZaOStTNXFCL1F4?= =?utf-8?B?UEJkSU5QRmNvRFdZakxyYmhjKy9NdWdKU3Q1OVZsbVRqbS95Rk9KZk5UWGVn?= =?utf-8?B?Zk9DWjA5Vjl3NmY0b0NnRkVObzczbWFZZzNqcy8zR1RtZm4rMkpDSVN0bU1X?= =?utf-8?B?K08xMWJhQlo3NlZhdUhOSHRHVkROWlg5d0w5MDhrNW84UTdCN2NQSEY3OFBB?= =?utf-8?B?ZGhvTThOTjRhQnF0NGlLQVBaTXQ4NTdHc2NKTlRCd3o5Y1VZcE16RUVvR0hN?= =?utf-8?B?dXp1OUM4V3ZLOWhySFY5bnNvUHZBcWZXalF3T1ZQVzZOSXE0SkJvMFVjVXd2?= =?utf-8?B?R0tCVWgzUGxNcVpsK1M0RUE0aU40ZzFZSTlkMURwWHJJazdSWjhpcjdyY2t0?= =?utf-8?B?T25SQ0ZhalRLV2FtcDNqL2s1UjlQRmE3UmYzM1krcnJsTlJyQ0RZWkYydWZV?= =?utf-8?B?bHRQTUIrK2JJRmFoaVBNdmFEYVdGQUQwNm40RmgxWURPS2pNckhJYVlZRkNj?= =?utf-8?B?ZUlWWStHeTR0UWxaUVByZ3d2TEVod201dUJ4NGVGS2o1ZEFkeFlZUXlEdEhi?= =?utf-8?B?YTV4Z3VaQTFjc3NqbkxRTm9KZWtDRXE4cXk4c3R4eFpGWUtZZTBhWW1WaHlJ?= =?utf-8?B?SWs4eUEzdHFWZGpEajBuU1F0d1pObXBLOVJCV0ZvcHUrMC9OMndRY2w4SmR0?= =?utf-8?B?SEZ2eTVha0lnaGZKczViOUpoNFQ3d0k3QkxrdU5oQUpBb0NSOW9MM2hlSEJZ?= =?utf-8?B?Rnd5L1hxdzdUUmtVSmx0dkQ3Mkt5Yk1sc1hMSmFaWEVOMW1YdlRDbnpPWjdN?= =?utf-8?B?VGVlSGZ6RE5lbmhvNFZ1WTlpcGUyRVNzTW9wWElEMGZMZ1poL2tiYnU4UU5r?= =?utf-8?B?amhkZ0NmRFNTSlN3Y2FXeXM1NjJTQjkrWXpmblIxL3ZjTTdqTDhzK2lxQmQz?= =?utf-8?Q?jcEK7e4C/w4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?azFTZ1UzcENiUE5kbmliemQvT1I4SDY0d0FIQys2NGVOaFA1Y0drdk51MEVL?= =?utf-8?B?THI3dWcybDFiaTVhaCtDeEJQKzNEUElxRWMzQUsyZmRvcnkzenU4NFdzN290?= =?utf-8?B?N2ZacXNlVjl4RHBkcHg3Rlg1RmlKTWRrNzQrZEtqdWliOUFDR1U0OEZ0eWNj?= =?utf-8?B?b1pJcjloSjI0MTk3Q1MwbCtQZ0ZOV05wOG1kR3hDdHRwdDJPRjZWWS9RM3Fh?= =?utf-8?B?Ny9SejdDbkpwMnZQTUkzbHc4d3VxZ3hySjNHYWpFa04wVUJsZlZDYmxuNXlX?= =?utf-8?B?MWttV0xSZEg3Q0F5Sk8vaTVQREVsOW1MV1NFdXhRcXdld1R1c1U0eVpIUkZZ?= =?utf-8?B?QlI1cjdZcmN3U2xiZ3ZXNGdqdThvYUJ1cVh1MXdjdkN2UzFiVVpRb0dzWWJa?= =?utf-8?B?ejRuVml6a1pJMUgxYzFXYmxNU05LbE8va1ZPYXZwa2kxNDdVK29KaG9GSFFN?= =?utf-8?B?cVZ4QkJBcDk2UVVyUHlrZUk1eVBZSFFESUtCUVpZOEN2Wmw4c3lGTEJIT2J3?= =?utf-8?B?TDJLL2Rob1gydE55bytMclFrQko1NTgrUDlXdWkwMWdkSHVNNzdIVVV2amQ5?= =?utf-8?B?TUxNNzJnc0hVNm5vMExCRk8yQ3FkdkhabjVOa3pjZ2dOdjlIUWhTaTg2ZnVO?= =?utf-8?B?cWs5NHdSa2hOOE1OWjFlbzYvd3IwTlU4YWNlSGpPYjRFY1F6YS83NnMrVlht?= =?utf-8?B?MnFTQ1ozVS9pQyt3UjQ2SWVJOVJGRStUWitaSjlvUkM5VE5NdytjMlZTUVFz?= =?utf-8?B?TGw3NHNGdlJjZWxMZ0tRSkxCVFlMQldYaGNwSlhxZncxVTl1TTNtSDlqVjdC?= =?utf-8?B?Qlg2amYwMTU1enVFL1RJWHRTbzJWek1jamk4TWthUFNDa0o5L3g0ZkhSNEpt?= =?utf-8?B?UVNNbGZyVkN0SUJadVFySW0yWHpCS2dyNU00T0JIREcrdFY5ZUR5RzdCcWpT?= =?utf-8?B?R09qVDJUZkM5cmcxUUNTUjFUYmNGWWNicHZrRmlzdGJEdVlUZ3E3Ym9BdEkz?= =?utf-8?B?VFpiZ1VDWTRNTXltVlc3RWJaeFJOeW5QbmQyY0ttWlZSVEoya2lidEo0aERO?= =?utf-8?B?Rml4V2tpSHRSUjUxRlJScUUxRC9ZZkxwMmUwTVptaFZLMG0wNm5SWG9kSUhx?= =?utf-8?B?U3NpMWF2U2hxb0tlejQzRHJ2VjlTWW9rUW9QbFZmTUpEMkswNFByNmpySzEv?= =?utf-8?B?ME03eDFCTjg2SUI3emVNVmlaSnVvWWk0NEdHZVFsSTJzT24yRHV3ZWJCTUcr?= =?utf-8?B?T2p3VkorT1RDMURldDRUM0RacGt6MEJybmNadHREaHRHeXhhMndKWGlldjZR?= =?utf-8?B?OVl1VU5RQ042VlJXS3Z5cjI5OTJyRTFQY2hZRUxWU1hTaUFWVzRzeVhxa0Zz?= =?utf-8?B?R25GaXJuUDhJdlIreU04dmVVYUJUOHR3ZGs3Z3N5cFM3RXhHWVlmMGRaMHNv?= =?utf-8?B?R3NLa0k4Yld6SVlPZGJEWXJoR3NjVjYyeVNuS0QwVEpmOUlpRmNlR0VrMGUv?= =?utf-8?B?ai90Ymd4VU9oOXRaMk5lQlJVcEEyUVFSZGlWMktHeXJXU2t6K2NBTHhNZVZO?= =?utf-8?B?bG1GSTQ5ZjUwRDA1WUErRUdScE9FRk9EV0FvT1FBMHYzb1I0cDNlVjlvR2sz?= =?utf-8?B?QnlQNDBWTTNzRk1iT04vaDJEVW0yWXlSMVAxMTFYNysvaXFxZVhzVlBTRlZu?= =?utf-8?B?VFBGaFllcnBIOVdyQlBBeDJNblVtQ0ZyUXRBNWJrWXdlNm1iUDFLK2EzRUZL?= =?utf-8?B?aVpOOFdkVWxBMGZVc0ZmTkZ6dnUwUHdHckFFUFpwVThFNFJBVDg5WGhhZHBH?= =?utf-8?B?NXVOQ0R5aG12RFQ4aVVyR0cwZU1EVU9FTUJvM3BjWXFCdVJZVXNRRnVPZmR3?= =?utf-8?B?KzVwMHY2Tllmc0ZqNmtiSTRrbXRmQ2xmZHA0dTV6TDBzSnBrZHIxb3UrQnhN?= =?utf-8?B?RVg0MU1LeDJ3YVMxRW9LVWxJUzV6d2lCMXhGcFNLcTFweGZtcWhlMWVsL21U?= =?utf-8?B?cnJJRm5OMWwwLys4S3JQQ0F4MDZvSzY5dEVNZzlNd3hPV3lmN0pXN21lamtZ?= =?utf-8?B?ZGhXWjFuNi9KeVEvdWIzQVNsNmdMZUY5b2ZvTVVOeGZtNC94NWhqWlR4bU5o?= =?utf-8?B?d3NuL3hGN2JnL2RYNmZwODhyZFNjUTZpeVhVcVFsenB3b1hpb3l6aTF0QXZl?= =?utf-8?B?ZHc9PQ==?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 92IQfPuysPVAq8k9f4MFbbEJr82YzbTFC2zfh8cda1zwWmGiSR96sMvRcXZEZQ7p0CBru6wvJdUxJbUEc9nj2Z36iBlqramYa08k6IeUHQd2K4EzP3SnmQcn4UbHjSBfIOTbgGodmCIY6+EHbclz82WS/CXUP0qlbL5KD2KUZ67DaxMULAgpy5GX6s4PJPI5mtv/G0eP4DcYS0W4S9ZpEKeMDe+fWEjvrIY7gBflHiIdU1H81xNE6kIemGyDTGtHilyCtyKxVgkiP9Ui/ul8+RLwBgJIt0bpOft6Afsc+ty8TRxYv83/zZbhEv4o/sNqYAyCaSVT5DYrSv9lz2WdFv6oiSmsaK0vpVmZZW3hrGeYNOU+GOo2N/yDqmQDlSxqlaCbbYKbvEMMkM+8FmDHjADOakzxtlz3B4mDk8TbVaX+kS0RfCExWOAz3p++thcr8BsbpzxnZM/f1UORKgAPXc36fdFmTRDIuYnHjAddBZTOjsEAICMtueAEejojJ1BD2u/mn7BOjDHRhwEznML0fqGLKfMEmCzOHXKzBL6HklsOOwTKgFdBw/F+h6PMUTcPNk0L4VuTXBenyd9Hy/1D3tJsJk30mCMFGRsjnVueEiE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe1774cf-5713-4920-6cb2-08dda76aec89 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 15:33:03.3811 (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: yjA+DfV3IPkKaicWrLcSDCrakYHWD98FJfo4vyy5oaJlSbtA15QvRctSzFrvh5XE667TAorBU1/5MIqEwo5SaiiLGVt0Uu1/vBA4tsJHSUw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6278 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-09_06,2025-06-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506090115 X-Proofpoint-GUID: KqC3Dvo9A_oAJ67anaMR8-7q_vePQEHD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjA5MDExNSBTYWx0ZWRfX1xZwfBGD97M3 LlkxZRnZmnoi+rex6ah6jdIpb41fRS0vadmuw2eZ19/lb1QYPTyclzjGX2nCbDxMgOaT9W+qM+6 H3JeiyTV79mqrApMW1aagV7tM73JZaDbR7F0CjoLCdN7KPlJyWKf1gUeB7d7rNKRTRXJR506z2k IXPEU1lrK5mYipNaLdTAgOpLEsb/7v8hlUYUip0J9Na5GKh+yoPqTiUhSnX46j+uev++6l9Vew/ rNoFGWyN2BHqARbK4yKIyoUNY/Gu6pY2QlhWlBTGv9lpMfHPXf3C87hJeLcrpZZbd6krBxbfbnu EHdPPjrzhsnjIgA3gYkwA3DMHs4KGb9NLvCCCuADzMmSNnMDFgUi6ho454+9dkXKg15z/PMgXEM j5/G2wGC4e1WYhSt8xc8Pp8hj5Q18SQt2/ffsarlbR/KcvRLEONnRMVBbGeqm04Uc+NTd/i7 X-Proofpoint-ORIG-GUID: KqC3Dvo9A_oAJ67anaMR8-7q_vePQEHD X-Authority-Analysis: v=2.4 cv=d731yQjE c=1 sm=1 tr=0 ts=6846fec4 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=Ikd4Dj_1AAAA:8 a=SRrdq9N9AAAA:8 a=eE9lFezPz4Z6i3vAhmQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 cc=ntf awl=host:13207 X-Rspamd-Queue-Id: F3DC4180006 X-Stat-Signature: ti4ry1amnichjw181zh68qajqomuhow1 X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1749483208-784032 X-HE-Meta: U2FsdGVkX1/PRBVDt1LCD9dF5jdg5Zs5FcHI4cPAiNeD+RS7LoRN0qe1mEmyScBBMBDsIesLjIQvIS9KFt8cpx6SRrGda19/uZ0U2HTj+Ig0v5eP9iEK3JFjPmsrN+1s95gr7eonC4mzx1zTLLRsD2ZYGUrPo/uw+6Dpvma3i42kAjs1MFaXYliBmLDJOFT4ASQvbXUxiLwirh6fqh0v79RP39vfwtwt8bCG5MQMrJPzIggmxlBYZTu9nsWaL8RrTavOLFNqxizWbE8IKyANVTqW0dp4dT7j3xKK1GAAH2aFEKWjPKWG3xPoTZLigbIF3gx4SY6yZWdYdlIKlW+nmLZmBkzSoAtClsq/y7yssxKdEftAqpZgWh9SSffjtrjcxxGcaOvVWn2Th9XbWBWjD61wXRQEa61Qqs6f6bbneJOWqtAIv+Ny8rJQwK4oexl9RTKJFLkICtXlgBtZ0ikhxpQ1mi/FsU7zB8aJPRisFQVZy3VIbYF6S1aZLqA0cbR2JPazjgAbtq1FSu8O1oe/4iVrTNcARuh5ugjAuk92SD7wD3mkG7pUy6YpI9F53Qkbq3VzGXcqwAJnziblDHOImO9oBdPbeXE3YMMgEOv3thMW8ZNGKKOeCFw/4aUqWs0c0/16snbCNqk0OblUQ20KU7CewFcZWQX1QC9Lud3F4CMfrMhQLPmItQTQUqGnfgEVQAcMpcBdiw0iCf1pWmb9LLT8GAdwDTEJ5uB5qE6OszF1+dywsEAtP+gm9tw4ZW4CWFnUMdGD9ksBg2YH+j/pfWUyw9sZ1QbLlOVyghlQtLm2vwICqBrbKSCsuy8aXj5azxaTqmu+9xCzJWb4UvcflegvYU+MNv6In4TQZjdnkszwbJg/s2h/vL0N2q7IqR9X0ixTGm664sbK+tBYYm6TqqIq9tMoQRFpVZzVqQT4xs2YRbjR7FXy3nPoEffmNd2be+E7hyPWZJCzevCDaps 8bSOf7Xs SISYYn4plBU5CpoEv+/gfoG1+18vjcBh/bw8/FZmLrrfLAr9J2Y3rB8DNU2sbdkghG/LTHSfABQe2UFBDVoCt42uGYgL9hOZMIp3HU120Ko6aBDugVKlfdkGLc1wZsCSjjT66iWvZZwO6QDeEKSf8/orp8BaggAZJr6kKhoOzzz+PWQsVcTluI6CH+PsNSzBucH6KSlxet9DhLS8rmhgpXAuzcLCFYrduUtbziIHyrjireD/CuljNzNlBM1U01WKIAu5X6cYbIyw0SXJGQvko5PEcxA/GQp0scQYdPNa22qTR+jT9Sx275EObi1RFI6RMdzJuhVGTyVUHIH1lAj529iTt5otBkxeLN7ctYxy/xqQKOgdB4V3Q41t9KPMH6l3l3GFHkH3lXIXcdVw8MEuubSi5TDayM9nECOTM6LtxJv/CqUIc+xuxQccermq4JFs/pQbDnTZnBXSn2TCV1OH95kzgvw8MpApahZTssDOgEbORdQ4vkvyKsz4k8j4t8fVjebZ1z+0HPka3MMIMe5PwIcKpVoj+57CraUmlW6gxD85HvH4kRLESdRFEi3LxZqVIFlXE+LtL8P7i9R5M1stdlNoO6jlcvU7wDLk0YYt3cLY7uhy9zQh5XmACOhignIzXlIaJ64dHkQa+o8rZ2/1aS07CCb2nKiOjfooA7EpjAD3NzBTLHsEz5VHUcBGCAHM5VX4uK9v+tmcknvfFj8CouUwsCJIGoVRSrNpHtWw/GT0G3WcKRjc5ZUqW9g== 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: OK overall the logic looks good now I realise the mistake I made is that the thp_vma_allowable_orders() check is for the vma_is_anonymous() case only. On Mon, Jun 09, 2025 at 02:31:46PM +0800, Baolin Wang wrote: > > > On 2025/6/7 20:14, Lorenzo Stoakes wrote: > > On Thu, Jun 05, 2025 at 04:00:59PM +0800, Baolin Wang wrote: > > > The MADV_COLLAPSE will ignore the system-wide shmem THP sysfs settings, which > > > means that even though we have disabled the shmem THP configuration, MADV_COLLAPSE > > > will still attempt to collapse into a shmem THP. This violates the rule we have > > > agreed upon: never means never. > > > > Ugh that we have separate shmem logic. And split between huge_memory.c and > > shmem.c too :)) Again, not your fault, just a general moan about existing > > stuff :P > > > > > > > > Another rule for madvise, referring to David's suggestion: “allowing for collapsing > > > in a VM without VM_HUGEPAGE in the "madvise" mode would be fine". > > > > Hm I'm not sure if this is enforced is it? I may have missed something here > > however. > > > > > > > > Then the current strategy is: > > > > > > For shmem, if none of always, madvise, within_size, and inherit have enabled > > > PMD-sized THP, then MADV_COLLAPSE will be prohibited from collapsing PMD-sized THP. > > > > Again, is this just MADV_COLLAPSE? Surely this is a general change? > > > > We should be clear that we are not explicitly limiting ourselves to > > MADV_COLLAPSE here. > > > > You shoudl clearly indicate that the MADV_COLLAPSE case DOESN'T set > > TVA_ENFORCE_SYSFS and that's the key difference here. > > Sure. > Thanks! > > > For tmpfs, if the mount option is set with the 'huge=never' parameter, then > > > MADV_COLLAPSE will be prohibited from collapsing PMD-sized THP. > > > > > > Acked-by: Zi Yan > > > Signed-off-by: Baolin Wang > > > --- > > > mm/huge_memory.c | 2 +- > > > mm/shmem.c | 6 +++--- > > > 2 files changed, 4 insertions(+), 4 deletions(-) > > > > > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > > > index d3e66136e41a..a8cfa37cae72 100644 > > > --- a/mm/huge_memory.c > > > +++ b/mm/huge_memory.c > > > @@ -166,7 +166,7 @@ unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, > > > * own flags. > > > */ > > > if (!in_pf && shmem_file(vma->vm_file)) > > > - return shmem_allowable_huge_orders(file_inode(vma->vm_file), > > > + return orders & shmem_allowable_huge_orders(file_inode(vma->vm_file), > > > vma, vma->vm_pgoff, 0, > > > !enforce_sysfs); > > > > Did you mean to do &&? > > No. It might be worth having a separate fix patch here, because the original > logic is incorrect and needs to perform an '&' operation with ’orders‘. > > This change should be a general change. Ah yeah, I did think that _perhaps_ it could be. I think it would make sense to separate out into another patch albeit very small, just so we can separate your further changes from the fix for this. > > > Also, is this achieving what you want to achieve? Is it necessary? The > > changes in patch 1/2 enforce the global settings and before this code in > > __thp_vma_allowable_orders(): > > > > unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, > > unsigned long vm_flags, > > unsigned long tva_flags, > > unsigned long orders) > > { > > ... (no early exits) ... > > > > orders &= supported_orders; > > if (!orders) > > return 0; > > > > ... > > } > > > > So if orders == 0 due to the changes in thp_vma_allowable_orders(), which > > is the only caller of __thp_vma_allowable_orders() then we _always_ exit > > early here before we get to this shmem_allowable_huge_orders() code. > > Not for this case. Since shmem already supports mTHP, this is to check > whether the 'orders' are enabled in the shmem mTHP configuration. For > example, shmem mTHP might only enable 64K mTHP, which obviously does not > allow PMD-sized THP to collapse. Yeah sorry I get it now thp_vma_allowable_orders() does a vma_is_anonymous() predicate. Doh! :P God what a mess this is (not your fault, pre-existing obviously :P) Yeah le sigh. > > > > diff --git a/mm/shmem.c b/mm/shmem.c > > > index 4b42419ce6b2..9af45d4e27e6 100644 > > > --- a/mm/shmem.c > > > +++ b/mm/shmem.c > > > @@ -625,7 +625,7 @@ static unsigned int shmem_huge_global_enabled(struct inode *inode, pgoff_t index > > > return 0; > > > if (shmem_huge == SHMEM_HUGE_DENY) > > > return 0; > > > - if (shmem_huge_force || shmem_huge == SHMEM_HUGE_FORCE) > > > + if (shmem_huge == SHMEM_HUGE_FORCE) > > > return maybe_pmd_order; OK I get it now, this means the !check sysfs doesn't just get actioned... :) > > > > > > /* > > > @@ -660,7 +660,7 @@ static unsigned int shmem_huge_global_enabled(struct inode *inode, pgoff_t index > > > > > > fallthrough; > > > case SHMEM_HUGE_ADVISE: > > > - if (vm_flags & VM_HUGEPAGE) > > > + if (shmem_huge_force || (vm_flags & VM_HUGEPAGE)) > > > return maybe_pmd_order; > > > fallthrough; > > > default: > > > @@ -1790,7 +1790,7 @@ unsigned long shmem_allowable_huge_orders(struct inode *inode, > > > /* Allow mTHP that will be fully within i_size. */ > > > mask |= shmem_get_orders_within_size(inode, within_size_orders, index, 0); > > > > > > - if (vm_flags & VM_HUGEPAGE) > > > + if (shmem_huge_force || (vm_flags & VM_HUGEPAGE)) > > > mask |= READ_ONCE(huge_shmem_orders_madvise); > > > > I'm also not sure these are necessary: > > > > The only path that can set shmem_huge_force is __thp_vma_allowable_orders() > > -> shmem_allowable_huge_orders() -> shmem_huge_global_enabled() and then > > only if !(tva_flags & TVA_ENFORCE_SYSFS) and as stated above we already > > cover off this case by early exiting __thp_vma_allowable_orders() if orders > > == 0 as established in patch 1/2. > > Not ture. Shmem has its own separate mTHP sysfs setting, which is different > from the mTHP sysfs setting for anonymous pages mentioned earlier. These > checks are in the shmem file. You can check more for shmem mTHP in > Documentation/admin-guide/mm/transhuge.rst :) Ah yeah the issue is if (vma_is_anonymous())... doh! The stack trace is correct though, this is the only place we do it: ~~ static unsigned int shmem_huge_global_enabled(struct inode *inode, pgoff_t index, loff_t write_end, bool shmem_huge_force, struct vm_area_struct *vma, unsigned long vm_flags) Is called from shmem_getattr(): if (shmem_huge_global_enabled(inode, 0, 0, false, NULL, 0)) stat->blksize = HPAGE_PMD_SIZE; Note that smem_huge_force == false here And shmem_allowable_huge_orders(): unsigned long shmem_allowable_huge_orders(struct inode *inode, struct vm_area_struct *vma, pgoff_t index, loff_t write_end, bool shmem_huge_force) global_orders = shmem_huge_global_enabled(inode, index, write_end, shmem_huge_force, vma, vm_flags); Which forwards 'shmem_huge_force'. In shmem_get_folow_gfp(): orders = shmem_allowable_huge_orders(inode, vma, index, write_end, false); Note that shmem_huge_force == false. In __thp_vma_allowable_orders(); unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, unsigned long vm_flags, unsigned long tva_flags, unsigned long orders) { ... bool enforce_sysfs = tva_flags & TVA_ENFORCE_SYSFS; ... if (!in_pf && shmem_file(vma->vm_file)) return shmem_allowable_huge_orders(file_inode(vma->vm_file), vma, vma->vm_pgoff, 0, !enforce_sysfs); So we set shmem_huge_force only if TVA_ENFORCE_SYSFS is not set in tva_flags passed to __thp_vma_allowable_orders() The only caller of __thp_vma_allowable_orders() is thp_vma_allowable_orders(). ~~ But yeah we do need to do shmem things... sorry my mistake.