From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11023137.outbound.protection.outlook.com [52.101.127.137]) (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 0EA55270EC3 for ; Mon, 22 Jun 2026 10:40:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.137 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782124841; cv=fail; b=ncUnrJd5QsGIh4Xnji2sHCP658ndBP/1KC5bVOfVGx/wb81W9WFOLgXpduxmROupAZOlLeNjmwhxDJ9pawwM6A09HRDjzzh4eaUHqjYO3lX2mHprXNFJvCDkzyFl37Dm39yVpq9vGo0TzNPGwBw5ACKFaIeqIqIcal57O33T3jI= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782124841; c=relaxed/simple; bh=RJZtrV4MyA25tnUWkd4KzvAdhiej4yrRM3FxXLcXgHQ=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=rkgiNrkIKItFNCIEXf8qm1Ef2GVA77bZRnMc/e+JgXprtlnPQvBjgg7/k6a7plzWz0FBJYgGDHxUpD9x7ArAmRKDQsShKqhbGUVlLJBwXdAJiyNqkweOV59oOtuz9QbtkvI6JrFBv3ZNjHKjsjrdkK08Bsw4FyY/bDmW6gMFY9k= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amlogic.com; spf=pass smtp.mailfrom=amlogic.com; dkim=pass (2048-bit key) header.d=amlogic.com header.i=@amlogic.com header.b=JrZ1e2sY; arc=fail smtp.client-ip=52.101.127.137 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amlogic.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=amlogic.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=amlogic.com header.i=@amlogic.com header.b="JrZ1e2sY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n7PRRrZ6jiQqIkTyf56kM5UlqY/I77PKYydb7CAGvFIDkE0yCrXLqegIvExCHpS8fWhzkS8VT92zPu+h14CZwLWXGsE1qQPvDcvp9mTQr6jKGOIEojfwVUeJjR0Wk5cJcLgLLa4fGb2F0yK7KVxWk6n0gVHxn2FKWQppBbaViaoPg2FrxZmbgxrcMWB/2qkLIQUHPKFUKUS/pzbLJOfcJ42cNd297Zl6c9Ii1mLKbxhd5vdWokkte8sSbYOl9kGrWSaJMnDSgPfd37Y9WfSxYUs21pIC57OSPhE19toN+tCrQYifePJsA/4AtzfZlLrYUrdK/KzJds4obCx9hd4Y/Q== 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=xWbiJiuA+KtoiJmrga5qA0gdKBMJQyvcnKVUg+SQlTc=; b=U46K97hMHLrrylFnP5EjG0SOrcCdQMnqi2P1grI8D7zwTIJB2CaoRGqkPbWL9KqbmPuYsng+o1HEEj9BxE76pEpppRFLEfUoOUpkwJCNRff11uMlS5/iSd//rOZzQyaIWpg5HJcZRKc1t6L3ojrMB0mGQf94HFjR9gCcZCueFvuL92E3Pbas/yIKW9tep8IEmDptUmZkkFcfRm4HdBPZPjXJ4nfuhLd7FDtkpAaZ1m0cA0cnAreOGFTSGwYGfa+Gd+lcOSyNXTprx4tgq5fHyNnIcFULGDFPDYAaom4/91nO3e6cDYpWL4zBOeIsA0Iz4lr9ZrokOsUqaLlQS0uH4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amlogic.com; dmarc=pass action=none header.from=amlogic.com; dkim=pass header.d=amlogic.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amlogic.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xWbiJiuA+KtoiJmrga5qA0gdKBMJQyvcnKVUg+SQlTc=; b=JrZ1e2sYcCRxRiScFeUORM5S736/w145YAzXtR7mdMa9/KE91aswYjxZWeZ/CQrAhHnso62B3RLFMrbNTk6EDslDyWB9rBxiTf/4S4gJaXrz+cGHNQ/OnJ5UwKHtT5e28i20nWEvUINQsSAGis4S/rI1CJh+aW8dSvevEY3c6L4RQ0tgbk/+vduQUwFwK9d6/N8OwjFdReDZm9HXcSkYgyOi4TKBRLurjIzFtYHFDwe5l+qKy7Tow765gME+qKNtz69APBCtuFzxjhGsyvYuDCyjmWxyq315MTWaAwKEf0hT5ZdKr45H2DBtFgOoV55P7WCFDa9AN0jsn9Rzp+ePGA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amlogic.com; Received: from TYUPR03MB7232.apcprd03.prod.outlook.com (2603:1096:400:354::5) by SEZPR03MB10282.apcprd03.prod.outlook.com (2603:1096:101:337::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.10; Mon, 22 Jun 2026 10:40:35 +0000 Received: from TYUPR03MB7232.apcprd03.prod.outlook.com ([fe80::525d:fa76:296a:a64f]) by TYUPR03MB7232.apcprd03.prod.outlook.com ([fe80::525d:fa76:296a:a64f%3]) with mapi id 15.21.0159.007; Mon, 22 Jun 2026 10:40:35 +0000 Message-ID: Date: Mon, 22 Jun 2026 18:40:32 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] f2fs: fix FG GC failure when file in victim is pinned To: Chao Yu , Jaegeuk Kim Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, jianxin.pan@amlogic.com, tuan.zhang@amlogic.com References: <20260620-origin-dev-v1-1-3b2e639e794c@amlogic.com> Content-Language: en-US From: Jiucheng Xu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: TYCP301CA0043.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:380::19) To TYUPR03MB7232.apcprd03.prod.outlook.com (2603:1096:400:354::5) 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: TYUPR03MB7232:EE_|SEZPR03MB10282:EE_ X-MS-Office365-Filtering-Correlation-Id: 3dd84ad3-068e-4fce-15a9-08ded04ab11d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|23010399003|18002099003|22082099003|6133799003|4143699003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: xUn4mf/UEyl01EStWKwZ4DamtemlPYY5kgb3msro3wx1iHN1+D5NXnv+h3mxQE69DH+bOHHu3QD9lNdiNPwa8w1sAD6FtoJAF456TQsSEKDqYgHLzkifPfTvaGvzWX5RGkdjxNw1P+97GPdMZi+BwW6kBmPySo+1U/yMg5zyPqd7Njc0vVTlvl7N8AI3rXhPuqhRGbRo9jdVduT4cEPpAR5woq+aGyd7Wk5gNOZ69zHKG7p2SqclOTzBZQQZVa4mhGnGVQ6Yq5gKRP/sk4kMEWhh5eLgnkDPaPUCYhskwZ2ZaFX4U0HGh+phCHsewAs9qoqh96CpcJSMMK/jqdZgoDo0cqWEkbHLo1sz3CeOdIdRaCaFciePmzvD7d0wAW22rJhr21K81ZwQCwBsBNlldpPqYE1JRIJ4EVXaii6YkBis6cYl93QkhtCqMegst851mf8iNav6Y9z1jiDH4pgxRLgntyLp8Cik7HAvLcfMZNoVqcB+ATWXbt8USv+89kzfIByA9Kvx49/gViaWuwn0tBh0UIYY7PPQsFfsi74Nvjpg3BFZIwXqnTGXJ2cj7N98A4sCpdFN/rQuDUQKPRNd4m86gRBUeXQbk/ufAH8qEIk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYUPR03MB7232.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(18002099003)(22082099003)(6133799003)(4143699003)(56012099006)(11063799006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MFhzTUtEeGtDR0VGVk5PRTR1amdKTEsxRWJ1TC8yVHhoRW9NYmVOT24rWlpD?= =?utf-8?B?eGhPQmFNUWcrSjAvSC82VmJ3ODI5eS9rTm9tMGpHS1VTeU83c2xkY285RGZp?= =?utf-8?B?RnVBNDhheUpaMVNMK1FOc0JpbW9hS1VwdlhqalBwSWZCdXhxN2kxVGwvcndv?= =?utf-8?B?azVGNERkZ2FWYzFkSE9UYUJ6TXB5N2JjbnU2VEFISGlpc1hCVWpOVTFKMXlJ?= =?utf-8?B?K1lxM0tSbTZkOVpsYnQxL3RGbHhiT0RqcStOSlArajlQai9GL0pzQ2NKc3BQ?= =?utf-8?B?WUU3SVViV1lrTDRhbTdIM3RFRXAzekhpbktrbHhLRWJTT0taMVlBK2tCNHll?= =?utf-8?B?R2J0em1XVHdwV3A0L3VBS0tIT053NXdhRVRSWkI5Ui9PVjRFYkdLYUcwbERB?= =?utf-8?B?N09oZzRHc2JlSVg2ODYxcUFlY3BFWmlxNVQyRnN1UDNFNDdQRjA0QXAyRGVi?= =?utf-8?B?V2phVW10VC81eWZOVno3VW9VTmNFaWFyL1FuN0hVZzNrOTZEQkVOWlZFeXZi?= =?utf-8?B?bXBUemlkcjE3c0dvUTN6N0o4TktkNUtvZWdmUEVkeTdXamFtUGJsMXlOZlhw?= =?utf-8?B?aDd3TGZNVmxMRHFLdVRkMVBXeGNrM25GRWV4ek4zWXpzbFVTUkNHU2FwVXdS?= =?utf-8?B?NjFiRTR1RExLVHY1enU3MjEvMkR2RXJJdFducXFpVlJ3cnlObzF6QXlpTTg3?= =?utf-8?B?M1dOcFh3S0o4K0VVMDY5ZXRQbGhrdndyV3BxYUtGVFJoSXdnbWtUUWtWK1Ny?= =?utf-8?B?TG44b2w3MEovT0tjRzVyZ2wySUVWdVVXMlFWLyt6dE9IVDNQVlFWSDhIblBV?= =?utf-8?B?bFh3UG9HRVdmTFBwencvcXludEwyQmFJY3o5WVFadVVOS1V4bEdLNndMNXEx?= =?utf-8?B?VlBFd1NMaDQ3NTErRC9nUlZTeVB0bFpSeVhyTXpTa1g5T0tNSVVhQkdFelZW?= =?utf-8?B?V2cwRmxERS8yY082bWxPTVc4dVMvRm1UU3J6ek9KdzR4Y2FjbnMyWjErTVFG?= =?utf-8?B?U3M1dUpjM05GWGVuVyt3QlFuQjhrN09wU0t3enFUQTJKVVJrcDZ5UFl3aHB1?= =?utf-8?B?TTVzU1FQaytwOUFCeXZPUktQOUhCRFhyMm51RDZvNEU3RE15Wi9XMEZ1SjVT?= =?utf-8?B?ZXh3WUhPZlBlMGh0VWVLTHZ5TkdGTkt5dWVNWm0vYS9ldkZOVFc5NnpaNy9P?= =?utf-8?B?dHpxdFlnRlpZYXdVbXNRMWRWbWpYY2p1Q3JPd0FSTkE2eGhlSSt4V2txaHBR?= =?utf-8?B?U0dFNVFZOE9ZcnVJWGFvMTJsTW9jWEJTeHprM2RoeHRPRlJFclZmb1ZIOWF4?= =?utf-8?B?MWNxOGFQZHhCSE1jVHVWdHZwNWtmbGNZWGhaVnhvMlBGK204R2doSFBIdS9u?= =?utf-8?B?VENkRnErd2NWNG1uM0Z6ajdsQm5qYVFLUWxZNGI4aWI2ZCswVW41Qkd0c2Q4?= =?utf-8?B?SUZ3T2JyS0NxeGtvQ0NSREVUS05IOTNwWUkxOUt4ZTJOYng3dlVCUE1iRk90?= =?utf-8?B?UTNjbU9vdEFQVWFodVhNM2d2MFJrTmVSTnpsZkdVOVFjd1F1OSswdHozSG43?= =?utf-8?B?YU1rMXB6S241Vm5EV09PL1QyaTBDNnlMWXdsWTJHZHJZR0JBcWZQditrd0t4?= =?utf-8?B?emF6TFlJV3dQUHpLSjBQZGJ6K0gwNnlaUEFrQ0MvdTV3SG1zNHByY003Ulo5?= =?utf-8?B?c0NJVkhJY1I3UEF5N3ZkK2NSWmlqWGovZXVqOU1vTkdPcWdWVDRJQitxZTlN?= =?utf-8?B?c3g5WGJhemVGN0YzSkJkcExva2d6MmNDc3VDZHZYRUJkNWxUWDU3NlA1Y1hl?= =?utf-8?B?clhlZGZicUlNUkNiOEhFZXM4bklyQmQzaXZuc0J0eVAvQ0hlaUJrMmFsQjNO?= =?utf-8?B?M1plSjJHOXBHMU9RYXIvZWRNZ2dHOW9jREpMekk4TEwxUkZKdzFzd204SlFh?= =?utf-8?B?Um1USDM4UjhFUHhVSmFKTjlUMzFZS1RwRFBiaDVuYUtmcFo4cDdQS2xNcWw3?= =?utf-8?B?NVNNUUxaZmgzQWVESjc3amFERHBZMTExR2FGVDcxeVdTSlFDWWkwbGxWVEFr?= =?utf-8?B?NkVlVWU2cjhRWEsxcnE2a2VrZHBnbmsxMUlYTzQ5eSs3V2lpTklMcjJxbVRG?= =?utf-8?B?dW9jcE1UYVZ1TkpiSGhiWDNwNzI2S3h1ck9aNUo5cGlzaEVveVJ1STY2NTc0?= =?utf-8?B?ais3ajlaSUFoTmdNV1dORHNSb28rcC9NYUovUGZiWHJBL0ZlSkhCTW5SeGFD?= =?utf-8?B?b1h2K1M5V2JQV21ocXpvS2tUU2hpYlM5MUdkSFVpU29KQTA1UWVXcWpqNFh0?= =?utf-8?B?Um9sZUdSYU9mQ1Fka2R4T1NPSG5vQ0lhQXhBMmdUYm83UHp3SWxVZz09?= X-OriginatorOrg: amlogic.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3dd84ad3-068e-4fce-15a9-08ded04ab11d X-MS-Exchange-CrossTenant-AuthSource: TYUPR03MB7232.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2026 10:40:35.2355 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0df2add9-25ca-4b3a-acb4-c99ddf0b1114 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: alYX9qOzklk91cWpUqtFBx+y00GNq7lFDeT12LPelqUWXRfoFvZDsySiid1ZHciCTmaZ4WaSe8HPY/ewjZvcfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR03MB10282 On 6/22/2026 9:46 AM, Chao Yu wrote: > [Some people who received this message don't often get email from > chao@kernel.org. Learn why this is important at https://aka.ms/ > LearnAboutSenderIdentification ] > > [ EXTERNAL EMAIL ] > > On 6/20/26 17:34, Jiucheng Xu via B4 Relay wrote: >> From: Jiucheng Xu >> >> When continuous write operations occur in the system, BG GC fails to >> work. This leads to large dirty_segments and small free_segments. If >> fallocate() is performed on a pinned file with the allocated space >> exceeding the free_segment, FG_GC reclamation fails. >> >> The reason is that the file corresponding to the block in the victim is >> pinned, causing gc_data_segment() to fail. Since the condition sec_freed > > Jiucheng, > > pinned file should be aligned to section size, why there is fragmented > blocks > of pinfile locates in dirty sections? > >> < gc_control->nr_free_secs isn't satisfied, GC stops, resulting in the >> failure of f2fs_fallocate() allocation. >> >> Setting gc_control->nr_free_secs = 1 make FG GC continue searching >> for new victim. > > Maybe we can try this instead of changing f2fs_expand_inode_data() logic: > 1. call fggc via ioctl or trigger urgent gc via sysfs > 2. fallocate on pinfile, goto 1) if it failed > > But, anyway, I suspect it's risk, if there is no normal dirty section, > FGGC will try to call f2fs_unpin_all_sections(), then migrate dirty section > which has pinned blocks, that will cause more damage. > > Can you please figure out why pinfile is fragmented first... Hi Chao, Thanks for your feedback. I just do a test to simulate the Android OTA createCowImage failed when dirty_segments is too large. Simple reproduction steps: 1. In my case, dirty_segments=969, free_segments=96, free space = 1.7G, section:segment = 1:1 2. touch a.bin 3. f2fs_io pinfile set a.bin 4. fallocate -l 1.5G a.bin And f2fs_fallocate() returns -11. Although the urgent mode work fine, but it is not very convenient to control since AOPS has a great deal of code that calls fallocate. I have tried 5 times to fallocate(), but GC always selects the same victim segno. So I think it is an issue. The trace: f2fs_get_victim: dev = (254,0), type = No TYPE, policy = (Foreground GC, LFS-mode, Greedy), victim = 624, cost = 19... f2fs_gc_end: dev = (254,0), ret = 0, seg_freed = 0, sec_freed = 0, nodes = 117, dents = 0, imeta = 98, free_sec:50, free_seg:50, rsv_seg:47, prefree_seg:47 I dump the failed victim segno, block offset in segment and related inode ino: do_garbage_collect: ino=33902 segno=624 off=132 The dump of pinfile 33902 info: main_blkaddr [0x 2600 : 9728] i_inline [0x 61 : 97] inline shows the file is pinned (0x60) i_addr[0x9] [0x 2f7b2 : 194482] i_addr[0xa] [0x 2f7b3 : 194483] i_addr[0xb] [0x 2f7b4 : 194484] ... i_addr[0x1d] [0x 2f7c6 : 194502] i_addr[0x1e] [0x 465af : 288175] i_addr[0x1f] [0x 465b0 : 288176] ... i_addr[0x21] [0x 465b2 : 288178] i_addr[0x22] [0x 5046d : 328813] i_addr[0x23] [0x 5046e : 328814] i_addr[0x24] [0x 505b6 : 329142] i_addr[0x25] [0x 505b7 : 329143] i_addr[0x26] [0x 505b8 : 329144] i_addr[0x27] [0x 50684 : 329348] i_addr[0x28] [0x 50685 : 329349] The file is created by logcat,and looks like indeed fragmented. Calculate the block address: 624 * 512 + 132 + 9728(main_blkaddr) = 329348 So the i_addr[0x27] = 329348 is the failed block. Regarding "why the pinfile is fragmented" you said, we use v5.15 + android U. Is it that v5.15 lacks some patches for special handling of pinfiles? Thanks, > > Thanks, > >> >> Signed-off-by: Jiucheng Xu >> --- >>   fs/f2fs/file.c | 2 +- >>   1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c >> index >> 8acdd94272a0ced448e0ba21635d702cfec10682..3e49a73bbf3a184a314e97bff9509a66c27eac00 100644 >> --- a/fs/f2fs/file.c >> +++ b/fs/f2fs/file.c >> @@ -1883,7 +1883,7 @@ static int f2fs_expand_inode_data(struct inode >> *inode, loff_t offset, >>                       .init_gc_type = FG_GC, >>                       .should_migrate_blocks = false, >>                       .err_gc_skipped = true, >> -                     .nr_free_secs = 0 }; >> +                     .nr_free_secs = 1 }; >>       pgoff_t pg_start, pg_end; >>       loff_t new_size; >>       loff_t off_end; >> >> --- >> base-commit: b51f606aa323d553d786ed681a213f134dc688d6 >> change-id: 20260620-origin-dev-99cdccc83800 >> >> Best regards, >