From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11022135.outbound.protection.outlook.com [40.93.200.135]) (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 319D41FA27F for ; Tue, 14 Jan 2025 18:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.200.135 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736877639; cv=fail; b=r5JJ8QKoh4aTMY9qcypTu9bGDN8cA9bAqLf+Tp6Yhb/JYXeRae+6LeTgOgbJIOJeYcJhnIQWiPn7leslv140knYBM02aO4V2lhfzEAewGSxOpV22PveI+cFLnjMwsYTaYcMrg9IvStBKegXHYO2ke8QqKsui4kbviai0h2OafDs= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736877639; c=relaxed/simple; bh=qmAe+YyPK92HKbCAWJgKXaDDHqIndEKMF9xqDZony2c=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=FMdSQaMyFzozAcjqpcI6zxj0ANK8ColD0XimRKK7Vv5aHsVtHjpRM9EaFhvrGN4w9Lg9yV+B3WEfaGI2Ot80vaGnHYETT7H/IRR0YIyANyoW7UsmGlyp634GocdJFwZ4KeGstvlhDiKaF3yK87FPavPncLClLxEUca4VKl+Mnic= 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=E+RNQ/ff; arc=fail smtp.client-ip=40.93.200.135 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="E+RNQ/ff" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q6HBAAh1hzw9zesDaSluH16Y09QbDxx8WNuDexj1twCqpM7E/wf4MUC0baK+IQ9K1GDvttNHMYZZFGCPBs/Mm25e5PxKyu7OUduI9Jt5ng0aVW8aKXXiv4Bv6Y2moU+dZY3tBwovwrz+PuD+W/s7yNx5u0ZYmWKMHO4beDWnXs2Wvhdi5+JyvHsxpJ6pt0+Ku8AiZ1QKlAJg6OMOUhAlKy0rMMv6Hr0X8u5nzFmCq6a93NOa4xOYqD8pS1UNEhxfyG6ZNUs2iG8SexwiVDYuGtPqyRKyDgNtl6yC7+MYpgBoNzzPmn3CVwIp1sXt4WQJWBU2ND4IVWj7uwydh5fF1Q== 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=FIf7vW0+vqAUBG7D0P0TCq+piFmI5oVm5VIFjdi5FcY=; b=FvHeKAoJchK5zN2kRhMDI8KeStmFF5smWs1nCXLAjtgHb75cVdh8qmYIqlQU35TmQVKQsjcRpWHBeCzPgiM1zCtXhRfz2BXepEPg6g/1FjMmpLv3vN7fK0DuJ58ULByTIK1bvzSJEKkWwCe+IJ0m/Fl70yqMHyswoYpnHSX6I37DWrfZ0P16deOqMGg0ztFYKXwxicNxFz4bc2ho/82FG7cvduPQy1rhqnqn/740HUIbMT/escG71ZiEBZouwvRptEilMrGiXzg65K8xhM2mtIe/LqhDkZsZg2a/vCIWty5sp6Cw6ZynSrkaNqAMJFN66pm7rM/+tbUvyE3WDORZvQ== 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=FIf7vW0+vqAUBG7D0P0TCq+piFmI5oVm5VIFjdi5FcY=; b=E+RNQ/ffGBdT4oQF8v7oemxZHAu6FcngkgD6D1mkAF31klK1eBsUFWCgLIl0od2+VPHRHfI9szmFKWwvtlJW8VFrJTVpXiDIM+JLFpQR1mPJjnJSMlD9rP/Q94QZaZbsnnUZcdV5FNHhfJVmh5DmEdmxAJ3CI7joMxbmrqVco7c= 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 CH0PR01MB7001.prod.exchangelabs.com (2603:10b6:610:106::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.11; Tue, 14 Jan 2025 18:00:36 +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.8356.010; Tue, 14 Jan 2025 18:00:35 +0000 Message-ID: <8a561ea1-56d5-4914-8186-f0546a84dcb2@os.amperecomputing.com> Date: Tue, 14 Jan 2025 10:00:31 -0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] mm: khugepaged: fix call hpage_collapse_scan_file() for anonymous vma To: David Hildenbrand , Liu Shixin , Andrew Morton , Chengming Zhou , Matthew Wilcox , Kefeng Wang , Nanyong Sun , Muchun Song , Qi Zheng , Johannes Weiner Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20250111034511.2223353-1-liushixin2@huawei.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: SA1P222CA0015.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::33) 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_|CH0PR01MB7001:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cf993b3-0cdb-47dc-81fa-08dd34c558b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?S2JMQXlXVjBpUy9OTklsVFByMmpIcGJoUUFDZnZTNFVodWs0SWNDMlJkdG9x?= =?utf-8?B?UmxVYWhxbG4zYmdQQnVxeXZ4QjRkQjlkWEd4K0ZjUVp5R1pUMG9yMW5NQmJQ?= =?utf-8?B?ZGthb1lFbm8rd0hQS3Z2Q2llNUpJTjRqTDR4VHVuTnVHeUtyZ0c4M0JLZHlP?= =?utf-8?B?bURNTmZxZFJac2s0OEM5VXA5RVp6MjlVVDlnMUZFNFV0VWxFZTBLOTlGTzRR?= =?utf-8?B?OHdva3Myc2dRU0VlLzRDdlRiVFpyeEZNL2ZEUU1rSUg2MVZ1L2xxdkw4TFhq?= =?utf-8?B?VFJwcUpIWVBBOXVCMlhIZk9YbldyZ1g1b3VJUkZoWlhjZXV1Z3NZdXFxcEtw?= =?utf-8?B?UGk0SkpWdlFRaDVoMkhmRXZrdTRqNDJ3eUNyblJiWWFFd3NpNFJDa0tqVjRV?= =?utf-8?B?N3YvTkRyMS91ZHFBTGJ3U0NiejRBbTREc00xZ1V0R09HdHVwY0NzZmpqTFpW?= =?utf-8?B?VVZrK0lWRHQ4MWJlOE9jZFRmMm1SeDNzcytScFZtZGdHN0phcW01Y0piR0c0?= =?utf-8?B?TzRIMS9wbzl6UmNjS3FOelNZVDQxdkd1YnFlSmFONGl5ZjcvUzQvOVRVc3pB?= =?utf-8?B?aS9FL3ZBdWp2d1RIYmpzSTBYNVVDTFdPT2FiWCs3c2tna0tIWm4xNGx5bU4y?= =?utf-8?B?S3pVczNOcFhkZEVWa0tZVUpYZ3JabXdCNG56YjMyajJzbjBIZjFFU3pMWDNj?= =?utf-8?B?MEFIQXhEcGFsQjVrQmZETWVvUjZuK2Vwa01xdW8vT1RzenNqL1AvRS9tNVdk?= =?utf-8?B?cTRzbG5nc2JCUUhUMk9ib3pPL3p6eVJkL014dFp4Q3JYS2lteFpXOHRtLzJ1?= =?utf-8?B?WUZOWkpHRGQvQW1GRy8zSktqZFVBeHkrOVM4RnNuVGEwNmlvcDZvNTJ1eVhr?= =?utf-8?B?K0FHOGZpZ20ybUlCMGFQSnorM1dNekRoNndaeGkzZUpDdE9sTDZITm9NMFF2?= =?utf-8?B?dHY5dmJ4YzZZV0FTbm1INU5wbGtkc1R0VCtBWFpnWWtSdFFmVVR1RVBMMXhl?= =?utf-8?B?VWJNbFdjY1BlVWFNN1RDTWdQeGp1Qm9xVVMyM3lvNmoxaXRZM2dnZ1hFdFU1?= =?utf-8?B?SE5aUjF6RnhuODU2K1NJeTMwTDg4REhSR1BZU0g1Q1g1RjZCaHV5L2FJSGhC?= =?utf-8?B?ellPMlI0dU9QcVdubFBRaDgrRDBIMGtuaXpweGJtVHhYaWgwVFBFcytPMEk3?= =?utf-8?B?ck5mUS9raG9DTHNxNlo5ZDhVY0JEZ1h1emhvWFJzd3liSFRCMEJvMitzTjJy?= =?utf-8?B?dW5oZXZ3QWo0bUQ3anJMaTM5YXlwN0RPQ2xlQ2xVeEYvZ0k1YWF1NzV4ME1J?= =?utf-8?B?NnRhckdmbWtlYjFFLzRGR2xrTUpCb0NUbnVwNi9xN3k2WnM5NktJKy9RcEJR?= =?utf-8?B?dEVLc1NxVGoveVM4d0pEUW5lbXNkSVlid0xrbXRGN243WWVLNzVsSEZIMzJI?= =?utf-8?B?NzZ6ajh2eWtVUkl4aS94Sk9aS1U2cHJnNDVUbm5oN2hYd0N2Q3pNVXFjWDgx?= =?utf-8?B?TzJCV21EenB1UlBrdnFWaytZZ2dYL3VoZWN4Ujh3TFVSVFl5SjBrMXFna0ps?= =?utf-8?B?RFBGY2tmRXkvY2UyY0QvTEpqb1IvTGxaQ1JlSE5vZlJnR3dYS2RNbWt6V2p3?= =?utf-8?B?VjRXZ2ZtUW9XNjBhOXhkQmF6cHVKSUdFRHJybmFyYkx3WkRvZmg0ZGZSSEx0?= =?utf-8?B?c0xSZ0diZ21PR3FSalorcmhVTWJaeVRxRC9sTEhtZTNWRDdHZmtrUFNmSTRE?= =?utf-8?B?ZUNsNDkrUXFaYlkrRElweTZSZ0xPUmRXc1FCa1FFOW4zSytsWXUyMmlXL0Vr?= =?utf-8?B?YUxudFM0ZTIxQkZiYmxmcHBUVThLeUwvbHlsTm1NKzJvSlFyQ2NZUEREb0Ry?= =?utf-8?B?MzVjOTFwNU11d2owNU5yenNhM3FTUzFBdzRncUJUMkZnZGx6Nkg0L21RL2Nj?= =?utf-8?Q?RWdqozKIfBc=3D?= 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)(1800799024)(376014)(7416014)(366016)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UW4zQURUTktCd2sxR1ZTdGVhNVV3U1dHN1AwZkxRWnlvNGtkY1V6ZFAySlA1?= =?utf-8?B?M3NJb0NSbkNWTmNiUTh5K3htclJyMitLdldHTjBBK2N4QUhCYitaSFc1MmpT?= =?utf-8?B?NlJ5YVRmMUxack0wb2FYalJuOE1oMTZuSGE2TllFeEp4SktSYTgxaUhYZ3Nk?= =?utf-8?B?d1psSHlFemJYVFFnMitDQ0xVb1N6Sm9QODQySnRiNHN3RytQeUNWSkpnbHRI?= =?utf-8?B?ejJjZHFuVFp3dVBKY2RaTDlZY3FSMG9QYmVONnByMnhnT3FKb042T0Y3aHZL?= =?utf-8?B?amNMS05WaEQzU252UDVFTTlQN0h0bmhQRURjN0s2blczQVA2RVV0M3ZwcXhz?= =?utf-8?B?OEl1elE4dnlXYnFwZ2k2MGZLb0tyN0ozRDZjK0FaelhRVndLZEJsM0lqWk5T?= =?utf-8?B?djdBRmlMdUsySitDM0dkK2ZwVzB5Q1g1eTQ4U25pdkc1bkRlQ2lDbmNUbmg2?= =?utf-8?B?SS9ubUZEODEydS9rb0IrUkc2VzJCRnd2Z2tZNmZ1a1lCaUZnMUF1aDQ1QWFt?= =?utf-8?B?UWdueW9seElTRUE4OXBpQ2kxeDVQQWVMcEpaLzRXZzVXTVBjdmMxRGhtWG04?= =?utf-8?B?VU80Q2hjRU92WHZPcnpZb3VmTXQ0bTQrbVZ2T2hVaHZDTEhaM0x2NlhaSEo1?= =?utf-8?B?bEV2OHhmU0wwNGFaUHV4N0tWejFaT0U1WkpOZ0lvTFl6cUpNVDZuRG5YVTMv?= =?utf-8?B?M0J1RzZqYkU1QjBvS3Vpbi9BSi9CaklwTnlFWXJXVStOTW9KMVUzNHJxUWl0?= =?utf-8?B?WFd0cmRsOENoOEloTVdBdjU2N3poWThtcUpDNlAvZml0VjdrSnNsSGwxSXNB?= =?utf-8?B?a3dCeXZhRnJKTzIzTC9HVyt0Z3Iyd0pTTjA1UnlLWVRlMUk1Nkp4VE1HWHRL?= =?utf-8?B?Q0F5VlNTOGVpUml6R2FPckRiRnI3NnNTSFZrRTFtS2FSbC93ZWFibVlna1Rs?= =?utf-8?B?OGEwZEorWXR3SHFLWnNTZzhzaXM0b0RYYkN6YU84Y1RwakxVTldUUm9wWHV4?= =?utf-8?B?YjM3OXdHcG9LbkN1N2h2MXp0bWVBVUh0SzJCemZtaEthQjVZMklvVGYzNkNp?= =?utf-8?B?ZFpGeDFSazU2b1ZNbGFUSVhZNkYza2VHeXczQk1mTmZQK1gxSzlSWUhtVWpM?= =?utf-8?B?ek5jQzlwTlEzWlpjZU5vOElaTkRjWkZ5ejNaa0FYaGJleGovWVJzRytYMVo3?= =?utf-8?B?SStZN0hvd2hDbUkrVUFOdW9YWE0xcHdXbDVmUWpMaHNOK2FlTWdVTlI5WnJN?= =?utf-8?B?Smo1cklUcHArZTZSa0JFdEppVlg3UnJQN0swalRDMUdmcWlpeGlzb2FLZEpa?= =?utf-8?B?elZMSEkzdXk5VEt5Y2N6VHk4bWNvTWpsVU5NNE5EWFR0eWNmbjlSSWxJRzR4?= =?utf-8?B?R0ZaeFg3a1FVRmN0cTF3aVR4UFViQVJFUjJ5V2lCbjVIZUhJN3M3WEFFZkVV?= =?utf-8?B?NVBkMk1ZcS9qNldPcnhsSjRLK1QzUXZaclpqV1R2VnVqTUI5dFp0NlZScUll?= =?utf-8?B?UFZPYUVGWFRUL081NTJtTEpjak5LQzF0V2ZqQUxOTHpZamxlUlZxZVNnT2M1?= =?utf-8?B?endzSWdNREQ4eXFPNU5wbnJtR1lmMVQwRWY2MXZ6MVFiWWJoSWhSU3kxaldC?= =?utf-8?B?eXlqWlBKaFJGVkNsaVU4SHJRZjBJdExZNjNoMjNzbjFUYXQ2V1Byam1EUmpp?= =?utf-8?B?czZ0cENXQzgxN3B1cHljOTdhWHVBN2t6aFR6SG9lZVFVN0FWbTlJbGpmWWJi?= =?utf-8?B?NUpJYnNOOEJXOVVCUHQzNis2SFk4Z3d0NlQ2YytHNGJVVyt1M2VtNzN1VTdK?= =?utf-8?B?WU5BL2lmUEpvbUVwL21lNVg0cHdSdkk2cE90VlBmbXprZmd2bDlRNmpMb0FP?= =?utf-8?B?YTRTSzI2eUE4ejhEWkw4M3BYMUd0OEpsTktEUFE3eW9jNGoreDBHS1hiS0Ny?= =?utf-8?B?Ry83TEZsdkh2dXUrZitSWDl6ck80MkxUOEJMVitncTR2SjhCc3g1aDNjdEFx?= =?utf-8?B?WEdZRUxqNHNoem00VXlGTDhOdytxeDhjQzJhRXR5bU1aRUZBMWpuL0svSWxo?= =?utf-8?B?QTZyZVlqWnZkbmxCNDAzZ29ycjBjLzJsMkdDMlB1WGc5NFVTTSs2ODd4UkJl?= =?utf-8?B?UmNLWjZTU2JwUk8yYi9RSjZIS2N5bit2VFV1TEJIWE1LRTcwQm5HZU9YSU9n?= =?utf-8?Q?VQ1Jo8/dCAWnS9Uc4l2cUFQ=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cf993b3-0cdb-47dc-81fa-08dd34c558b0 X-MS-Exchange-CrossTenant-AuthSource: CH0PR01MB6873.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jan 2025 18:00:35.8585 (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: 90R9If3ZAkP0NpLzmJ5q/VWL5J8jgCzkx6xKEPQP3/wRht4OVWqjOJ6iIqNdCTsK+vpJ9hnwnBc1ujrk2/+wZp68Ypx/W/az0Z42dZSsB5c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR01MB7001 On 1/14/25 8:56 AM, David Hildenbrand wrote: > On 11.01.25 04:45, Liu Shixin wrote: >> syzkaller reported such a BUG_ON(): >> >>   ------------[ cut here ]------------ >>   kernel BUG at mm/khugepaged.c:1835! >>   Internal error: Oops - BUG: 00000000f2000800 [#1] SMP >>   ... >>   CPU: 6 UID: 0 PID: 8009 Comm: syz.15.106 Kdump: loaded Tainted: >> G        W          6.13.0-rc6 #22 >>   Tainted: [W]=WARN >>   Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015 >>   pstate: 00400005 (nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) >>   pc : collapse_file+0xa44/0x1400 >>   lr : collapse_file+0x88/0x1400 >>   sp : ffff80008afe3a60 >>   ... >>   Call trace: >>    collapse_file+0xa44/0x1400 (P) >>    hpage_collapse_scan_file+0x278/0x400 >>    madvise_collapse+0x1bc/0x678 >>    madvise_vma_behavior+0x32c/0x448 >>    madvise_walk_vmas.constprop.0+0xbc/0x140 >>    do_madvise.part.0+0xdc/0x2c8 >>    __arm64_sys_madvise+0x68/0x88 >>    invoke_syscall+0x50/0x120 >>    el0_svc_common.constprop.0+0xc8/0xf0 >>    do_el0_svc+0x24/0x38 >>    el0_svc+0x34/0x128 >>    el0t_64_sync_handler+0xc8/0xd0 >>    el0t_64_sync+0x190/0x198 >> >> This indicates that the pgoff is unaligned. After analysis, I confirm >> the vma is mapped to /dev/zero. Such a vma certainly has vm_file, but >> it is set to anonymous by mmap_zero(). So even if it's mmapped by >> 2m-unaligned, it can pass the check in thp_vma_allowable_order() as it >> is an anonymous-mmap, but then be collapsed as a file-mmap. >> >> It seems the problem has existed for a long time, but actually, since >> we have khugepaged_max_ptes_none check before, we will skip collapse it >> as it is /dev/zero and so has no present page. But commit d8ea7cc8547c >> limit the check for only khugepaged, so the BUG_ON() can be triggered >> by madvise_collapse(). >> >> Add vma_is_anonymous() check to make such vma be processed by >> hpage_collapse_scan_pmd(). >> >> Fixes: d8ea7cc8547c ("mm/khugepaged: add flag to predicate >> khugepaged-only behavior") >> Signed-off-by: Liu Shixin >> --- >> v1->v2: Remove the redundant vm_file check, suggested by Matthew Wilcox. >> >>   mm/khugepaged.c | 4 ++-- >>   1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/mm/khugepaged.c b/mm/khugepaged.c >> index 653dbb1ff05c..bad1e130eda8 100644 >> --- a/mm/khugepaged.c >> +++ b/mm/khugepaged.c >> @@ -2422,7 +2422,7 @@ static unsigned int >> khugepaged_scan_mm_slot(unsigned int pages, int *result, >>               VM_BUG_ON(khugepaged_scan.address < hstart || >>                     khugepaged_scan.address + HPAGE_PMD_SIZE > >>                     hend); >> -            if (IS_ENABLED(CONFIG_SHMEM) && vma->vm_file) { >> +            if (IS_ENABLED(CONFIG_SHMEM) && !vma_is_anonymous(vma)) { >>                   struct file *file = get_file(vma->vm_file); >>                   pgoff_t pgoff = linear_page_index(vma, >>                           khugepaged_scan.address); >> @@ -2768,7 +2768,7 @@ int madvise_collapse(struct vm_area_struct >> *vma, struct vm_area_struct **prev, >>           mmap_assert_locked(mm); >>           memset(cc->node_load, 0, sizeof(cc->node_load)); >>           nodes_clear(cc->alloc_nmask); >> -        if (IS_ENABLED(CONFIG_SHMEM) && vma->vm_file) { >> +        if (IS_ENABLED(CONFIG_SHMEM) && !vma_is_anonymous(vma)) { >>               struct file *file = get_file(vma->vm_file); >>               pgoff_t pgoff = linear_page_index(vma, addr); > > Acked-by: David Hildenbrand > > The whole CONFIG_SHMEM is all weird and needs to be cleaned up ... at > some point. > > BTW, do we correctly handle MAP_PRIVATE of these files, where we would > have vma->vm_file and !vma_is_anonymous(vma), but could end up having > anonymous pages in there? I think so. There are a couple of cases if I don't miss something: 1. non-shmem: khugepaged just supports collapse read-only opened regular file at this point, there should be no anonymous pages in this case 2. Shmem:     2.1. small folios in page cache: it should be fine to collapse page cache itself even though there are anonymous pages     2.2. large folios in page cache: khugepaged should bail out from collapse_pte_mapped_thp() if CoW'ed anonymous folio is met