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 lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BE887E9413E for ; Tue, 30 Dec 2025 09:27:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Type:Content-Transfer-Encoding:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:In-Reply-To:References:To:MIME-Version:Date: Message-ID:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=otgwSsuUD93Fug6qxg38CwZlozKMqhcru6EoMg8qYo8=; b=JG3lmWApozwIvT0fkGZfHpijZr 7jHJOl5Ng9viq7cgHJviNq9/AnLk2wfY/HJQWTmfxRW2pCK8yODTLS21qhytsO0my28Yw2VuTb8iQ 1+4qd6ZWns6H+SZMsPUvHRLFGTW7SJ+Cisa67m4NUq84QiKSynoUoVCrJuRqcHCjwMPs=; Received: from [127.0.0.1] (helo=sfs-ml-3.v29.lw.sourceforge.com) by sfs-ml-3.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1vaW0v-0005jf-5j; Tue, 30 Dec 2025 09:27:37 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-3.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vaW0t-0005jY-FE for linux-f2fs-devel@lists.sourceforge.net; Tue, 30 Dec 2025 09:27:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: From:References:To:Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=UITd8v7dERhSSqo9r4ajSEYVNfSYMZrDzRx9n3MNGuU=; b=DlPnfH8dBv2pY2QhmFu4cSV8zV QnkDqGaFivwmwoSqWOKg/Z11wj3pWlR//qSqJ2+ZpKK2biaCn7hmzw9CDtuy7K8tHgCeIf581WoZJ 0KSjYTxZFPJhneJDhfOF/lX3/BAof3LKmOr+m46kiyOE7KbxBNSoo392Qskat6Ley93c=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:To: Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=UITd8v7dERhSSqo9r4ajSEYVNfSYMZrDzRx9n3MNGuU=; b=Odio361CdspsZ4ubFe1YXBDF75 wTT4wPrW4f374gtetNdqkqwom7X3XeWZAzNwUjBqBhXHYcj0iPXN4OabRFEdkPZW3qORp6G+vyNFl HV3RWFWQJVWWgd1//20Kxe9OuoYf0S5du4idNzBo0ZPRm03SX0MK7xC75yUdMaifKVFI=; Received: from sea.source.kernel.org ([172.234.252.31]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1vaW0s-0002Vb-W9 for linux-f2fs-devel@lists.sourceforge.net; Tue, 30 Dec 2025 09:27:35 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 9B5F144201; Tue, 30 Dec 2025 09:27:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C733C116C6; Tue, 30 Dec 2025 09:27:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767086849; bh=mfqEohqL7TWMMnMvyKRo3p73IonKMFrOyhFeGU30svc=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=Y/Lpm9tO50PyKww+bs9gyyyHybFTluhcM8cM4NDxHZDA7YwLljQ1IAucG45ifoGkC e68m+m39PWixdbT26IrQw1T8CRyFvgCdQ8t/jM1NawqLYTyMk+/15u7WxwIOxh+Aqg rrgmabVOAZxlemsNDHi81AldxeyAo/nqPrCsYWd7Mz2V3t704ry94mXcNKVzyQ8CV3 H15uIIGzqstRde7UB1YlwN7/zihRlumcR1mPqhUUtBFxsBJV1ZPPRHZ9ZmQgVRH27o fHv+srfi3HGt3uyjdkzyQMpmNU6vaO5H8UtxePzxg+vDalfc3whOI8/nP9ZVse4KKa Uu0dFanA3FcRA== Message-ID: Date: Tue, 30 Dec 2025 17:27:26 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Jeuk Kim , jaegeuk@kernel.org References: Content-Language: en-US In-Reply-To: X-Headers-End: 1vaW0s-0002Vb-W9 Subject: Re: [f2fs-dev] Question: batching block allocation in f2fs DIO path X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Chao Yu via Linux-f2fs-devel Reply-To: Chao Yu Cc: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, Jeuk Kim Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net SGkgSmV1aywKCk9uIDEyLzI5LzIwMjUgMjozMyBQTSwgSmV1ayBLaW0gd3JvdGU6Cj4gSGkgRjJG UyBtYWludGFpbmVycywKPiAKPiBTb3JyeSBmb3IgdGhlIGR1cGxpY2F0ZSDigJQgSeKAmW0gcmVz ZW5kaW5nIHRoaXMgYmVjYXVzZSB0aGUgcHJldmlvdXMKPiBtZXNzYWdlIHdhcyBzZW50IGluIEhU TUwgZm9ybWF0Lgo+IAo+IEnigJl2ZSBiZWVuIGxvb2tpbmcgaW50byB0aGUgRElPIGFsbG9jYXRp b24gcGF0aCBpbiBmMmZzLCBzcGVjaWZpY2FsbHkKPiB3aGVuIGEgRElPIHdyaXRlIG5lZWRzIHRv IGFsbG9jYXRlIG5ldyBibG9ja3MgKGUuZy4sIGhvbGUtZmlsbGluZykuCj4gIEZyb20gZjJmc19t YXBfYmxvY2tzKCkgdGhyb3VnaCBfX2FsbG9jYXRlX2RhdGFfYmxvY2soKSDihpIKPiBmMmZzX2Fs bG9jYXRlX2RhdGFfYmxvY2soKSwgaXQgc2VlbXMgZWFjaCBibG9jayBhbGxvY2F0aW9uIGlzIGhh bmRsZWQKPiBvbmUtYnktb25lLCB0YWtpbmcgY3Vyc2VnX2xvY2svY3Vyc2VnX211dGV4IGFuZCB0 aGUgU0lUIHNlbnRyeSBsb2NrCj4gcGVyIGJsb2NrLgo+IAo+IEnigJltIHdvbmRlcmluZyB3aGV0 aGVyIGJhdGNoaW5nIGFsbG9jYXRpb25zIChhIGJvdW5kZWQgYmF0Y2gsIGUuZy4sIGEKPiBzbWFs bCBydW4gd2l0aGluIHRoZSBjdXJyZW50IHNlZ21lbnQpIGNvdWxkIGJlIGZlYXNpYmxlIGluIHRo ZSBESU8KPiBwYXRoLiBNeSBpbnR1aXRpb24gaXMgdGhhdCB3aXRoIG11bHRpcGxlIHRocmVhZHMg ZG9pbmcgRElPLCByZWR1Y2luZwo+IHBlci1ibG9jayBsb2NrIGNvbnRlbnRpb24gYW5kIGltcHJv dmluZyBzZXF1ZW50aWFsaXR5IGNvdWxkIGhlbHAKPiB0aHJvdWdocHV0LgoKSSBhZ3JlZSB3LyB5 b3UuCgo+IAo+IFF1ZXN0aW9uczoKPiAKPiBJcyB0aGVyZSBhIHRlY2huaWNhbCBvciBjb3JyZWN0 bmVzcyByZWFzb24gdGhhdCBtYWtlcyBiYXRjaGluZyBmb3IgRElPCj4gaW5mZWFzaWJsZSAoZS5n LiwgTEZTL1NTUi9HQyBpbnRlcmFjdGlvbnMsIHN1bW1hcnkvU0lUIHVwZGF0ZQo+IG9yZGVyaW5n LCBldGMuKT8KPiAKPiBPciBpcyB0aGlzIHNpbXBseSBhbiBvcHRpbWl6YXRpb24gdGhhdCBoYXNu 4oCZdCBiZWVuIGltcGxlbWVudGVkPwoKSSd2ZSBpbXBsZW1lbnRlZCBhIHByb3RvdHlwZSBvZiBt dWx0aXBsZSBibG9jayBhbGxvY2F0aW9uIGZvciBhbnkgcG90ZW50aWFsCnVzZSBjYXNlczogcGlu ZmlsZSBmYWxsb2NhdGlvbiwgZGlyZWN0IElPIGFuZCBidWZmZXJlZCBJTy4gSSBjYW4gc2VlIGJl bmVmaXRzCmZyb20gbXkgcHJldmlvdXMgdGVzdC4KCkkgcGxhbiB0byB1cHN0cmVhbSBhbGwgaW1w bGVtZW50YXRpb25zLCBidXQgSSB0aGluayBJIG5lZWQgbW9yZSB0aW1lIHRvIGNsZWFuCnVwIHRo ZSBkcmFmdCBjb2RlcyBhbmQgY2hlY2sgYWxsIGNvcm5lciBjYXNlcy4KCllvdSBjYW4gY2hlY2sg dGhlIE1CQSBpbXBsZW1lbnRhdGlvbiBmb3IgcGluZmlsZSB1c2UgY2FzZSBpbiBiZWxvdyBsaW5r LCBJCmd1ZXNzIHRoaXMgdmVyc2lvbiBpcyBjbG9zZSB0byB1cHN0cmVhbS4KCmh0dHBzOi8vZ2l0 aHViLmNvbS9jaGFzZXl1L2YyZnMtZGV2L2NvbW1pdHMvZmVhdHVyZS9pbmJhdGNoX3dyaXRlCgpU aGFua3MsCgo+IAo+IElmIHRoaXMgc2VlbXMgYWNjZXB0YWJsZSwgd291bGQgeW91IGNvbnNpZGVy IHBhdGNoZXMgaW4gdGhpcyBkaXJlY3Rpb24/Cj4gCj4gSWYgdGhlcmUgYXJlIHByaW9yIGRpc2N1 c3Npb25zIG9yIGtub3duIGlzc3VlcyBvbiB0aGlzLCBJ4oCZZCBhcHByZWNpYXRlIHBvaW50ZXJz Lgo+IAo+IFRoYW5rcyBmb3IgeW91ciB0aW1lLgo+IAo+IEJlc3QgcmVnYXJkcywKPiBKZXVrIEtp bQoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZv cmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51 eC1mMmZzLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 ED8FC274B46 for ; Tue, 30 Dec 2025 09:27:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767086850; cv=none; b=ub4hkEaTyiTESdvR5Hp1VLIQnB/S9KV6hQV6EUG0IMZF1vx4pa6y7ojMAmlcA+1q1M0auEEmgM5OE+GDz2VyHEf4/huqKy35p/UYwMKG47jRFcgTHyNXoWw3E1jrp5bA9lmyFORsZtBmYqk74O2rZ/EpaJHtzG1SnPvm+4pvx68= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767086850; c=relaxed/simple; bh=mfqEohqL7TWMMnMvyKRo3p73IonKMFrOyhFeGU30svc=; h=Message-ID:Date:MIME-Version:Cc:Subject:To:References:From: In-Reply-To:Content-Type; b=d+uAjCTTpy9hjMMs090kEXFajo0Yde8qH/juZoaotfjLI9IpEfKhcxeWzE4Tvgj3arkFLjJf7w8bNFDdDezf+J0Xh/l53HWqSpGjUvZvs4tqNAUkNpwFCxd35Fnl89kISdaUOcjJEwIra39c605vdcj8P6QTJS+qSxckwd6QUZc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y/Lpm9tO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y/Lpm9tO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C733C116C6; Tue, 30 Dec 2025 09:27:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767086849; bh=mfqEohqL7TWMMnMvyKRo3p73IonKMFrOyhFeGU30svc=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=Y/Lpm9tO50PyKww+bs9gyyyHybFTluhcM8cM4NDxHZDA7YwLljQ1IAucG45ifoGkC e68m+m39PWixdbT26IrQw1T8CRyFvgCdQ8t/jM1NawqLYTyMk+/15u7WxwIOxh+Aqg rrgmabVOAZxlemsNDHi81AldxeyAo/nqPrCsYWd7Mz2V3t704ry94mXcNKVzyQ8CV3 H15uIIGzqstRde7UB1YlwN7/zihRlumcR1mPqhUUtBFxsBJV1ZPPRHZ9ZmQgVRH27o fHv+srfi3HGt3uyjdkzyQMpmNU6vaO5H8UtxePzxg+vDalfc3whOI8/nP9ZVse4KKa Uu0dFanA3FcRA== Message-ID: Date: Tue, 30 Dec 2025 17:27:26 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: chao@kernel.org, Jinyoung Choi , Jeuk Kim , linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Subject: Re: Question: batching block allocation in f2fs DIO path To: Jeuk Kim , jaegeuk@kernel.org References: Content-Language: en-US From: Chao Yu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Jeuk, On 12/29/2025 2:33 PM, Jeuk Kim wrote: > Hi F2FS maintainers, > > Sorry for the duplicate — I’m resending this because the previous > message was sent in HTML format. > > I’ve been looking into the DIO allocation path in f2fs, specifically > when a DIO write needs to allocate new blocks (e.g., hole-filling). > From f2fs_map_blocks() through __allocate_data_block() → > f2fs_allocate_data_block(), it seems each block allocation is handled > one-by-one, taking curseg_lock/curseg_mutex and the SIT sentry lock > per block. > > I’m wondering whether batching allocations (a bounded batch, e.g., a > small run within the current segment) could be feasible in the DIO > path. My intuition is that with multiple threads doing DIO, reducing > per-block lock contention and improving sequentiality could help > throughput. I agree w/ you. > > Questions: > > Is there a technical or correctness reason that makes batching for DIO > infeasible (e.g., LFS/SSR/GC interactions, summary/SIT update > ordering, etc.)? > > Or is this simply an optimization that hasn’t been implemented? I've implemented a prototype of multiple block allocation for any potential use cases: pinfile fallocation, direct IO and buffered IO. I can see benefits from my previous test. I plan to upstream all implementations, but I think I need more time to clean up the draft codes and check all corner cases. You can check the MBA implementation for pinfile use case in below link, I guess this version is close to upstream. https://github.com/chaseyu/f2fs-dev/commits/feature/inbatch_write Thanks, > > If this seems acceptable, would you consider patches in this direction? > > If there are prior discussions or known issues on this, I’d appreciate pointers. > > Thanks for your time. > > Best regards, > Jeuk Kim