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 6974BD1267E for ; Tue, 5 Nov 2024 10:39:48 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1t8GyQ-0001BJ-QW; Tue, 05 Nov 2024 10:39:46 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1t8GyO-0001BC-OA for linux-f2fs-devel@lists.sourceforge.net; Tue, 05 Nov 2024 10:39:44 +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=OJYirEmOIzCqSYDnDoxjtJww+57AsvNB/HWrjHfvG38=; b=J3XdEXuxKntCQ66/UTTXOe8h94 XBgLmaGhqQ3szFNGqcVoeCP+w5t2XT7+a5t34fuiOYHlMlCT7u4uxOpPDa4IHUKkqke3tBc1eefw9 M9SeYHt+TC8lJPxVeOYEOjFCLmbnxnCF+ZRKlVnTQ+pdjXD5V6XT5N7upBZSI31VBnQ8=; 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=OJYirEmOIzCqSYDnDoxjtJww+57AsvNB/HWrjHfvG38=; b=AaVKW5eu7ObiDxnY5fOTMUx5fr JAu2nBjZd4iXlf57rZQQDe83c7CKTkTIVnJkuW5h+tLtNtbGvtR71NA01B5Yeky+U8kCZyS+zRXLQ aSAI08wEzJtgiiFUCYVElLQOM50vBImqVelDyvUEcFTT7XFDOeY4bsDwyoJVCZA9H85U=; Received: from nyc.source.kernel.org ([147.75.193.91]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1t8GyH-0002z8-Uj for linux-f2fs-devel@lists.sourceforge.net; Tue, 05 Nov 2024 10:39:44 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 124DAA42A94; Tue, 5 Nov 2024 10:37:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D43ABC4CECF; Tue, 5 Nov 2024 10:39:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1730803171; bh=3/xAX4B7Wj8zuIXV6aOmApU6XauE3kcnSEIfW53M1Gg=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=rnxecJvql01bCuAChTZME/JJL8upUBjFgdncpmNuW8lwhBv+cJRaGBj+giiHbtAeu B/wEBXO38BlW/kTBqOIfRVEM7a+32z84uHjUCQygS3Hb4hsk3C0OTcUJTsRAR1ZDwi q7JiA5v0uN880PYCw0MQb5a2IZlsCzM3U3s1fNuVN2JNtODySh+7lHjCJvAM3VmpMM 3IHAAv3t1SDDp8aUWq/5w5Cvlby0F5pbEPR6TwsfIxFSP7XpY0qiO/1u8s7b0xBO1h mPn0JaGVkMKFSAkBtOVyFRmzk9fd32xKVN+Tf8MHIGCsN60oHq6GtqZbCz9UpAKn+m zZF+fIhXrgGQQ== Message-ID: <22873055-370b-4240-83ff-96bcfa91413a@kernel.org> Date: Tue, 5 Nov 2024 18:39:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Zhiguo Niu References: <1730685372-2995-1-git-send-email-zhiguo.niu@unisoc.com> Content-Language: en-US In-Reply-To: X-Headers-End: 1t8GyH-0002z8-Uj Subject: Re: [f2fs-dev] [PATCH V2] f2fs: fix to adjust appropriate length for fiemap 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: ke.wang@unisoc.com, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, Zhiguo Niu , jaegeuk@kernel.org, Hao_hao.Wang@unisoc.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gMjAyNC8xMS81IDE1OjI4LCBaaGlndW8gTml1IHdyb3RlOgo+IENoYW8gWXUgPGNoYW9Aa2Vy bmVsLm9yZz4g5LqOMjAyNOW5tDEx5pyINeaXpeWRqOS6jCAxNTowNOWGmemBk++8mgo+Pgo+PiBP biAyMDI0LzExLzQgOTo1NiwgWmhpZ3VvIE5pdSB3cm90ZToKPj4+IElmIHVzZXIgZ2l2ZSBhIGZp bGUgc2l6ZSBhcyAibGVuZ3RoIiBwYXJhbWV0ZXIgZm9yIGZpZW1hcAo+Pj4gb3BlcmF0aW9ucywg YnV0IGlmIHRoaXMgc2l6ZSBpcyBub24tYmxvY2sgc2l6ZSBhbGlnbmVkLAo+Pj4gaXQgd2lsbCBz aG93IDIgc2VnbWVudHMgZmllbWFwIHJlc3VsdHMgZXZlbiB0aGlzIHdob2xlIGZpbGUKPj4+IGlz IGNvbnRpZ3VvdXMgb24gZGlzaywgc3VjaCBhcyB0aGUgZm9sbG93aW5nIHJlc3VsdHM6Cj4+Pgo+ Pj4gICAgLi9mMmZzX2lvIGZpZW1hcCAwIDE5MDM0IHlsb2cvYW5hbHl6ZXIucHkKPj4+IEZpZW1h cDogb2Zmc2V0ID0gMCBsZW4gPSAxOTAzNAo+Pj4gICAgICAgICAgIGxvZ2ljYWwgYWRkci4gICAg cGh5c2ljYWwgYWRkci4gICBsZW5ndGggICAgICAgICAgIGZsYWdzCj4+PiAwICAgICAgIDAwMDAw MDAwMDAwMDAwMDAgMDAwMDAwMDAyMGJhYTAwMCAwMDAwMDAwMDAwMDA0MDAwIDAwMDAxMDAwCj4+ PiAxICAgICAgIDAwMDAwMDAwMDAwMDQwMDAgMDAwMDAwMDAyMGJhZTAwMCAwMDAwMDAwMDAwMDAx MDAwIDAwMDAxMDAxCj4+Pgo+Pj4gYWZ0ZXIgdGhpcyBwYXRjaDoKPj4+IC4vZjJmc19pbyBmaWVt YXAgMCAxOTAzNCB5bG9nL2FuYWx5emVyLnB5Cj4+PiBGaWVtYXA6IG9mZnNldCA9IDAgbGVuID0g MTkwMzQKPj4+ICAgICAgIGxvZ2ljYWwgYWRkci4gICAgcGh5c2ljYWwgYWRkci4gICBsZW5ndGgg ICAgICAgICAgIGZsYWdzCj4+PiAwICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAzMTVmMzAw MCAwMDAwMDAwMDAwMDA1MDAwIDAwMDAxMDAxCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogWmhpZ3Vv IE5pdSA8emhpZ3VvLm5pdUB1bmlzb2MuY29tPgo+Pj4gLS0tCj4+PiBWMjogY29ycmVjdCBjb21t aXQgbXNnIGFjY29yZGluZyB0byBDaGFvJ3MgcXVlc3Rpb25zCj4+PiBmMmZzX2lvIGhhcyBiZWVu IG1vZGlmaWVkIGZvciB0ZXN0aW5nLCB0aGUgbGVuZ3RoIGZvciBmaWVtYXAgaXMKPj4+IHJlYWwg ZmlsZSBzaXplLCBub3QgYmxvY2sgbnVtYmVyCj4+PiAtLS0KPj4+ICAgIGZzL2YyZnMvZGF0YS5j IHwgNCArKy0tCj4+PiAgICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2RhdGEuYyBiL2ZzL2YyZnMvZGF0 YS5jCj4+PiBpbmRleCAzMDZiODZiMC4uOWZjMjI5ZCAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMv ZGF0YS5jCj4+PiArKysgYi9mcy9mMmZzL2RhdGEuYwo+Pj4gQEAgLTE5NjYsOCArMTk2Niw4IEBA IGludCBmMmZzX2ZpZW1hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmllbWFwX2V4dGVu dF9pbmZvICpmaWVpbmZvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPj4+ ICAgICAgICB9Cj4+Pgo+Pj4gLSAgICAgaWYgKGJ5dGVzX3RvX2Jsa3MoaW5vZGUsIGxlbikgPT0g MCkKPj4+IC0gICAgICAgICAgICAgbGVuID0gYmxrc190b19ieXRlcyhpbm9kZSwgMSk7Cj4+PiAr ICAgICBpZiAobGVuICYgKGJsa3NfdG9fYnl0ZXMoaW5vZGUsIDEpIC0gMSkpCj4+PiArICAgICAg ICAgICAgIGxlbiA9IHJvdW5kX3VwKGxlbiwgYmxrc190b19ieXRlcyhpbm9kZSwgMSkpOwo+Pgo+ PiBIb3cgZG8geW91IHRoaW5rIG9mIGdldHRpbmcgcmlkIG9mIGFib3ZlIGFsaWdubWVudCBmb3Ig bGVuPwo+Pgo+Pj4KPj4+ICAgICAgICBzdGFydF9ibGsgPSBieXRlc190b19ibGtzKGlub2RlLCBz dGFydCk7Cj4+PiAgICAgICAgbGFzdF9ibGsgPSBieXRlc190b19ibGtzKGlub2RlLCBzdGFydCAr IGxlbiAtIDEpOwo+Pgo+PiBBbmQgcm91bmQgdXAgZW5kIHBvc2l0aW9uIHcvOgo+Pgo+PiBsYXN0 X2JsayA9IGJ5dGVzX3RvX2Jsa3MoaW5vZGUsIHJvdW5kX3VwKHN0YXJ0ICsgbGVuIC0gMSwgRjJG U19CTEtTSVpFKSk7Cj4gSGkgQ2hhbywKPiBJIHRoaW5rIHRoaXMgd2lsbCBjaGFuZ2UgdGhlIGN1 cnJlbnQgY29kZSBsb2dpYwo+IC0tLS0tLS0tLS0tLS0KPiBpZiAoc3RhcnRfYmxrID4gbGFzdF9i bGspCj4gICAgICBnb3RvIG91dDsKPiAtLS0tLS0tLS0tLS0tCj4gZm9yIGV4YW1wbGUsIGEgZmls ZSB3aXRoIHNpemUgMTkwMDYsIGJ1dCB0aGUgbGVuZ3RoIGZyb20gdGhlIHVzZXIgaXMgMTYzODQu Cj4gYmVmb3JlIHRoaXMgbW9kaWZpY2F0aW9uLCAgbGFzdF9ibGsgPSAgYnl0ZXNfdG9fYmxrcyhp bm9kZSwgc3RhcnQgKwo+IGxlbiAtIDEpID0gKGlub2RlLCAxNjM4MykgPSAzCj4gYWZ0ZXIgdGhl IGZpcnN0IGYyZnNfbWFwX2Jsb2NrcygpLiBzdGFydF9ibGsgY2hhbmdlIHRvIGJlIDQsCj4gYWZ0 ZXIgdGhlIHNlY29uZCBmMmZzX21hcF9ibG9ja3MoKSwgZmllbWFwX2ZpbGxfbmV4X2V4dGVuIHdp bGwgYmUKPiBjYWxsZWQgdG8gZmlsbCB1c2VyIHBhcmFtZXRlciBhbmQgdGhlbgo+IHdpbGwgZ290 byBvdXQgYmVjYXVzZSBzdGFydF9ibGsgPiBsYXN0X2JsaywgdGhlbiBmaWVtYXAgZmxvdyBmaW5p c2hlcy4KPiBidXQgYWZ0ZXIgdGhpcyBtb2RpZmljYXRpb24sIGxhc3RfYmxrIHdpbGwgYmUgNAo+ IHdpbGwgZG8gZjJmc19tYXBfYmxvY2tzKCkgdW50aWwgcmVhY2ggdGhlIG1heF9maWxlX2Jsb2Nr cyhpbm9kZSkKClllcywgeW91J3JlIHJpZ2h0LCBob3dldmVyLCB3LyB0aGlzIHBhdGNoLCBpdCBt YXkgY2hhbmdlIGxhc3RfYmxrLCBlLmcuCgp4ZnNfaW8gZmlsZSAtYyAiZmllbWFwIC12IDAgMTkw MDYiIHZzIHhmc19pbyBmaWxlIC1jICJmaWVtYXAgLXYgMiAxOTAwNiIKc3RhcnRfYmxrIGFuZCBs YXN0X2JsayB3aWxsIGJlOiAwLCA0IGFuZCAwLCA1LgoKU2hvdWxkIHdlIHJvdW5kX3VwIGxlbiBh ZnRlciBzdGFydF9ibGsgJiBsYXN0X2JsayBjYWxjdWxhdGlvbj8KClRoYW5rcywKCj4gdGhhbmtz 77yBCj4+Cj4+IFRoYW5rcywKPj4KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKTGludXgtZjJmcy1k ZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQv bGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo= 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 218302EB1F for ; Tue, 5 Nov 2024 10:39:31 +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=1730803172; cv=none; b=e2n6XIj5FQnwyv2masYA/mOI21SXdrMQThnboZWhym32kpO1iCPiN8u9gqdAtud7KAzT4Vn0Q2Y2bV72+Btta6FBa5iBwgTb6iusMI7StnUH5J00I9UxmIh4G2x6PnQU980hpCsSonxUS0JvrUfVffLa72+GAdKafa5edFOMWP4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730803172; c=relaxed/simple; bh=3/xAX4B7Wj8zuIXV6aOmApU6XauE3kcnSEIfW53M1Gg=; h=Message-ID:Date:MIME-Version:Cc:Subject:To:References:From: In-Reply-To:Content-Type; b=Y88yc9Gq/0OXmWkkWQQTk8I0DlXGfA1qjAvAL2OsBmBMSoIcIVdcQQttwPjLcjTSpH7ql7OCLY3TrFaOQ+pMt5pNO4HzGKxNf/LMlOsuyYB41/AdsMRyKca/TMCtEz2MeHr70tGn90c35v9+eyQL2yDOlA8klYVjv1YM1cFWLVk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rnxecJvq; 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="rnxecJvq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D43ABC4CECF; Tue, 5 Nov 2024 10:39:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1730803171; bh=3/xAX4B7Wj8zuIXV6aOmApU6XauE3kcnSEIfW53M1Gg=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=rnxecJvql01bCuAChTZME/JJL8upUBjFgdncpmNuW8lwhBv+cJRaGBj+giiHbtAeu B/wEBXO38BlW/kTBqOIfRVEM7a+32z84uHjUCQygS3Hb4hsk3C0OTcUJTsRAR1ZDwi q7JiA5v0uN880PYCw0MQb5a2IZlsCzM3U3s1fNuVN2JNtODySh+7lHjCJvAM3VmpMM 3IHAAv3t1SDDp8aUWq/5w5Cvlby0F5pbEPR6TwsfIxFSP7XpY0qiO/1u8s7b0xBO1h mPn0JaGVkMKFSAkBtOVyFRmzk9fd32xKVN+Tf8MHIGCsN60oHq6GtqZbCz9UpAKn+m zZF+fIhXrgGQQ== Message-ID: <22873055-370b-4240-83ff-96bcfa91413a@kernel.org> Date: Tue, 5 Nov 2024 18:39:27 +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 Yu , Zhiguo Niu , jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, ke.wang@unisoc.com, Hao_hao.Wang@unisoc.com Subject: Re: [PATCH V2] f2fs: fix to adjust appropriate length for fiemap To: Zhiguo Niu References: <1730685372-2995-1-git-send-email-zhiguo.niu@unisoc.com> Content-Language: en-US From: Chao Yu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2024/11/5 15:28, Zhiguo Niu wrote: > Chao Yu 于2024年11月5日周二 15:04写道: >> >> On 2024/11/4 9:56, Zhiguo Niu wrote: >>> If user give a file size as "length" parameter for fiemap >>> operations, but if this size is non-block size aligned, >>> it will show 2 segments fiemap results even this whole file >>> is contiguous on disk, such as the following results: >>> >>> ./f2fs_io fiemap 0 19034 ylog/analyzer.py >>> Fiemap: offset = 0 len = 19034 >>> logical addr. physical addr. length flags >>> 0 0000000000000000 0000000020baa000 0000000000004000 00001000 >>> 1 0000000000004000 0000000020bae000 0000000000001000 00001001 >>> >>> after this patch: >>> ./f2fs_io fiemap 0 19034 ylog/analyzer.py >>> Fiemap: offset = 0 len = 19034 >>> logical addr. physical addr. length flags >>> 0 0000000000000000 00000000315f3000 0000000000005000 00001001 >>> >>> Signed-off-by: Zhiguo Niu >>> --- >>> V2: correct commit msg according to Chao's questions >>> f2fs_io has been modified for testing, the length for fiemap is >>> real file size, not block number >>> --- >>> fs/f2fs/data.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c >>> index 306b86b0..9fc229d 100644 >>> --- a/fs/f2fs/data.c >>> +++ b/fs/f2fs/data.c >>> @@ -1966,8 +1966,8 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, >>> goto out; >>> } >>> >>> - if (bytes_to_blks(inode, len) == 0) >>> - len = blks_to_bytes(inode, 1); >>> + if (len & (blks_to_bytes(inode, 1) - 1)) >>> + len = round_up(len, blks_to_bytes(inode, 1)); >> >> How do you think of getting rid of above alignment for len? >> >>> >>> start_blk = bytes_to_blks(inode, start); >>> last_blk = bytes_to_blks(inode, start + len - 1); >> >> And round up end position w/: >> >> last_blk = bytes_to_blks(inode, round_up(start + len - 1, F2FS_BLKSIZE)); > Hi Chao, > I think this will change the current code logic > ------------- > if (start_blk > last_blk) > goto out; > ------------- > for example, a file with size 19006, but the length from the user is 16384. > before this modification, last_blk = bytes_to_blks(inode, start + > len - 1) = (inode, 16383) = 3 > after the first f2fs_map_blocks(). start_blk change to be 4, > after the second f2fs_map_blocks(), fiemap_fill_nex_exten will be > called to fill user parameter and then > will goto out because start_blk > last_blk, then fiemap flow finishes. > but after this modification, last_blk will be 4 > will do f2fs_map_blocks() until reach the max_file_blocks(inode) Yes, you're right, however, w/ this patch, it may change last_blk, e.g. xfs_io file -c "fiemap -v 0 19006" vs xfs_io file -c "fiemap -v 2 19006" start_blk and last_blk will be: 0, 4 and 0, 5. Should we round_up len after start_blk & last_blk calculation? Thanks, > thanks! >> >> Thanks, >>