From nobody Fri Sep 19 01:05:22 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A28A6C352A1 for ; Wed, 30 Nov 2022 09:56:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229971AbiK3J4Y (ORCPT ); Wed, 30 Nov 2022 04:56:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235099AbiK3J4U (ORCPT ); Wed, 30 Nov 2022 04:56:20 -0500 Received: from out30-42.freemail.mail.aliyun.com (out30-42.freemail.mail.aliyun.com [115.124.30.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C4442E684 for ; Wed, 30 Nov 2022 01:56:13 -0800 (PST) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R161e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046050;MF=hsiangkao@linux.alibaba.com;NM=1;PH=DS;RN=4;SR=0;TI=SMTPD_---0VW2qBWd_1669802166; Received: from e18g06460.et15sqa.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0VW2qBWd_1669802166) by smtp.aliyun-inc.com; Wed, 30 Nov 2022 17:56:11 +0800 From: Gao Xiang To: linux-erofs@lists.ozlabs.org Cc: LKML , Chao Yu , Gao Xiang Subject: [PATCH] erofs: update documentation Date: Wed, 30 Nov 2022 17:56:05 +0800 Message-Id: <20221130095605.4656-1-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.24.4 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" - Refine highlights for main features; - Add multi-reference pclusters and fragment description. Signed-off-by: Gao Xiang Reviewed-by: Chao Yu Reviewed-by: Yue Hu --- Documentation/filesystems/erofs.rst | 35 ++++++++++++++++++----------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/Documentation/filesystems/erofs.rst b/Documentation/filesystem= s/erofs.rst index 05e03d54af1a..82af67fdaf99 100644 --- a/Documentation/filesystems/erofs.rst +++ b/Documentation/filesystems/erofs.rst @@ -30,12 +30,17 @@ It is implemented to be a better choice for the followi= ng scenarios: especially for those embedded devices with limited memory and high-dens= ity hosts with numerous containers. =20 -Here is the main features of EROFS: +Here are the main features of EROFS: =20 - Little endian on-disk design; =20 - - 4KiB block size and 32-bit block addresses, therefore 16TiB address spa= ce - at most for now; + - Block-based and file-based distribution over fscache are supported; + + - Support multiple devices to refer to external blobs, which can be used + for container images; + + - 4KiB block size and 32-bit block addresses for each device, therefore + 16TiB address space at most for now; =20 - Two inode layouts for different requirements: =20 @@ -50,28 +55,29 @@ Here is the main features of EROFS: Metadata reserved 8 bytes 18 bytes =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 - - Metadata and data could be mixed as an option; - - - Support extended attributes (xattrs) as an option; + - Support extended attributes as an option; =20 - - Support tailpacking data and xattr inline compared to byte-addressed - unaligned metadata or smaller block size alternatives; - - - Support POSIX.1e ACLs by using xattrs; + - Support POSIX.1e ACLs by using extended attributes; =20 - Support transparent data compression as an option: LZ4 and MicroLZMA algorithms can be used on a per-file basis; In additi= on, inplace decompression is also supported to avoid bounce compressed buff= ers and page cache thrashing. =20 + - Support chunk-based data deduplication and rolling-hash compressed data + deduplication; + + - Support tailpacking inline compared to byte-addressed unaligned metadata + or smaller block size alternatives; + + - Support merging tail-end data into a special inode as fragments. + - Support direct I/O on uncompressed files to avoid double caching for lo= op devices; =20 - Support FSDAX on uncompressed images for secure containers and ramdisks= in order to get rid of unnecessary page cache. =20 - - Support multiple devices for multi blob container images; - - Support file-based on-demand loading with the Fscache infrastructure. =20 The following git tree provides the file system user-space tools under @@ -259,7 +265,7 @@ By the way, chunk-based files are all uncompressed for = now. =20 Data compression ---------------- -EROFS implements LZ4 fixed-sized output compression which generates fixed-= sized +EROFS implements fixed-sized output compression which generates fixed-sized compressed data blocks from variable-sized input in contrast to other exis= ting fixed-sized input solutions. Relatively higher compression ratios can be g= otten by using fixed-sized output compression since nowadays popular data compre= ssion @@ -314,3 +320,6 @@ to understand its delta0 is constantly 1, as illustrate= d below:: =20 If another HEAD follows a HEAD lcluster, there is no room to record CBLKCN= T, but it's easy to know the size of such pcluster is 1 lcluster as well. + +Since Linux v6.1, each pcluster can be used for multiple variable-sized ex= tents, +therefore it can be used for compressed data deduplication. --=20 2.24.4