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 2C1A4C77B61 for ; Wed, 26 Apr 2023 01:48:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B8E206B0072; Tue, 25 Apr 2023 21:48:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B3D416B0078; Tue, 25 Apr 2023 21:48:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9B7D26B007B; Tue, 25 Apr 2023 21:48:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8B7236B0072 for ; Tue, 25 Apr 2023 21:48:14 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5F46F1202B6 for ; Wed, 26 Apr 2023 01:48:14 +0000 (UTC) X-FDA: 80721856908.23.017A411 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf18.hostedemail.com (Postfix) with ESMTP id A98811C000D for ; Wed, 26 Apr 2023 01:48:10 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=dHdFGJo7; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf18.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682473691; 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=3uT35ZWyE8xGWgg9gbo3ANbiGfZpYYWDi85q6LOWjQ0=; b=8P5UDzFvSmdims6ClVgKfhKQXI/VsGyJO4H21NRgBTrC4HgJrXsz9EvenQJtEBbQOpQfbZ 1C9DJcWOVrQB+TNglM+cFgQfuMIqy/taJPdsRcgcXLB0Nu4Wcskc7rCNJaDP+zr6g2miYr pJZdutVBFOT1ErE5wAdxrT3cysyHXP4= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=dHdFGJo7; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf18.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1682473691; a=rsa-sha256; cv=fail; b=JaqE47Y2pGnRMag9fvq8aJ475H9aGvVoptk0I+PzZ4t7ROCy9Ywmfpw08NuVfkGq1Ls6u2 CmXFu54FthtzlHR6lNFpYPrUFq9+M8MnDrlDZu2CDJcxgGRtJlRORen1pkgq2P9xAEOmRm 3TZlLUDCofmFq6A+EDqi+7+Ma4Qr5HE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682473690; x=1714009690; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=mzvZQgXzUVzOMZhmxUDZyrEP4mmHs8gy8/wJfoDyl3M=; b=dHdFGJo7PoP+MTM3BuSXWBhvjwBA0ngU9eKl0DZiucMADyW1N2yQZptS BoRwg5JaklYrXKQxQzMGKDuHmr6yvidxqfr2BP7LRQCeX+rBky0fWd8yN feXxYh371xOvmolNJxqDfSw26Pg+9Maq8fixDXvxIgxlzGfJ8t6mveEBe e7nBSbNx6Aw7IuphVeQCwO+bJWCXRPP7AXlSr1Uq/v6SEzcpOA/nFYE3s Bqs6XWSV8MbgjpeyDGcO3m4Y/w/AOIBtT1h599kjoY+Z4IHhXKTjGo2B4 7nJTk+83sW9N/vexw5eSrNoaN88MGmaYVeJ2VwDQP7LLqhyeCRNFnSzb3 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10691"; a="327278121" X-IronPort-AV: E=Sophos;i="5.99,227,1677571200"; d="scan'208";a="327278121" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Apr 2023 18:48:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10691"; a="644049706" X-IronPort-AV: E=Sophos;i="5.99,227,1677571200"; d="scan'208";a="644049706" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga003.jf.intel.com with ESMTP; 25 Apr 2023 18:48:07 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 25 Apr 2023 18:48:07 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 25 Apr 2023 18:48:07 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 25 Apr 2023 18:48:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SZTdfnJ3MUQdRng1EMRW5BwljoT1NEa6HUv7D4FlAHudKUr3p0qaOmqTrnDiTn2MHcteSKmdjYaO0A0jjUIpQw0tk061GirDgEXQgplyz/cwFa5coOnCHNHdVPXur1CWYAR2TDAjypK3AZo6OX5buMwORkGJXux5sNxiIGqpusUuvC/3ZRrW2oCQrRJhO+hNHYjgDthbPxXO130GCi18r82HYU9Fz/hi9j3p7OaaeYeTKgBOWXWdiTFMyuT1TBpEdM6J1UC3H90Gf/E0UzuQObGCh/j76fRSljWXoDuFtpDJTLdknxk9LgQZaD4dBwAFBiY3vVd35UKY+BGWHzaIAw== 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=3uT35ZWyE8xGWgg9gbo3ANbiGfZpYYWDi85q6LOWjQ0=; b=Dy2YW48NBQtdA88tD0LTjk3GjgBVfO/TezbZCnaUhRfrJDau2VQ8Uwzjsh8PZ7Soa1OhIcLN//PZ0RlUCHaClh6Dx2GJf252yUsztovE1H5XsPKRSXv7VLl4ZSKfTnCXpX9K/xtz429S16//i108mGCo2JhNFvBQQi6BZX6a4fn9I7G4CMM5KrVXbS7MJ9VhDOlA/5YOCkfsSH3yue1Mdwn8RlOFnU9NtZ0DMoD7uDJELuvJ6OPedhZzAu64xm/MsJdWOIDV6YxlXOrd8f+w/cYgM41eMwWaPo2BiYeoKbtXKrbUYkIJitoL9PB6FZVu5ufuNPgthOuVQehF77fUpQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) by MN0PR11MB6085.namprd11.prod.outlook.com (2603:10b6:208:3cf::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Wed, 26 Apr 2023 01:48:05 +0000 Received: from CO1PR11MB4820.namprd11.prod.outlook.com ([fe80::d1a0:743b:4659:b72]) by CO1PR11MB4820.namprd11.prod.outlook.com ([fe80::d1a0:743b:4659:b72%7]) with mapi id 15.20.6340.020; Wed, 26 Apr 2023 01:48:05 +0000 Message-ID: Date: Wed, 26 Apr 2023 09:48:03 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.13.0 Subject: Re: [PATCH v2 1/2] THP: avoid lock when check whether THP is in deferred list Content-Language: en-US To: "Huang, Ying" CC: , , , , References: <20230425084627.3573866-1-fengwei.yin@intel.com> <20230425084627.3573866-2-fengwei.yin@intel.com> <87wn1ze983.fsf@yhuang6-desk2.ccr.corp.intel.com> From: Yin Fengwei In-Reply-To: <87wn1ze983.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2PR06CA0235.apcprd06.prod.outlook.com (2603:1096:4:ac::19) To CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PR11MB4820:EE_|MN0PR11MB6085:EE_ X-MS-Office365-Filtering-Correlation-Id: ed6ce3aa-d50a-4801-9cf8-08db45f846ef X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ncm7MFHZBWrEYHOfqWDhBRafAUDHbUAamZQjpppsHr/UfW9A9/Og5sd1UWw9Z6KwlA81T00YH1QhVLQlztA9n3kmHYG/Yn1RD8zDXWirVKUVmhzXxtNJ32n9/wNHFdlkasqgimMyDAiR0Jvc6aFMBePFkLuEt/yw7AjfPxXAG897uM5DQ86gdvnpbs8OyVaBTQPTX2hoX9mMoDuAR9Iw+a9AQ8LgNP9eMUK+YyO5mSEhbU2ULSgFJmXhvtSwjjCYhp5JgsPQJ+7OV5yJ11V+jxZXl+bY5IwYWfkKrZMA4PiEzHwmR3bIR7Wa9x+jCpJCChkBWIVrnsaT+IfcB+5Soun3xIOAsvEYC62rQJCQ9wU2BS+BWYN5o4Snwl2RP37R5AUy7VoW0dnckThSGfgsCkc2Ivy/BLPjocspeG+vhha6g2bZj1VttBttTXuvokxC2nb7I8W9M8VqTRdbsYtpWyXR4RarlB8TPdvju+AwOCB0Y/G4lJNBj0gK4Y6jQoaTBKa/01dPcLHI+YhVzURs96WATXX79KrjNWEfkmI1HXv/EhtLqjUKEUCQATs7OZBs4IdoNYnWi+2MaenogodWcuKvd3J+P0rYOa4yIV2EHcBzOyXGMFQxqYjXKH5GjysFbxsfLLMP5eLmAPQ0zRdSjQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4820.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(39860400002)(376002)(396003)(136003)(346002)(451199021)(5660300002)(66946007)(66556008)(2906002)(6862004)(316002)(8936002)(6636002)(4326008)(8676002)(66476007)(41300700001)(31686004)(83380400001)(37006003)(478600001)(6486002)(186003)(36756003)(6512007)(6506007)(2616005)(53546011)(26005)(31696002)(38100700002)(82960400001)(86362001)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S24rd2EyVytxRFhWQTRvY3BkbFVxSzU1NnpRTzI0d3o0Z1BYQWZwdEJNc2lW?= =?utf-8?B?R25PbFh1VXB4STdXNE53UVRMRDZuQU1lbU1IOXFxajM0N1d0U2NIMngwV0pi?= =?utf-8?B?ZmFSbmJJSjMyVjdMVTkxMkhsL01YdXRJSmM1cmhPUlJXaFV1V09XVHJ4UW8x?= =?utf-8?B?N1NWMDBMUk1SQWMvT2tjQ2RpT0pkRmRmZFQ5ZmRTanBOVnNHWmJod2FyNUNL?= =?utf-8?B?anFDalJJUlJNZG9kYnZUK2ZydjZURXJtWlY1VHpnY3dlRndTYmw5cW5RQmlX?= =?utf-8?B?WXhZRlpXZnJ1YXNvajViWnliUGJwZUI4UnlxZHprbXk2VFBtRkd2ZlRRd1My?= =?utf-8?B?MW9QR1Bqd25KemNhd1ZOY3ZaYzFJUURXeG1GYVV1b1k3N1cxeTU0a25aVldt?= =?utf-8?B?KzE1OThoTjAzRTJEbUs2dktTNjhMRzRtbTQ1cHFtMGpoaTVVT29oQ2EyZFN1?= =?utf-8?B?d3Q0MDVzY2lhb2dMNTk0WGlKRUd2U3Jtcm1LelBIbmk5Wlp5ejdCZnR1L1dm?= =?utf-8?B?QTFNaDZzMnRaUjY1TDJwWEc5N1hzSzBqbEtUa3lBdjZkUWhqMWsyVTVNQXN4?= =?utf-8?B?Lzg3a3lUUWdPMnA0RllPZStqN0tqQmNwNGxyUWJkMzN0Z2xKMjB3NTVZc0dQ?= =?utf-8?B?UUhNMklUb3F6ZFZNVFFkdVR0eEwvSnIvVUpwSXdoUXhkR1pPajhmWFpQUm00?= =?utf-8?B?TzBwT2JYS0ZsdjVBTXBxdkhqYUZndE81NGVCVWpPb3c5MUkxcFl2UnA3R0x5?= =?utf-8?B?TTZDSzBZb01YRXU4YzNybzAxNm92a1BzK1U2QkNBcGdjV0JQaGEwSWNmYzZt?= =?utf-8?B?OFd1TE5aNTB2M1FhaHEyZitRT2dOY09RUU50eHB6cHY0UFlsMVc0V2VUY25B?= =?utf-8?B?QmkvekE3UEN1bHYwY3pjelBzYWtlam8rU3oxaDRWendVOGdtdkdjclZBeWpv?= =?utf-8?B?a1YreEVGdHU5R043RHpJa2IyVzZhdGZibmVWVzF2cWl5Z2s1MlpzMjRpNFNE?= =?utf-8?B?VktSRnNmNFVjV2VpK2hxTmx5bkRwbU1uQlRvWHIwQTFtRUlKZy8rWGtOdnVn?= =?utf-8?B?QjlNd3JaazdrV2NreGdUSlp6cGd6WThzRkVJd05WWDlFTTZ4bVdLcDNPNUFw?= =?utf-8?B?S3VVQUNURWp1Z05PdDhmSTB5TElaaVFFVUhPV0hXUlFaOEVOQkxMZzJFTm9s?= =?utf-8?B?c1pybG0rOU5jazVZTUVEZGV4dFlYYjRTa0QvWmFpUWd1c0UvbVl4UDhHUHUv?= =?utf-8?B?V1J4MXZZdlphWDlFSFI4REdReHBxUDYxSjYvUTJiSnlrVG9WSjMzSHB1c2sr?= =?utf-8?B?ZzcwaG9JTThONWRzWTZyb1N0SkliQ3RNTXQ0U0paV1k3Q2JyS1pYRis3TVEx?= =?utf-8?B?VXA0UmI1ME0waXFlTWNIVE9PZGV0U3cvZDUvYW9ta2VoUUlDYUNORm5YSUFx?= =?utf-8?B?dDc1aXNYQ2M1UTdpdXMxdlZVcm1UR090Y2ltNUM0YkRlekNlOXl1dithVHpk?= =?utf-8?B?eTRxenMvL3BoZGtrV3dEOUprTWZRazVQdHZXdVB1SFh1L2d2WTNod3lqcVRr?= =?utf-8?B?NDFhU1pBMm1kYnRhTkQ5NERTaENRV0gxb1VtY0dXYlJoWis5L0VLSDNmM1Y5?= =?utf-8?B?K08xQUsxNXY2bmQ4UXk2b25YSEw5dGpyMDdNQjVoSjhnVllVYTZSTU81eFUv?= =?utf-8?B?SEpKT2h6elh4aWxyN2E1OW9UQzl6bDE3S1BXVGN4L0diTmtnSWJFejJMZllZ?= =?utf-8?B?Y2VNTFNkZ2g2ai9VQjA1b1R6NGd1M2xKcFQzU1pMRjRoWFIzNkhrem16Vm9r?= =?utf-8?B?WXV5N3REUnd2L0hqZVZHZXBCNGxDdVgvUnRNeVVSTUUvMTF6dzA0T1F0a3Rr?= =?utf-8?B?WHFlbVdLUi9RdE1xVk9TK1o2MDhNSHhjdkRiQ0FsR2lrbHBpV1M4UW9TNkhB?= =?utf-8?B?NXFOa0dHcml3d21XbHZuNnd4UDY3NjVDV3FEa3dBbmNBVlhJT3hjWDduRnB6?= =?utf-8?B?bWZjbjF0eTlxM3djQjJXSDI3d0NXUWtQVEN2Si8vZXR1d0hucFJ6d3JJbTBl?= =?utf-8?B?MXRLUEh2Y3BObnd4ZHlKblY1Ylc2U1dkQTk1am1YaS8vQlVDaWZOdDVDMFp3?= =?utf-8?Q?ynEygRsEGbWxF0qdhKP/Dbir9?= X-MS-Exchange-CrossTenant-Network-Message-Id: ed6ce3aa-d50a-4801-9cf8-08db45f846ef X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4820.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2023 01:48:04.9890 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eXWySZyYmRfVsMr0UQ/Wj7/YMx2Eu/JFsVJ0V5qKHpGELrq2gH3xS4+B3GR6WUAgggli4bK7PzmNO7fYQnzmeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6085 X-OriginatorOrg: intel.com X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A98811C000D X-Stat-Signature: 8gu4jyittetytfp9b9or8e6p1yde6k6c X-HE-Tag: 1682473690-641491 X-HE-Meta: U2FsdGVkX1+M55dR8GFywfhV3DRrEO+fazJ9fMsuYlcDz0bSUBxJv8bRWREIsfcVN+wXcSzzAK/I4zkPXJE7cfWzuZGN3DeJ+9yunGpKerONDUekee94TVeJmB6GJFZwjvjtL5Y7DZ+yc015CpFcXc0fvESvIm2eYycvoMDWniq4zXPFldzfLsfEkiA8DYqP5u1KYlFcLDNMRNAIgfyhpXjRrUwuHQe0xW3VsL9MWPznphfHVC9uMri0CI1HSk3EDj/4NTmkpj1xmer+EWADSFu1yMS1jmON5QO3IJA/dxRIppT9uK8KY+H2RxGDQcERYi2nKl/asCyE5XSZ+ZNgi2NcEdNr3RytjM9qZxE5apc9WbCijhhrqyqZAO8SM7NSGaiUBd9wUHGs6JwEGAjBPEPFQFflgoktywBJv/X1+8q24vtxYia34w9HkoU+ntSScbm8rOVHxiFHBaqyZvWA4zGgpcWRWH8uEFQC4tjHs6pOt6gKMIsz3iomRX5gLJPAoCQMFLQWANXCjiAdYmgVaLkQ6oXogbVPe9+Km2Rg/joIqYyfeymsp3p7krYZCazA0RnrD4L19jxrXNQxbhoxVtvt7nYkFZwxkhj2OlwrpfLFczapjYFOP3qVxuN6mXAe3B1uNSve9uU7ONmQEG9gU//qIl3lFh9zf0KvZeGWpwuadzki127/w19QzzVUOK1Co5reK8eaLuQMARAGbaXn6CG3LfcqBgJH00NC9noLF92BzvTz1C0wJMGt0MgYC/n7X70ikbkycOOj6ivt1ZVYZH83btm0Gkgb9xwhVsomNdMpSM9gu/KFTjEyNVIQUgX+VhAlrnPivJGoZehmLBF4qO4vjxfw3EVhO5DQtcV6XmDil0OeM+1On9fRpbiLYPKeDkq+WnEwmdnz6iL/HIsaIw68ZIRNjSPb6Qt/4IO5qHan6Z3rr9YormEMAkxkl99UEnztNRz+Wqq5LLUbQek F1W6znk1 mp0TAdS40knZG5NEx9tvqxFV2uKKOLdoc6ny7uLjvQj4MmqbuZYUQMkSnl2ImfLRbKDES7ByyUesaL44qfG/gobG3hTjzk+Ga1mMU0M94h1r0i8nFA3Q0X7zlv1s6jSUF0M/1Jtq/ltbE7sl8gNKsNKKuGPY1A0IQuB35kWuDLiWTWsFzdAMzWIAmaV6d/ybC8ZE/jUBkdWnjfePkfuCM088OF1SagARo+w3Df9XaGXBxSxRHDUB75/jBNyZPRpB0GYoO6jQ0vnkBrZ/hk/U2EYN2R8/RhBeQbZHtoHnnQf/yvAcqn0MEMd29ncKHqb+X3bGTAG7r8hkgDaHKNGK6FrP06SDPIjSdznzfqOmMbGUOe9o= 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: On 4/26/23 09:13, Huang, Ying wrote: > Yin Fengwei writes: > >> free_transhuge_page() acquires split queue lock then check >> whether the THP was added to deferred list or not. >> >> It's safe to check whether the THP is in deferred list or not. >> When code hit free_transhuge_page(), there is no one tries >> to update the folio's _deferred_list. > > I think that it's clearer to enumerate all places pages are added and > removed from deferred list. Then we can find out whether there's code > path that may race with this. > > Take a glance at the search result of `grep split_queue_lock -r mm`. It > seems that deferred_split_scan() may race with free_transhuge_page(), so > we need to recheck with the lock held as Kirill pointed out. My understanding is the check after take the lock is not necessary. See my reply to Kirill. Thanks. Regards Yin, Fengwei > > Best Regards, > Huang, Ying > >> If folio is not in deferred_list, it's safe to check without >> acquiring lock. >> >> If folio is in deferred_list, the other node in deferred_list >> adding/deleteing doesn't impact the return value of >> list_epmty(@folio->_deferred_list). >> >> Running page_fault1 of will-it-scale + order 2 folio for anonymous >> mapping with 96 processes on an Ice Lake 48C/96T test box, we could >> see the 61% split_queue_lock contention: >> - 71.28% 0.35% page_fault1_pro [kernel.kallsyms] [k] >> release_pages >> - 70.93% release_pages >> - 61.42% free_transhuge_page >> + 60.77% _raw_spin_lock_irqsave >> >> With this patch applied, the split_queue_lock contention is less >> than 1%. >> >> Signed-off-by: Yin Fengwei >> Tested-by: Ryan Roberts >> --- >> mm/huge_memory.c | 19 ++++++++++++++++--- >> 1 file changed, 16 insertions(+), 3 deletions(-) >> >> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >> index 032fb0ef9cd1..c620f1f12247 100644 >> --- a/mm/huge_memory.c >> +++ b/mm/huge_memory.c >> @@ -2799,12 +2799,25 @@ void free_transhuge_page(struct page *page) >> struct deferred_split *ds_queue = get_deferred_split_queue(folio); >> unsigned long flags; >> >> - spin_lock_irqsave(&ds_queue->split_queue_lock, flags); >> - if (!list_empty(&folio->_deferred_list)) { >> + /* >> + * At this point, there is no one trying to queue the folio >> + * to deferred_list. folio->_deferred_list is not possible >> + * being updated. >> + * >> + * If folio is already added to deferred_list, add/delete to/from >> + * deferred_list will not impact list_empty(&folio->_deferred_list). >> + * It's safe to check list_empty(&folio->_deferred_list) without >> + * acquiring the lock. >> + * >> + * If folio is not in deferred_list, it's safe to check without >> + * acquiring the lock. >> + */ >> + if (data_race(!list_empty(&folio->_deferred_list))) { >> + spin_lock_irqsave(&ds_queue->split_queue_lock, flags); >> ds_queue->split_queue_len--; >> list_del(&folio->_deferred_list); >> + spin_unlock_irqrestore(&ds_queue->split_queue_lock, flags); >> } >> - spin_unlock_irqrestore(&ds_queue->split_queue_lock, flags); >> free_compound_page(page); >> }