Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp661729rwe; Fri, 26 Aug 2022 11:48:51 -0700 (PDT) X-Google-Smtp-Source: AA6agR6VIdQEgVE7wyZOoRZb80nlOeLg7EXW+I6XCBUq76sG7ydY+Ssk7A6xcYpwZUc0sYJsqtnd X-Received: by 2002:a17:906:ee8e:b0:730:4a24:f311 with SMTP id wt14-20020a170906ee8e00b007304a24f311mr6472671ejb.420.1661539730741; Fri, 26 Aug 2022 11:48:50 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1661539730; cv=pass; d=google.com; s=arc-20160816; b=gPOtdIJqpIiEi1QHR2RAROlT6js5aDv0Yo/IO3M+TBHJQfDFiW6YuUeiLvPARKb760 SHyra+IHZ7cJg6GnZyiyjTlo/bT5TfoZcSZ6nBIBtTrN9q3AThFnORc3P7yptHCmejSw NaGWIB96S71HBL/VU4qmG43knImuMdvSML4cXkHMz+fMN0O8TnbE20/bjbbEVPqRxQ4P Sc0DN52FljJvUS64JgV3F51GQPoYiPvSQds76GUY7ZVSFlK7ZtebEt9pMmbM7esk0vQ6 WOFJ/9ztJ28sOytZ4mOG18hSYSkSRacC/55yvDRsf+X5XVU9OcpcL1/2VSxmHggu81aS lz1g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-id:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=oiuzCVt+PyuZVqKM1sK/+c//uGBcy8iRc3h564nd1OM=; b=JRp634xi9p5DmFG0KIVCKw2Qm82kk7FvcZZkSALBIqhfrpxE1vmy4CS/cd+97zKVcK N/loABV8zwXYST+rFijYlfJyyHuf/VFTuJ2RqHrYsjuQl7txq3dOxhDCvsy/v0+prdgm 6PSMl2EH/Yjl0MqcgQs3ELWXzl1QyhvwT8mbwSbi6HKbgclHOeqe8EZn0KU7F2teKUDq 26ja38Si339be8LuiCQwp0dU0G9YBBh7U7oNQV1qeE5Hfk9K1mM731ux73+OE5fagrW4 J8vMMmBQnX09iv4vZo/Rv0j+cEXSTDAmTUK/o61wDN3+pvkENIDU7qoKoH8XGAEVk8+K f1kQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=aToYDOfN; arc=pass (i=1 spf=pass spfdomain=fb.com dkim=pass dkdomain=fb.com dmarc=pass fromdomain=fb.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=fb.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k10-20020a50ce4a000000b0043999754363si1887576edj.516.2022.08.26.11.48.25; Fri, 26 Aug 2022 11:48:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=aToYDOfN; arc=pass (i=1 spf=pass spfdomain=fb.com dkim=pass dkdomain=fb.com dmarc=pass fromdomain=fb.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=fb.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345172AbiHZSiT (ORCPT + 99 others); Fri, 26 Aug 2022 14:38:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55966 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345161AbiHZSh7 (ORCPT ); Fri, 26 Aug 2022 14:37:59 -0400 Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B822E7A530 for ; Fri, 26 Aug 2022 11:35:05 -0700 (PDT) Received: from pps.filterd (m0089730.ppops.net [127.0.0.1]) by m0089730.ppops.net (8.17.1.5/8.17.1.5) with ESMTP id 27QIP7TD024845 for ; Fri, 26 Aug 2022 11:34:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-id : content-type : mime-version; s=facebook; bh=oiuzCVt+PyuZVqKM1sK/+c//uGBcy8iRc3h564nd1OM=; b=aToYDOfNWejB9JvP5o7b88jwtq3m153KdWZ5w3nYPynU2oFYaKF1vQ+K38IJNWd1Xm/i UIK1N0dsmqtmW38gdLlU3QJ5J7VWDGXTkE0vmiS11pu0vR8RV0cafzTTu3rkJEYjxnm1 c8Zxb85GEG/mMbnDEkLEGu8SYASz2OmSkfI= Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2046.outbound.protection.outlook.com [104.47.74.46]) by m0089730.ppops.net (PPS) with ESMTPS id 3j6s714181-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 26 Aug 2022 11:34:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dPqm3XSBoLpOYtMPsst9L89kQN6tXHmn/opHmMecPjoL+R8bl8PC6xU2jQXNyyWNrn2hOzsJn7ipfKvYKr5euYc8Wv46IQmCFbRQSXw6WsD9NOjy7414AmT/OTsKdL4Ym+Kb17CsRZCKJTiHQa1oXyvF+x7j+ZUU31zwAhSby3tyWt3IYOnHmtkLZhh1znrfmy5pKhux9vcM4MzX9Mt+ZXVQFb5PmN6fjItVw5cmdjk4YsA7brvMBjnHyP3OnuJjNhc75sLdzLU2Tvsd+btxkV3WD3BSXE27Voaf9FVq8aywz7JEhAdmR6qRDP1z1sJdpmXwuefkrz0Eq2k3lnryKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=oiuzCVt+PyuZVqKM1sK/+c//uGBcy8iRc3h564nd1OM=; b=KMZOHMBgFL5LqSbqZduFNgpGLwwetpyG5TH4u7as3jfCbBS/RkPHfTos4uD8UMjmBeak8SUBTwjrMWCBukynkqQ8UA315yGa2sYEsNNz88UgZS6eNGKeVFLUqP/yIPTj+LkUVbHc5dySqkKSxxzYKdw0lUpTCwjcfHIk7VzTU1qjmXmnoWw2YWMx1JxteiW6kYbjiU6DWZz1wF/vDPyuhIOUlBQSRVUXXC6JohYc9QHUjl0BHQHjtIuIDGSL4c8v9ziAloszpPOejmrp9oCPXhuMIrpY/1PEOICY+QXhVyhunJ5jpMaI+p5QwzLQ7PFkDboVgxP1Yzfz8TejqbBPIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none Received: from CY4PR15MB1781.namprd15.prod.outlook.com (2603:10b6:910:1f::13) by MN2PR15MB3022.namprd15.prod.outlook.com (2603:10b6:208:e9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Fri, 26 Aug 2022 18:34:40 +0000 Received: from CY4PR15MB1781.namprd15.prod.outlook.com ([fe80::351d:e6bc:a9e4:4118]) by CY4PR15MB1781.namprd15.prod.outlook.com ([fe80::351d:e6bc:a9e4:4118%12]) with mapi id 15.20.5525.019; Fri, 26 Aug 2022 18:34:40 +0000 From: "Alex Zhu (Kernel)" To: David Hildenbrand CC: "linux-mm@kvack.org" , Matthew Wilcox , "hannes@cmpxchg.org" , "akpm@linux-foundation.org" , "riel@surriel.com" , Kernel Team , "linux-kernel@vger.kernel.org" Subject: Re: [RFC 2/3] mm: changes to split_huge_page() to free zero filled tail pages Thread-Topic: [RFC 2/3] mm: changes to split_huge_page() to free zero filled tail pages Thread-Index: AQHYuMfP12/URiDwn0CzT9+YyQULcK3A+PIAgACKfoA= Date: Fri, 26 Aug 2022 18:34:40 +0000 Message-ID: <9AF37F8E-27FB-4DF4-B745-36CB87E39D91@fb.com> References: <490fcdd204ae129a2e43614a569a1cf4bdde9196.1661461643.git.alexlzhu@fb.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1748fb14-c34d-474e-c3d5-08da8791a30c x-ms-traffictypediagnostic: MN2PR15MB3022:EE_ x-fb-source: Internal x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QOmlYM9dnRFKTHE7Dfy3pba5MAGJEyNqHgRafTtfrDLSwlCrHTbqeyR2K0vxTSvtPvnvFeoqq2MtKw5YWnfYa+TTgbvLYHD6A9q0z2URS07AIJ4s5WC0gxw3/I1Dni7ZNpvzRQ8iwaTVeQ0mUMm1QmCSrc3/oS5iJZt2waSAd2cTCrw9Az/bnrONWWn7GC4TN791uo9eykLSLwHsDMgh6rppnL7XEfCmPf+LgY0TuHB74aqC424AoqCtzbrR+57dFG1CikVjPZz9TLsC0yHsCtM8coMBvSVT8M1obzIWVtlYGX/+GGEoYzPXox1KqXA4sN4pKJFA+jXT9hRP8446ievDtqH06NpQj+8JqZ5xVtAJDJwKiYN+bjX+9Jb1mckCF3mk4NTngI9utkSljaBzb7XN4o+7pDrfII2XC3dJB/9Xy7JDqvgPdlon+1BY8le+N3VWvqICydi0SNj8uo+T0UV9bY1HNOe3z3a2cdGl4f5RzOeURi3VvSpBuir9t3GYOojQSAcmp2xG5B4qRTvGrXd4KKg2WBcTtU54+RUtBzPnaSsALd2INc05WmHsnsbyZNEoVrpHc13+uFMifNT4qQgb5LGOJDncN/FHg/dgyYTMGXwgzRTazpKi30chfHvu9nzeUIfmzVMCmXiVAsw5dlVG9eHZ22BOIdHHC23Y9/bGh7ICSq76Vnm20GWWYZ7bwvuvTzSAYWcHFvnc/Y5DQ4kNPnYH9TWRwKmAwJCfgN6mduifJwuVaiu0f2gN00I4/k/VyODqI0Vp3CZYlNaT0QXVE57zPiP6s3ydFd3X9SLka0lu7ZwlZwDntAzmZw10sUL9i0AZi/m4VY+a6HoYc/y+8+GJKEkdtkvqtq3mayFDIE83M7HiHIA2Ifa22D/qFEsgaJxOxlhCJhu6gwl3eA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR15MB1781.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(122000001)(38070700005)(66556008)(6506007)(64756008)(8676002)(66476007)(4326008)(76116006)(66446008)(66946007)(6512007)(6486002)(38100700002)(53546011)(41300700001)(478600001)(71200400001)(316002)(966005)(54906003)(6916009)(91956017)(2616005)(83380400001)(186003)(5660300002)(86362001)(8936002)(2906002)(33656002)(36756003)(14583001)(45980500001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?AZmdL9hIJR2I33D8d6PDn+rHM9/btVulBksdtCSsgnBL/mnKRzxwgJ07qovH?= =?us-ascii?Q?UsrBQLRQWtzV6sZ0bN6hjbBCxio7HM4G5PF/gD6yVdQcAO+h6SBYuSdKAGz4?= =?us-ascii?Q?U3ZASH7+0mv42cVrxg5nmpRf3bf+BDUspSLaa5glnq9gQHT/oTAgjODXKEoU?= =?us-ascii?Q?mnhM0yZhdlnIiMmGALr9q/ZJtnTKPkQVxB84ci3tlaxo5/pzOCBqfJgJiqiY?= =?us-ascii?Q?gEaP4yb95NGP1deUmZ20dv1GheFx9qg2gptqjydwQlRauJaI1hKx2NSP/tP6?= =?us-ascii?Q?jbW2Fk1HZEuD0RUfPh7dmsCl5GOPBo+WCTV4QTSHZghdATv8mY2nOUaQv7MC?= =?us-ascii?Q?bY5+QW2B56uVnLETPTi1vWXaFycX/Wfms0b96xUYZG6lzK9bU8P9FeVa5zHO?= =?us-ascii?Q?RNrViFhkb/oq9H18SL/ad4GSWGXSukOfK6a7g6OqFmZrphxGcvnFku6s1rnq?= =?us-ascii?Q?XJP6YN+D7RGPgUzeUpEh6nPRaZh5yq9r1morfdkFFHjHl+GKNh8twHXZ8u1q?= =?us-ascii?Q?sdRFJSbyZft84wkINxxAwqGBAbpHtQuCGIXbhjzmpg3hBJXePks50VgElZwY?= =?us-ascii?Q?a9uwjk/+Lel5aua7juY23cCNXlHOVO4mLAuMyDHqUzu+WXVi0PEFzsqvO7qJ?= =?us-ascii?Q?IhPBFhSybXWcsh4TdqNLtjpmAO+AW6QsQ5Ldyx7lTiYzvQhZC2MyTit2jVvQ?= =?us-ascii?Q?wzP1t393/T2VPJId/U8+kB3r2ciqgVT95AOvVIZCHiTk9jUm7wx84jXbPsEd?= =?us-ascii?Q?DesO21eP64FT9UMbg4jj80MZc4bzYcawgx+f8/1yxWSqm7jGV9/lSrpSbE4g?= =?us-ascii?Q?3gU81PhDQqZocLOnaq5s3KpOEzGtuh9+brVHivxD4yfFoAVnxWwI1RPvNsr0?= =?us-ascii?Q?ezsgArPMWN1D3vaIESx1fTkBXTDxM02gW2wZ1FsDeI3l2IiPs8heB0MsIyNR?= =?us-ascii?Q?raeYPYxmc4fjVHs6QkvSWvIrH5RroGTUphc51XdmuGPje5e5OJh38PzcBafW?= =?us-ascii?Q?UlwYdVylJxrNKEaOgN7eawgpWDEmZ4Hy4QADnj4F6cz/zzhHfklRlZhww7cX?= =?us-ascii?Q?mTt33aXXp0OobdSYLgS5cd/d4PS94r+CL9caGYYHVudny2ZPmAfI8oynUgf1?= =?us-ascii?Q?Mqj7JjPIHcIJ9mhaRccqGMdRs5YzIQeGy953uWd5HIO+4cLQRU4m9HTRsstG?= =?us-ascii?Q?KR5VXGNn7VSJzYOKPicweoxdBSZaVzucBS0Vc6In6TTwcgsy5i0e+i+iHH/2?= =?us-ascii?Q?Q/iB0spWoInee4/nhToxT2iSpjj97ua8rEjvuvTMkrwirNPxFHdePyYoBv4x?= =?us-ascii?Q?IfkuvyJlgEqm903BhmhLzqxTd/clrtqbR7TJ9xeiwkm2SMSjY0kXI6sz7dxy?= =?us-ascii?Q?yLe461E147haJwbJu1aLcwDp05DQTpqnyT6qkZ6GLF0O6cJnYCdKnH+bGT7o?= =?us-ascii?Q?kFY2o8i2H/qRPHrFyktCr+HSEv3HW1qmwhK+qU4OwX46TlJvHSAw25VIIpq9?= =?us-ascii?Q?EIrAQztZuX8T7m70qWTrnEIOFOTQmXzchXHCejzaHlXQcGeHOIY24KZIHIDi?= =?us-ascii?Q?emRo5XgKTEt7s2kXtpUU9AFjYnJ2bd5UvpAoA9U6yorbELf82dv0FHxI8SU+?= =?us-ascii?Q?MgGCJZfjEtN6E53kfd2wXBU=3D?= Content-ID: <0B27765C8F0E954DA3745CE57EC83BDD@namprd15.prod.outlook.com> X-OriginatorOrg: fb.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR15MB1781.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1748fb14-c34d-474e-c3d5-08da8791a30c X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2022 18:34:40.1408 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LedvFSQIzinxi8+ecre/EfgoLNb2O1VzNyZawJB1t7FhxPhWOtyKoSbZxy2IImRY X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR15MB3022 X-Proofpoint-GUID: qIO0X5wgF0jPf104_nleH9LFJwMGJgWk X-Proofpoint-ORIG-GUID: qIO0X5wgF0jPf104_nleH9LFJwMGJgWk Content-Type: text/plain; charset="us-ascii" X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-26_10,2022-08-25_01,2022-06-22_01 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Aug 26, 2022, at 3:18 AM, David Hildenbrand wrote: > > !-------------------------------------------------------------------| > This Message Is From an External Sender > > |-------------------------------------------------------------------! > > On 25.08.22 23:30, alexlzhu@fb.com wrote: >> From: Alexander Zhu >> >> Currently, when /sys/kernel/mm/transparent_hugepage/enabled=always is set >> there are a large number of transparent hugepages that are almost entirely >> zero filled. This is mentioned in a number of previous patchsets >> including: >> https://lore.kernel.org/all/20210731063938.1391602-1-yuzhao@google.com/ >> https://lore.kernel.org/all/ >> 1635422215-99394-1-git-send-email-ningzhang@linux.alibaba.com/ >> >> Currently, split_huge_page() does not have a way to identify zero filled >> pages within the THP. Thus these zero pages get remapped and continue to >> create memory waste. In this patch, we identify and free tail pages that >> are zero filled in split_huge_page(). In this way, we avoid mapping these >> pages back into page table entries and can free up unused memory within >> THPs. This is based off the previously mentioned patchset by Yu Zhao. >> However, we chose to free zero tail pages whenever they are encountered >> instead of only on reclaim or migration. We also add a self test to verify >> the RssAnon value to make sure zero pages are not remapped. >> > > Isn't this to some degree splitting the THP (PMDs->PTEs + dissolve > compound page) and then letting KSM replace the zero-filled page by the > shared zeropage? > > -- > Thanks, > > David / dhildenb AFAICT KSM may or may not replace the zero filled page with the shared zero page depending on whether the VMA is mergeable. Whether or not the VMA is mergeable comes from madvise. Madvise only applies to certain memory regions. Here we have THP always enabled rather than on madvise, and the end goal is to deprecate madvise entirely. These THPs would previously not have been split at all, as we could not identify which THPs were underutilized, and would thus have just been memory waste when THP was always enabled. In split_huge_page() we chose the most straightforward approach to free (zap) the zero page immediately to get rid of the memory waste. It does not seem to me that KSM is necessary here. Thanks, Alex