From 0ae9e7bb06380f03d8218cfcd784801ad0bb1f5f Mon Sep 17 00:00:00 2001 From: Gao Xiang Date: Tue, 15 Oct 2024 16:12:12 +0800 Subject: [PATCH] docs: refresh roadmap items (as of 20241015) and new use cases Daily updates. Signed-off-by: Gao Xiang --- src/features.md | 28 +++++++++++++++++----------- src/index.md | 2 ++ src/roadmap.md | 9 ++++----- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/features.md b/src/features.md index 7fe2bec..c3eeb9b 100644 --- a/src/features.md +++ b/src/features.md @@ -26,13 +26,13 @@ in-kernel approaches when making technical decisions. | Multiple compression algorithms | Per-file | N/A | No | | Data deduplication | Extent-based | No? [^8] | No | | Extended attribute support | Yes | Yes | Yes | -| File-based distribution | Yes | No | No | +| File-based distribution | Yes [^9] | No | No | | External data (multi-devices) | Yes | No | No | | POSIX.1e ACL support | Yes | Yes | No | -| Direct I/O support [^9] | Yes | Yes | No | +| Direct I/O support [^10] | Yes | Yes | No | | FIEMAP support | Yes | Yes | No | | FSDAX support | Yes | Yes | No | -| Large folio support [^10] | Yes | No | No | +| Large folio support [^11] | Yes | No | No | [^1]: 512-byte blocks can be used for tarball data reference. @@ -48,8 +48,10 @@ See [Squashfs Binary Format/Inode Table](https://dr-emann.github.io/squashfs/squ [^5]: Data compression is an optional feature of the EROFS filesystem. Currently, the supported compression algorithms include [LZ4](https://lz4.org), -[MicroLZMA](https://tukaani.org/xz) (since Linux 5.16), and -[DEFLATE](https://datatracker.ietf.org/doc/html/rfc1951) (since Linux 6.6 LTS). +[MicroLZMA](https://tukaani.org/xz) (since Linux 5.16), +[DEFLATE](https://datatracker.ietf.org/doc/html/rfc1951) (since Linux 6.6 LTS) +and [Zstandard](https://datatracker.ietf.org/doc/html/rfc8878) (since Linux +6.10). [^6]: The default block size of EROFS is 4 KiB on x86 and x86-64. @@ -60,10 +62,14 @@ I/O amplification and extra runtime overhead in resource-limited scenarios. [^8]: Strictly speaking, EXT4 has a feature named "[shared_blocks](https://lore.kernel.org/r/20201005161941.GF4225@quack2.suse.cz)", which will prevents applications from writing to the filesystem. -[^9]: For example, `direct I/O` can be used for loop devices backed by unencoded -files on the EROFS filesystem to avoid double caching. `Direct I/O` on encoded -files is almost useless since it should not do ANY caching and thus will kill -the overall performance. +[^9]: EROFS has supported [EROFS over fscache](https://lwn.net/Articles/896140) +(since Linux 5.19, deprecated in Linux 6.12) and [file-backed mounts](https://lwn.net/Articles/990750) +(since Linux 6.12). -[^10]: EROFS supports [large folios for uncompressed files](https://lwn.net/Articles/931794) -since Linux 6.2. +[^10]: For example, `direct I/O` can be used for loop devices backed by +unencoded files on the EROFS filesystem to avoid double caching. `Direct I/O` +on encoded files is almost useless since it should not do ANY caching and thus +will kill the overall performance. + +[^11]: EROFS has supported large folios [for uncompressed files](https://lwn.net/Articles/931794) +(since Linux 6.2) and [compressed files](https://git.kernel.org/torvalds/c/e080a26725fb) (since Linux 6.11). diff --git a/src/index.md b/src/index.md index 1f9896f..de59d9b 100644 --- a/src/index.md +++ b/src/index.md @@ -89,11 +89,13 @@ byte-granularity cut points. [Kata Containers](https://github.com/kata-containers/kata-containers/blob/main/docs/how-to/how-to-use-erofs-build-rootfs.md) - {octicon}`device-desktop` [Archiso](https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/82); +[dracut-ng](https://github.com/dracut-ng/dracut-ng/pull/546); [kdump-utils](https://github.com/rhkdump/kdump-utils/pull/33); [Linglong](https://linglong.dev) - Distributions: [Alpine Linux](https://pkgs.alpinelinux.org/package/edge/community/x86_64/erofs-utils); [Arch Linux](https://archlinux.org/packages/extra/x86_64/erofs-utils); [Azure Linux](https://github.com/microsoft/azurelinux/pull/9971); +[Bottlerocket](https://github.com/bottlerocket-os/twoliter/pull/379); [Buildroot](https://buildroot.org); [CentOS Stream](https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/commit/37d0627c30a55e4159f00af2d02b5d64b1dc98e8); [Chromium OS](https://chromium-review.googlesource.com/c/chromiumos/platform/crosutils/+/5125177); diff --git a/src/roadmap.md b/src/roadmap.md index 9e9cca8..3778043 100644 --- a/src/roadmap.md +++ b/src/roadmap.md @@ -2,18 +2,17 @@ ## Linux Kernel - - Enable large folio support for compressed data [\[1\]](https://lore.kernel.org/r/20240305091448.1384242-1-hsiangkao@linux.alibaba.com) -[\[2\]](https://lore.kernel.org/r/20240703120051.3653452-1-hsiangkao@linux.alibaba.com); + - [Enable large folio support for compressed data](https://git.kernel.org/torvalds/c/e080a26725fb); - [EROFS page cache sharing across different filesystems](https://lwn.net/Articles/984092); + - [File-backed mounts to replace "EROFS over fscache" for container images](https://git.kernel.org/torvalds/c/69a3a0a45a2f); + - Intel QAT/IAA accelerator support; - Large logical cluster support for smaller compression indexes; - - [Preliminary EROFS Rust in-kernel adaption (EXPERIMENTAL, program for students)](https://summer-ospp.ac.cn/org/prodetail/241920019); - - - File-backed mounts to replace "EROFS over fscache" for container images. + - [Preliminary EROFS Rust in-kernel adaption (EXPERIMENTAL, program for students)](https://summer-ospp.ac.cn/org/prodetail/241920019). ## Userspace tools (erofs-utils)