From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11022083.outbound.protection.outlook.com [40.93.195.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A02124B246 for ; Fri, 10 Jan 2025 19:40:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.83 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736538024; cv=fail; b=WGsqafMV7AtCLjb3tiyPQAgrHtAbAXAu1MY7jITxPruE8NjLhm8VkBpp+c+Byog10HcStht1gjE6NSfns2DfCkBDcJEGtsrufw5xquAOYHtcd5yhHWFlrdwgVXo4aMYFM4rNn20egiYRQLZdjxX23ZWmGN1rR6gDr3frnF95bF0= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736538024; c=relaxed/simple; bh=ZZ9pG3kKstVpmZ6gqsE8YZD61J012CTyTaXmNybccaE=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=Dzfzh+au5/glurw6A89MWrBE/hNf7FPVX8A8SeFTJQ+OKXqA6LmCej7FFASF/V397vCJA15uGk4W2jRsDF4iZBIX9ITUYEZOadTZguJr0T9AaYjToAqL6u46dUGxg7cM478jhhRE3IsPHWUG3UmJhm+TpPQdFBG4b93BY67ghq4= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com; spf=pass smtp.mailfrom=os.amperecomputing.com; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b=JwocE99d; arc=fail smtp.client-ip=40.93.195.83 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b="JwocE99d" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YdKiV1Ngn5T4Hdz5naJfyNKXBCV/ReCY8Hsc9A4hKf/bzoWyhAfEs7dZE402ilAtpP7OoSo923Rp0WgfDtBwz2qT9Gb/HUS2212a+rErycEnGC0VCKtydUOZ367z+7HoxeoBhidR7KO3aSCM2IJKwI+49WklMd5fqZYUT4Yn6a1KsywzxmLWsnVAuP0PTHVhm+XuC4feGO8XRXSSdWa51CQeh60UTe40VFXB2KycfrLp6xOUuL9gnVfHlnhLLh0RWL0iNQtWgXZwTY3lckBOXm9G14IRF+7KezYX5F12LSKDhWHE/py9sEfAnUdP5umNzj++l2zPwVQl5dMBwQixsA== 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=hJyDDJKJ0Hv8Ud4PwznrpR7m2qgYz38lEaXXSJezsoI=; b=KP/rgd17PP14t0ffRY7LeayX1EVJpWB6Ph/Bj+5vZlX6gkl5fKHCqA/rCaMJM2QLDW2vIauKOtxkS4ySFgX4l/02bYwInCCTcfO5gYdj9MH/J34Ihu736Z4pbcnf2btlTEQa3moym4U4qxpaUdQdc/gBrTlaKKz82GofJgkd5JsS4wYX1wv8Tnt67ovHjOTzB0BY3bSPJARl6uOHtH+hZ1p1Zw5c5lKm/9OWGa4PEALGO+Yp5eQivVLEqAmCIBxidO2p1M/mgYmJegwQJDh/Rg6SoE+vDqDyoquT+KAxpN4ELC/nSBBvkhAUprcdNRv978zsu/Q/53KXKBSm1T8LFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hJyDDJKJ0Hv8Ud4PwznrpR7m2qgYz38lEaXXSJezsoI=; b=JwocE99d+IvFof1osNo7iSMnrWkzb927+8Ye8F/qhEw3GCUhaxndP4YNopqaarbpm2SfYpobIx+yVZcomkFw8HSeKcx/354zyikmUXgXauJRhEesgV6XlegiU3UF8ErlFbx5u6+iFuDxbnAU9AsOvcblz1EoAgpAcZPcT6jy9+o= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from CH0PR01MB6873.prod.exchangelabs.com (2603:10b6:610:112::22) by SJ2PR01MB7953.prod.exchangelabs.com (2603:10b6:a03:4c0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.9; Fri, 10 Jan 2025 19:40:19 +0000 Received: from CH0PR01MB6873.prod.exchangelabs.com ([fe80::3850:9112:f3bf:6460]) by CH0PR01MB6873.prod.exchangelabs.com ([fe80::3850:9112:f3bf:6460%6]) with mapi id 15.20.8335.010; Fri, 10 Jan 2025 19:40:19 +0000 Message-ID: <58595f1f-7959-4dc1-9ea2-470c44709d31@os.amperecomputing.com> Date: Fri, 10 Jan 2025 11:40:16 -0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: khugepaged: fix call hpage_collapse_scan_file() for anonymous vma To: Matthew Wilcox Cc: Liu Shixin , Andrew Morton , Chengming Zhou , Kefeng Wang , Nanyong Sun , Muchun Song , Qi Zheng , Johannes Weiner , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20250109070059.369257-1-liushixin2@huawei.com> <037d4442-4d2d-4aeb-8091-5efffc374d36@os.amperecomputing.com> <8e773a7c-e1dd-4e0e-8349-8aa52f39d85a@os.amperecomputing.com> Content-Language: en-US From: Yang Shi In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: CH0PR04CA0083.namprd04.prod.outlook.com (2603:10b6:610:74::28) To CH0PR01MB6873.prod.exchangelabs.com (2603:10b6:610:112::22) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH0PR01MB6873:EE_|SJ2PR01MB7953:EE_ X-MS-Office365-Filtering-Correlation-Id: 17d6e580-2998-475e-44ef-08dd31ae9d42 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bDF6M3AzVGNaNFhOVExESW12K1VpaHZrckNUSktPWXVXc2JiTDNQVEJwYTVo?= =?utf-8?B?Qldlc3dZRE1vcy96bmRBQ1dRdzdubG1XMWMxTnczZEZGcFpRTTAvdXE2ZXlk?= =?utf-8?B?Y3lobVduY2NqZ0pneGZrMzJHZlZlWW1GbEk4MEg3YjVZYVpNODJhS1RFckV5?= =?utf-8?B?bXpldzFIRk9xSzFuU1UxbmVyTGNsSis1Y2hjUDRvcHVEVkUxNmYrZmJqNHY2?= =?utf-8?B?VnBHRzBiajQyTWVZalZ2cVVWeCtoaEZYS1dRTUNIcFNRNUxaSjhqSklCT0Z3?= =?utf-8?B?cVJpZ2IwN28zbTV5SmtNUmJLVFNodHcwd1JVMVUrblhYM0FjNDduQmhNZUJa?= =?utf-8?B?UGNJR29RTldsSHhPb1NlYXBXNDdrL2JWZkVnV0piTStFNG5DN0ZNRkMvMjhY?= =?utf-8?B?Nm1LL0lXbXJTR2xKVEltMnF1V001K040U2tWUmRSNEJTV3BiMWJXWVkyMmZB?= =?utf-8?B?amRBMURPK2s5V1VxYXh2eldEQWdFNWdDbzkxangrb2VURVhFSm53RnovYUF2?= =?utf-8?B?N2UzNnBjVzlCY1VBOHg0Z0d5RmppWk10Qy9Qb2RRdmpXWGpvNGVDd3J2b2Ix?= =?utf-8?B?czhycFRHditZcjhteHF4L285ZHRzeVEyNTh1MXJjRlkyb0N6a1l6NzBoNlA5?= =?utf-8?B?RzI5dlhEUEk2a0sxS3F0WXVzc1c5bVowZzFLN0N6ejU0UEQvWEkzcjRYV1Ny?= =?utf-8?B?SEdrb0xPTVFnQnVKTDREeXo0UTVHSm1XK1lVR0ZGVEdhYUNyQ2U2S2c2RW9z?= =?utf-8?B?V3A1NHJRVHFQV2VWSDFWaFlUZVQyNmViMko5QklJV2hraVVsMTFtR1IvRVdG?= =?utf-8?B?d21wV0pOczFpYWFINlJxM2JQYVJpUlZTckloTnM1YzRYQlZYa29ZWFlhd0ti?= =?utf-8?B?ZlE5YTNycWtYUnp6aG9DRXptN2lxUW9XZW5DZFBvMzJsMFdTdlAxTStqTUFN?= =?utf-8?B?ZzhDcU83MlhxVUtGUm5ZNUtFSmY5dHlONnZzWTZzQyt5LyttOXZZcjJwVEFZ?= =?utf-8?B?Um9GNEh6UkY4eHgrcVcxTDNwODVLSmZmekcrNUNNNG0wVXh6eTVzdys1REFI?= =?utf-8?B?WTJSNWQ3UzVCSzFQaDNjNG4wZW9rMTBPUnYrN0J0S0lBTE55Y1lES1VUWTNt?= =?utf-8?B?aTRGQXBkTGVoZnJQNGcra1JzYStGMVdOVC84OEM5Z1o3dWRhTXVZQ2dCVUx3?= =?utf-8?B?dzlSc3p5UWNTUkRBQllhaW5YSlRjbG9CL0hzdHJyZjNNMzFWOHM1SVVJRXFs?= =?utf-8?B?M05IVlNxc3BIclkwb0tTa0ZRL0JDV2k3U1YvOWtEMFRPcnFtQ2xpa3lBUkxM?= =?utf-8?B?MW9jVSt2VEFnUW9EZERlbVJnbFI3YmM4SFMrTXBMNnQ2cE5UaCszQlBoYWg3?= =?utf-8?B?QXBVSUIxcm50ckNsQTNFL3pYVGFvdXk0bnVGNmJKeFNUK0FJdlZNbWhmOUFB?= =?utf-8?B?YkZmcTFDckFaSGhZeEtTR0EwTkZ5MmQwNDNDcG5kNVhMMHVvaGUrdlp5Z2Rw?= =?utf-8?B?SWFHS0Q5Q1lRMm5kU05hK2ZwQ0lRcm9OTjYzdTh4NHE4RG55ejEvOEVDZ1R3?= =?utf-8?B?bHk3L1Fhcjcxd1Z5WXczem51eWQzc2ZDUDh0M0NvcGRNWXpTamJuVTFYQm9h?= =?utf-8?B?Z2t0MEhmdlpZaEdJd2w3ZG9UZk1iWGIwbGZ3Tmd1OFoycmxKbytqYnVOdmdM?= =?utf-8?B?ZG9ZRXlveGtxZ2FwQnpidy9DVmdrNFFCZUFpazVYNlBvQ0E1NFBtSGMxRWdu?= =?utf-8?B?RzdHV2tuNFZaOWYvVk83Nkl3MXptZW5oVk8wMTZ1MncrV1ZtdEh4OFFTTnQ0?= =?utf-8?B?NkJhUHdicFc0bHpLblptMFE4NC9STkZ0Y3Y2eGxFVmdIVUZFcTNNQ1B2Ykdt?= =?utf-8?Q?B04SSA5YoFFnD?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR01MB6873.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SVRiUnRNUTFjZll0V3ZpUVQvL3NEYVBFZmIrT1UwOGV6RlJJYUxydHIrSXBm?= =?utf-8?B?Q3pRQUo1a3R1RFVWWmFDRFRGSjVxRDJCZnJjWGtLa3FHWlRRSldPL1MwdEZ4?= =?utf-8?B?L0I2ZWk5UE44cWN6UjlCZFlXWTArcUdZVDYvbk9NelpDbXgzbE5nQVhkSFpB?= =?utf-8?B?dkswTEdvbjlGUHBhZ0tGaVM1aHJVMTc0YkpNTS9tNXhSdlhsWXAySExuTC9U?= =?utf-8?B?aTQ1S2JCZzR0SWg3SHFLenBtWkpKRm1VZDkzYTdpQklzQVlIS1FlNXF3Y0J2?= =?utf-8?B?aXh1Qy9oQWlNNlR4UWNhZG5DMnpmVEExckY1VmRUYXlHcUZDZm4rRjZkWlVt?= =?utf-8?B?S0pCY2xHWDYzeGNEY25nR1U0NmkxSmhjK1FUN1gzUlZLQW5YZlFwSGp1ekhk?= =?utf-8?B?ZEwrZW03enFoMkdqWEpBbG14VElBNkY0M2lSdXQyMjE1SzBQOTVOM0R5K2tm?= =?utf-8?B?UWVsRW5qb00xOTJnNzVpZStmUGhBR2Q3OHN5bVVXV3RjRENwcDRyM3hZNUY0?= =?utf-8?B?RHpCT2Uzek0zM0xjRnZ3NmtLR3Y1WFJQVldoeWNGT0ZsZ2YweUNiY05uRGc2?= =?utf-8?B?N0Jkakl6LzFSZUFKVG1ndXRYSWZoNk1IVEp1SGhUbjBjaDlhK29IOU0vZlJo?= =?utf-8?B?V0FPWkZQL0MwQUdDYllFNndlRWxGMzVScWgxWmxOWDVnR2VZanIzY3ZYYWFY?= =?utf-8?B?OWw5TU5qVmJVRGtQOThNeGFBaWFodmF4QUROQlVaK3R2bUpjSy9KbEh1UTM4?= =?utf-8?B?ZG9Fc3lnSXltamltblFEMWJiY0pyQ1R3aHZwY1lyUG40OXpXSWhzdnpDKzVj?= =?utf-8?B?czE5RWNvZEdZNmU4bDZmN09jUHl2UnVuRGVGcWRwS3I1UHV2TzBjSDNHMDRS?= =?utf-8?B?d3V5dFovdmRHZG9PWkVyZjZUQkVSTjFCd21TOE42Z3hJeFFmVHZzWVd1b2Qz?= =?utf-8?B?M0l6bDVaa20yQTFtcUp6K0RuMzMvSFhjSXdzN2IvV2hQazVpeTR0WWxNQjQz?= =?utf-8?B?VjFtNlVlRnNlQnZOWE02Q2JEYkRsbElPRUlQSWxkUkhwc2drVTRxQmQxVCtZ?= =?utf-8?B?Z0dNN21WRThNd2hnQWcvVTA0UTRnSittQ0Voc0VjemtYbUsycFozbnYyKzNp?= =?utf-8?B?eTR2RFZzc0paK3pIK3hzWWIza0ZOL240MGJMTDZCakVuV1NRbExwZTBiM2da?= =?utf-8?B?ajFaRVA0QklXRVVuMGNUdFFBTHUxVDZab2pTRDNIOW5MU1FIaXdvM0hCRzF2?= =?utf-8?B?c050d0Rodm5NNDg5QWFiRHJZdzdQMWpjRDRpdWQxVGNHVlZzMEd2cDFSUHZr?= =?utf-8?B?M3MyeGlnN0dxNi9GNFVzak5lTHhFaWExVkJtMkxGejdVczkyaS9uSDYweUtZ?= =?utf-8?B?RzBCWEtYZDRSYzZHVGlJWi9PZHVIR3Nta2d0NXVWQy9aOStIZVdJU2Fqbkdo?= =?utf-8?B?d1RqKzU2c3NqakJtUzNJTTVCZ0k3ZmMxN2JLT2JZUkZvRHI1aEZMQWUrUWV5?= =?utf-8?B?UHN6SnRGclVVTXk0b1lteEhLWGtJT0RlV2dVVlE2Njk0eVkvczBzUUxsalN0?= =?utf-8?B?eG82ZmZmSUVoeVBnOUozNTZwU0dnYTgyQmJET2RoQzhYa2g4SHh3aFpML0xr?= =?utf-8?B?aWhnR2F2blhKK1J0V3pSblBKYnFPOG9BTVcxMUo5d1NNbVJLWGZJOFFHUVdH?= =?utf-8?B?K1dEb3E4Y28wc0FYRy9Gd3V2UEtUd3Zic0daRU5ldC9zS0p6NGxkZDQ0RmVr?= =?utf-8?B?WVV0NEVwWmhrTmVDVlo3Qkt1ZmMvaG9UeVdaMmRXcTBtSk5TZEhoa2dzODJa?= =?utf-8?B?V1ZSa01oQjZLdzRaZk1IaCtHSzlSRFo5T204R3g5ZFR0K0wrTldkdnoxQUFq?= =?utf-8?B?OXZYSXc2b3F5WFhNRlllbnMxVGpxTGhMTnJqQkJQb2lEcFJGSWs1VjU1VTRw?= =?utf-8?B?MEpzSEd6aHZNbm9rUTcvRm5YeHVVeks2RkpRZjR3TGtucjNlSVViVnpiY2lH?= =?utf-8?B?dk9jdWljdS9oaVlBVmduUjIyeFhMVkRzZCt2R01EenhzcHYxcStQamMxMUs0?= =?utf-8?B?VHR2VGo4NURYK2twcFpwYnd4d0J1TUwzSWNMbEJmanRDZ2RNQUxXNDE1UmZz?= =?utf-8?B?Sng4VEpSSi9NK2gyQURUT0pDWjVSSlBoVjB2eGc3dHorREZpcnNMOGdBY3M4?= =?utf-8?Q?jRr0XSV0nRfV/VadsKXd0Vc=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17d6e580-2998-475e-44ef-08dd31ae9d42 X-MS-Exchange-CrossTenant-AuthSource: CH0PR01MB6873.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2025 19:40:19.0041 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0KHj2+/gibxQt2FnSGyHv+2CFfOT0SbotmGcT1/TbGZL/fBYmoj/p6MdMZjIQhPekvT4qqjggnUqCi6iVtMxH1iLPgf1fQ3EElrPRBlI7r4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR01MB7953 On 1/10/25 11:01 AM, Matthew Wilcox wrote: > On Fri, Jan 10, 2025 at 10:04:42AM -0800, Yang Shi wrote: >> On 1/9/25 8:31 PM, Matthew Wilcox wrote: >>> On Thu, Jan 09, 2025 at 09:00:24AM -0800, Yang Shi wrote: >>>> Thanks for catching this. It sounds a little bit weird to have vm_file for >>>> an anonymous VMA. I'm not sure why we should keep such special case. It >>>> seems shared mapping is treated as shmem file mapping. So can we set vm_file >>>> to NULL when mmap'ing /dev/zero for private mapping? Something like: >>>> >>>> diff --git a/drivers/char/mem.c b/drivers/char/mem.c >>>> index 169eed162a7f..fc332efc5c11 100644 >>>> --- a/drivers/char/mem.c >>>> +++ b/drivers/char/mem.c >>>> @@ -527,6 +527,7 @@ static int mmap_zero(struct file *file, struct >>>> vm_area_struct *vma) >>>>         if (vma->vm_flags & VM_SHARED) >>>>                 return shmem_zero_setup(vma); >>>>         vma_set_anonymous(vma); >>>> +       vma->vm_file = NULL; >>>>         return 0; >>>>  } >>> I'm wary this might cause other bugs somewhere. rc6 is a bit late to be >>> introducing such a subtle change. >> Thanks for the extra caution. Applying the proposed fix in khugepaged code >> is fine to me either. We can try to kill the special case later. >> >> Looking at the code further, I think we should do more to make private >> /dev/zero mapping an anonymous mapping: > I'm still nervous about this. We map device inodes in a lot of places. Yes, we do. But I don't think this change actually changes the semantic of /dev/zero. Shared /dev/zero mapping is still treated as shmem mapping, private /dev/zero mapping is treated as anonymous mapping, but the current implementation is actually half-baked. It has NULL vma->vm_ops which is used to tell kernel whether it is an anonymous vma or not, but it also has valid vma->vm_file and vma->vm_pgoff as in file offset. So this special case makes kernel has 3 types of VMA:     - anonymous VMA: vm_ops is NULL, vm_file is NULL, vm_pgoff is the linear address pgoff     - file VMA: vm_ops is *NOT* NULL, valid vm_file and vm_pgoff is index in file     - private /dev/zero mapping VMA