Re: [PATCH 1/2] erofs: rename utils.c to zutil.c

2024-04-01 Thread Gao Xiang
On 2024/4/1 21:55, Chunhai Guo wrote: Currently, utils.c is only useful if CONFIG_EROFS_FS_ZIP is on. So let's rename as zutil.c as well as avoid its inclusion if CONFIG_EROFS_FS_ZIP is explicitly disabled. Signed-off-by: Chunhai Guo Suggested-by: Gao Xiang Looks good to me, Reviewed

Re: [GIT PULL] erofs fixes for 6.9-rc2

2024-03-27 Thread Gao Xiang
Hi Linus, Sorry about missing a title due to my careless. My apologizes... On Thu, Mar 28, 2024 at 10:54:40AM +0800, Gao Xiang wrote: > Could you consider this pull request for 6.9-rc2? > > Just two minor informative patches. One adds Sandeep Dhavale as a new > reviewer who could

[GIT PULL] erofs fixes for 6.9-rc2

2024-03-27 Thread Gao Xiang
take a bit more time on this. The other patch drops experimental warning for FSDAX since it's already used for memory sharing between hosts and guests. All commits have been in -next and no potential merge conflict is observed. Thanks, Gao Xiang The following changes since commit

Re: [PATCH 1/1] doc: magic: Fix the 'clear' example

2024-03-27 Thread Gao Xiang
On 2024/3/27 17:12, Luke Shumaker wrote: From: "Luke T. Shumaker" --- doc/magic.man | 4 ++-- Does this send to a wrong mailing list? Thanks, Gao Xiang 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/magic.man b/doc/magic.man index b9845f5c..2ee28

[PATCH] erofs: fix compression fallback in tarerofs mode

2024-03-26 Thread Gao Xiang
The return value of `lseek(fd, fpos, SEEK_SET)` can overflow the `int` type. Fix this. Fixes: 376fb2dbe66d ("erofs-utils: lib: introduce diskbuf") Signed-off-by: Gao Xiang --- lib/inode.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/inode.c b/lib/ino

[PATCH] erofs: drop experimental warning for FSDAX

2024-03-24 Thread Gao Xiang
As EXT4/XFS filesystems, FSDAX functionality is considered to be stable. Let's drop this warning. Signed-off-by: Gao Xiang --- fs/erofs/super.c | 1 - 1 file changed, 1 deletion(-) diff --git a/fs/erofs/super.c b/fs/erofs/super.c index 6fbb1fba2d31..fc60a5a7794f 100644 --- a/fs/erofs/super.c

Re: [PATCH 6.6 329/638] erofs: Convert to use bdev_open_by_path()

2024-03-24 Thread Gao Xiang
Hi, On Sun, Mar 24, 2024 at 06:56:06PM -0400, Sasha Levin wrote: > From: Jan Kara > > [ Upstream commit 49845720080dff0afd5813eaebf0758b01b6312c ] > > Convert erofs to use bdev_open_by_path() and pass the handle around. > > CC: Gao Xiang > CC: Chao Yu > CC: l

Re: [PATCH v3] erofs: rename per CPU buffer to global buffer pool and make it configurable

2024-03-22 Thread Gao Xiang
-by: Gao Xiang --- Side note: it'd be better to have a changelog here against the previous version next time. Reviewed-by: Gao Xiang Thanks, Gao Xiang

Re: [PATCH v2] erofs: rename per CPU buffer to global buffer pool and make it configurable

2024-03-22 Thread Gao Xiang
Suggested-by: Gao Xiang --- ... diff --git a/fs/erofs/utils.c b/fs/erofs/utils.c index e146d09151af..7b552bb8c36e 100644 --- a/fs/erofs/utils.c +++ b/fs/erofs/utils.c @@ -284,4 +284,152 @@ void erofs_exit_shrinker(void) { shrinker_free(erofs_shrinker_info); } + +struct z_erofs_gbuf

[PATCH] erofs-utils: tar: all regular inodes should be zeroed in headerball mode

2024-03-22 Thread Gao Xiang
.. Instead of reporting IO errors which implies a corrupted image. Fixes: 6894ca9623e7 ("erofs-utils: mkfs: Support tar source without data") Signed-off-by: Gao Xiang --- include/erofs/blobchunk.h | 1 + lib/blobchunk.c | 41 +++

Re: [PATCH] erofs: rename per-CPU buffers to global buffer pool and make it configurable

2024-03-21 Thread Gao Xiang
buffer to reduce memory occupation. Signed-off-by: Chunhai Guo Suggested-by: Gao Xiang --- fs/erofs/Makefile | 2 +- fs/erofs/decompressor.c | 6 +- fs/erofs/internal.h | 14 ++-- fs/erofs/pcpubuf.c | 148 -- fs/erofs/super.c| 4

Re: Slow concurrent reads on mounted loopback images

2024-03-21 Thread Gao Xiang
will land native solutions for dataset and AI models and we will evaluate this use cases formally. Thanks, Gao Xiang Best, Nicolas Granger

Re: [PATCH 2/2] erofs-utils: mkfs: introduce inter-file multi-threaded compression

2024-03-21 Thread Gao Xiang
On 2024/3/21 20:34, Yifan Zhao wrote: On 2024/3/21 10:07, Gao Xiang wrote: On 2024/3/21 02:15, Huang Jianan wrote: On 2024/3/17 22:41, Yifan Zhao wrote: This patch allows parallelizing the compression process of different files in mkfs. Specifically, a traverser thread traverses

Re: [PATCH] erofs-utils: move pclustersize to struct z_erofs_compress_sctx

2024-03-21 Thread Gao Xiang
On 2024/3/21 15:02, Noboru Asai wrote: With -E(all-)fragments, pclustersize has a different value per segment, so move it to struct z_erofs_compress_sctx. Signed-off-by: Noboru Asai Thanks, I think it's a good change for the later fragment multi-threaded compression. Thanks, Gao XIang

Re: [PATCH 2/2] erofs-utils: mkfs: introduce inter-file multi-threaded compression

2024-03-20 Thread Gao Xiang
  erofs_mkfs_print_progressinfo(inode); -    err = erofs_mkfs_build_tree(inode, ); +    err = erofs_mkfs_build_tree(inode, , ismt);   if (err) {   root = ERR_PTR(err);   break;   } +    if (!ismt) { +    if (S_ISDIR(inode->i_mode)) { +    inode->next_dirwrite = dumpdir; +    dumpdir = inode; +    } else { +    erofs_iput(inode); +    } +#ifdef EROFS_MT_ENABLED +    } else { +    erofs_push_queue(z_erofs_mt_queue, ); +#endif Many branches use EROFS_MT_ENABLED for isolation, how about: #ifdef EROFS_MT_ENABLED void erofs_push_queue(struct erofs_queue *q, void *elem); #else void erofs_push_queue(struct erofs_queue *q, void *elem) {}; #endif BTW, apart from that, I don't quite like the erofs_queue naming since it's quite ambiguous: a data structure or something else? Thanks, Gao Xiang

Re: [PATCH v7 2/5] erofs-utils: add a helper to get available processors

2024-03-20 Thread Gao Xiang
On 2024/3/21 02:15, Huang Jianan wrote: On 2024/3/15 9:10, Gao Xiang wrote: In order to prepare for multi-threaded decompression. multi-threaded compression. It already merged into -dev. I would not update this since it's a minor stuff. Let's work on inter-file stuffs. Thanks, Gao

Re: [syzbot] [erofs?] KMSAN: uninit-value in z_erofs_lz4_decompress (3)

2024-03-19 Thread Gao Xiang
#syz dup KMSAN: uninit-value in z_erofs_lz4_decompress (2) On 2024/3/19 18:17, syzbot wrote: Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-and-tested-by: syzbot+88ad8b0517a9d3bb9...@syzkaller.appspotmail.com Tested on: commit:

Re: [syzbot] [erofs?] KMSAN: uninit-value in z_erofs_lz4_decompress (3)

2024-03-19 Thread Gao Xiang
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master another try with the current upstream. On 2024/2/20 15:22, syzbot wrote: Hello, syzbot tried to test the proposed patch but the build/boot failed: le Layout Driver Registering... [ 21.855653][T1] Key

[PATCH] erofs-utils: fix multi-threaded compression in tarerofs mode

2024-03-19 Thread Gao Xiang
Since pread() can be used during multi-threaded compression, it's necessary to pass `fpos` in to indicate the absolute offset. Fixes: aec8487dce4c ("erofs-utils: mkfs: introduce inner-file multi-threaded compression") Signed-off-by: Gao Xiang --- include/erofs/compress.h |

Re: [PATCH] erofs-utils: mkfs: fix out-of-bounds memory access in mt-mkfs

2024-03-17 Thread Gao Xiang
On Sun, Mar 17, 2024 at 02:45:09PM +0800, Yifan Zhao wrote: > If a segment is smaller than the block size, sizeof(sctx->membuf) should > be at least as large as the block size, as memory write into the buffer > is done in block size. > > Signed-off-by: Yifan Zhao > --- Folded the following diff

Re: [PATCH v7 5/5] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-03-15 Thread Gao Xiang
seg_ctx; struct z_erofs_compress_sctx *sctx; "ictx" means "inode context", "sctx" means "segment context". If there is no confusion, "ctx" naming can be used in a function. Also I tend to avoid making a huge diff to make ctx->"sctx or ic

Re: [PATCH v6 5/5] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-03-14 Thread Gao Xiang
On 2024/3/15 10:39, Gao Xiang wrote: On 2024/3/14 20:37, Yifan Zhao wrote: Currently, the creation of EROFS compressed image creation is single-threaded, which suffers from performance issues. This patch attempts to address it by compressing the large file in parallel. Specifically, each

Re: [PATCH v7 5/5] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-03-14 Thread Gao Xiang
On 2024/3/15 09:10, Gao Xiang wrote: From: Yifan Zhao Currently, the creation of EROFS compressed image creation is single-threaded, which suffers from performance issues. This patch attempts to address it by compressing the large file in parallel. Specifically, each input file larger than

Re: [PATCH v6 5/5] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-03-14 Thread Gao Xiang
-by: Tong Xin I did some updates yesterday and I just posted v7. BTW, I also found an issue that the output cannot be stablized with "mkfs.erofs -zlz4hc,12 --worker=72" and enwik9 dataset. I'm still looking into that since it's an unexpected behavior. Thanks, Gao Xiang

[PATCH v7 5/5] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-03-14 Thread Gao Xiang
-by: Gao Xiang --- v7: - support -Eztailpacking; - wq_private -> wq_tls; - minor updates. include/erofs/compress.h | 3 +- lib/compress.c | 548 --- lib/compressor.c | 2 + mkfs/main.c | 8 +- 4 files changed, 464 inserti

[PATCH v7 4/5] erofs-utils: lib: introduce atomic operations

2024-03-14 Thread Gao Xiang
`__warnonce` atomic booleans to each erofs_compressor_init(). Cc: Yifan Zhao Signed-off-by: Yifan Zhao Signed-off-by: Gao Xiang --- include/erofs/atomic.h | 28 lib/compressor_deflate.c| 11 --- lib/compressor_libdeflate.c | 6 +- lib

[PATCH v7 3/5] erofs-utils: mkfs: add --workers=# parameter

2024-03-14 Thread Gao Xiang
-off-by: Yifan Zhao Signed-off-by: Gao Xiang --- include/erofs/config.h | 4 lib/config.c | 4 mkfs/main.c| 23 +++ 3 files changed, 31 insertions(+) diff --git a/include/erofs/config.h b/include/erofs/config.h index 73e3ac2..d2f91ff 100644

[PATCH v7 1/5] erofs-utils: introduce multi-threading framework

2024-03-14 Thread Gao Xiang
From: Yifan Zhao Add a workqueue implementation for multi-threading support inspired by xfsprogs. Signed-off-by: Yifan Zhao Suggested-by: Gao Xiang Signed-off-by: Gao Xiang --- configure.ac | 16 + include/erofs/internal.h | 3 + include/erofs/workqueue.h | 34

[PATCH v7 2/5] erofs-utils: add a helper to get available processors

2024-03-14 Thread Gao Xiang
In order to prepare for multi-threaded decompression. Signed-off-by: Yifan Zhao Signed-off-by: Gao Xiang --- configure.ac | 1 + include/erofs/config.h | 1 + lib/config.c | 12 3 files changed, 14 insertions(+) diff --git a/configure.ac b/configure.ac index

Re: [PATCH] MAINTAINERS: erofs: add myself as reviewer

2024-03-14 Thread Gao Xiang
On 2024/3/15 07:14, Sandeep Dhavale wrote: I have been contributing to erofs for sometime and I would like to help with code reviews as well. Signed-off-by: Sandeep Dhavale Looks good to me, and thanks for taking your time on erofs project: Reviewed-by: Gao Xiang Thanks, Gao Xiang

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
On 2024/3/12 23:29, Gael Donval wrote: On Tue, 2024-03-12 at 22:15 +0800, Gao Xiang wrote: On 2024/3/12 21:14, Gael Donval wrote: On Tue, 2024-03-12 at 20:43 +0800, Gao Xiang wrote: ... Yes, but that needs a new version (maybe erofs-utils 1.8) though. Of course! Also I'm

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
On 2024/3/12 21:14, Gael Donval wrote: On Tue, 2024-03-12 at 20:43 +0800, Gao Xiang wrote: ... Yes, but that needs a new version (maybe erofs-utils 1.8) though. Of course! Also I'm not sure how tar --xattrs works for "btrfs.compression", does it also work in a relaxed m

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
On 2024/3/12 20:01, Gael Donval wrote: On Tue, 2024-03-12 at 19:37 +0800, Gao Xiang wrote: On 2024/3/12 19:07, Gael Donval wrote: On 2024/3/12 18:44, Gao Xiang wrote: Hi Gael, On 2024/3/12 17:57, Gael Donval wrote: Dear list, $ mkdir foo && touch foo/bar &

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
On 2024/3/12 19:37, Gao Xiang wrote: On 2024/3/12 19:07, Gael Donval wrote: On 2024/3/12 18:44, Gao Xiang wrote: Hi Gael, On 2024/3/12 17:57, Gael Donval wrote: Dear list, $ mkdir foo && touch foo/bar && mkfs.erofs foo.erofs.img foo mkfs.erofs 1.7.1    

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
On 2024/3/12 19:07, Gael Donval wrote: On 2024/3/12 18:44, Gao Xiang wrote: Hi Gael, On 2024/3/12 17:57, Gael Donval wrote: Dear list,     $ mkdir foo && touch foo/bar && mkfs.erofs foo.erofs.img foo     mkfs.erofs 1.7.1     erofs: failed to build shared xattrs: [E

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
On 2024/3/12 18:44, Gao Xiang wrote: Hi Gael, On 2024/3/12 17:57, Gael Donval wrote: Dear list,     $ mkdir foo && touch foo/bar && mkfs.erofs foo.erofs.img foo     mkfs.erofs 1.7.1     erofs: failed to build shared xattrs: [Error 61] No data available     erofs:

Re: mkfs.erofs fails (failed to build shared xattrs, err 61)

2024-03-12 Thread Gao Xiang
but is not how mkfs.erofs is meant to work in the general case. Thanks for your feedback. Currently I don't have some BTRFS environment, I could set up one later. Yet in parallel could you provide a full message of "strace mkfs.erofs -x-1 foo.erofs.img foo" on BTRFS too? Thanks, Gao Xiang Kind regards, Gaël

[GIT PULL] erofs updates for 6.9-rc1

2024-03-11 Thread Gao Xiang
that, there are some folio conversions for compressed inodes available as well as a lockdep false positive fix. All commits have been in -next and no potential merge conflict is observed. [1] https://nydus.dev Thanks, Gao Xiang The following changes since commit

Re: [PATCH 1/2] erofs: make iov_iter describe target buffers over fscache

2024-03-08 Thread Gao Xiang
ibe a request to fill the page cache in the specified range. Signed-off-by: Jingbo Xu As we discussed offline, for the whole series: Reviewed-by: Gao Xiang Thanks for the work! Thanks, Gao Xiang

[GIT PULL] erofs fixes for 6.8-final

2024-03-07 Thread Gao Xiang
added today) and no potential merge conflict is observed. Thanks, Gao Xiang The following changes since commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72: Linux 6.8-rc7 (2024-03-03 13:02:52 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/xiang

Re: [PATCH v2] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt

2024-03-07 Thread Gao Xiang
ositive and too close to the final so let's keep this patch in -next for a while and then aim for v6.9-rc1 instead. Thanks, Gao Xiang

Re: [PATCH] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt

2024-03-07 Thread Gao Xiang
Hi Christian, On 2024/3/7 17:17, Christian Brauner wrote: On Thu, Mar 07, 2024 at 12:18:52PM +0800, Gao Xiang wrote: Hi, (try to +Cc Christian and Al here...) On 2024/3/7 11:41, Jingbo Xu wrote: Hi Baokun, Thanks for catching this! On 3/7/24 10:52 AM, Gao Xiang wrote: Hi Baokun

Re: [PATCH] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt

2024-03-06 Thread Gao Xiang
anonymous inode. As Al pointed out, you could just follow his ideas since it's mainly a VFS POV... Thanks, Gao Xiang

Re: [PATCH] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt

2024-03-06 Thread Gao Xiang
Hi, (try to +Cc Christian and Al here...) On 2024/3/7 11:41, Jingbo Xu wrote: Hi Baokun, Thanks for catching this! On 3/7/24 10:52 AM, Gao Xiang wrote: Hi Baokun, On 2024/3/7 10:44, Baokun Li wrote: Lockdep reported the following issue when mounting erofs with a domain_id

Re: [PATCH] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt

2024-03-06 Thread Gao Xiang
udo_mnt related code to fscache.c. Signed-off-by: Baokun Li IMHO, in the beginning, I'd like to avoid introducing another fs type for erofs to share (meta)data between filesystems since it will cause churn, could we use some alternative way to resolve this? Or Jingbo might have some other idea

Re: [PATCH] erofs: apply proper VMA alignment for memory mapped files on THP

2024-03-06 Thread Gao Xiang
On 2024/3/7 09:07, Chao Yu wrote: On 2024/3/6 14:51, Gao Xiang wrote: On 2024/3/6 13:31, Gao Xiang wrote: There are mainly two reasons that thp_get_unmapped_area() should be used for EROFS as other filesystems:   - It's needed to enable PMD mappings as a FSDAX filesystem, see     commit

Re: [PATCH] erofs: apply proper VMA alignment for memory mapped files on THP

2024-03-05 Thread Gao Xiang
On 2024/3/6 13:31, Gao Xiang wrote: There are mainly two reasons that thp_get_unmapped_area() should be used for EROFS as other filesystems: - It's needed to enable PMD mappings as a FSDAX filesystem, see commit 74d2fad1334d ("thp, dax: add thp_get_unmapped_area for pmd map

[PATCH] erofs: apply proper VMA alignment for memory mapped files on THP

2024-03-05 Thread Gao Xiang
l together with CONFIG_READ_ONLY_THP_FOR_FS which enables THPs for read-only mmapped files (e.g. shared libraries) even without FSDAX. See commit 1854bc6e2420 ("mm/readahead: Align file mappings for non-DAX"). Fixes: 06252e9ce05b ("erofs: dax support for non-tailpacking regular file&q

[PATCH 6/6] erofs: refine managed cache operations to folios

2024-03-05 Thread Gao Xiang
Convert erofs_try_to_free_all_cached_pages() and z_erofs_cache_release_folio(). Besides, erofs_page_is_managed() is moved to zdata.c and renamed as erofs_folio_is_managed(). Signed-off-by: Gao Xiang --- fs/erofs/compress.h | 7 fs/erofs/decompressor_deflate.c | 3 -- fs

[PATCH 3/6] erofs: get rid of `justfound` debugging tag

2024-03-05 Thread Gao Xiang
-by: Gao Xiang --- fs/erofs/zdata.c | 20 +++- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index c25074657708..75b05990b571 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -565,17 +565,13 @@ static void z_erofs_bind_cache

[PATCH 2/6] erofs: convert z_erofs_do_read_page() to folios

2024-03-05 Thread Gao Xiang
It is a straight-forward conversion. Besides, it's renamed as z_erofs_scan_folio(). Signed-off-by: Gao Xiang --- fs/erofs/zdata.c | 31 +++ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index 5013fcd4965a

[PATCH 4/6] erofs: convert z_erofs_fill_bio_vec() to folios

2024-03-05 Thread Gao Xiang
Introduce a folio member to `struct z_erofs_bvec` and convert most of z_erofs_fill_bio_vec() to folios, which is still straight-forward. Signed-off-by: Gao Xiang --- fs/erofs/zdata.c | 71 1 file changed, 36 insertions(+), 35 deletions(-) diff

[PATCH 5/6] erofs: convert z_erofs_submissionqueue_endio() to folios

2024-03-05 Thread Gao Xiang
Use bio_for_each_folio() to iterate over each folio in the bio and there is no large folios for now. Signed-off-by: Gao Xiang --- fs/erofs/zdata.c | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index d78cc54a96f5

[PATCH 1/6] erofs: convert z_erofs_onlinepage_.* to folios

2024-03-05 Thread Gao Xiang
footprints for low-ended storage devices with high latencies under heary I/O pressure. Apart from folio_end_read() usage, it's a straight-forward conversion. Signed-off-by: Gao Xiang --- Some trivial folio conversions for compressed inodes aiming for v6.9. fs/erofs/zdata.c | 50

Re: [PATCH] erofs: fix uninitialized page cache reported by KMSAN

2024-03-03 Thread Gao Xiang
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git dev-test On 2024/3/4 11:53, Gao Xiang wrote: syzbot reports a KMSAN reproducer [1] which generates a crafted filesystem image and causes IMA to read uninitialized page cache. Later, (rq->outputsize > rq->

[PATCH] erofs: fix uninitialized page cache reported by KMSAN

2024-03-03 Thread Gao Xiang
148a ("erofs: refine z_erofs_transform_plain() for sub-page block support") Signed-off-by: Gao Xiang --- fs/erofs/decompressor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index d4cee95af14c..2ec9b2bb628d

Re: [syzbot] [integrity?] [lsm?] KMSAN: uninit-value in ima_add_template_entry

2024-03-03 Thread Gao Xiang
commit 1ca01520148a this cycle, let me find more clues and make a fix for this. Thanks, Gao Xiang You can obtain a single-threaded reproducer from https://syzkaller.appspot.com/x/repro.c?x=1256096a18 with below diff. --- old/1256096a18.c +++ new

[PATCH] erofs-utils: support xz/lzma/lzip streams for tarerofs

2024-03-03 Thread Gao Xiang
Similar to commit e3dfe4b8db26 ("erofs-utils: mkfs: support tgz streams for tarerofs"), let's add xz/lzma/lzip support by using liblzma. Signed-off-by: Gao Xiang --- include/erofs/tar.h | 13 ++ lib/tar.c | 58 - man/mk

Re: [PATCH v4 3/5] erofs-utils: mkfs: add --worker=# parameter

2024-02-29 Thread Gao Xiang
T_ENABLED + if (cfg.c_mt_workers > 1 && + (cfg.c_dedupe || cfg.c_fragments || cfg.c_ztailpacking)) { + cfg.c_mt_workers = 1; + erofs_warn("Please note that dedupe/fragments/ztailpacking" + "is NOT suppo

Re: [PATCH v4 1/5] erofs-utils: introduce multi-threading framework

2024-02-29 Thread Gao Xiang
On 2024/2/29 17:43, Gao Xiang wrote: Hi Yifan, On 2024/2/29 00:16, Yifan Zhao wrote: Add a workqueue implementation for multi-threading support inspired by xfsprogs. Signed-off-by: Yifan Zhao Suggested-by: Gao Xiang --- .. index 54b9c9c..7307f7b 100644 --- a/lib/Makefile.am +++ b/lib

Re: [PATCH v4 1/5] erofs-utils: introduce multi-threading framework

2024-02-29 Thread Gao Xiang
Hi Yifan, On 2024/2/29 00:16, Yifan Zhao wrote: Add a workqueue implementation for multi-threading support inspired by xfsprogs. Signed-off-by: Yifan Zhao Suggested-by: Gao Xiang --- configure.ac | 16 + include/erofs/internal.h | 3 + include/erofs/workqueue.h | 37

Re: [PATCH v3 4/4] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-02-28 Thread Gao Xiang
On 2024/2/28 23:13, Yifan Zhao wrote: On 2/28/24 17:57, Gao Xiang wrote: On 2024/2/25 22:27, Yifan Zhao wrote: Currently, the creation of EROFS compressed image creation is single-threaded, which suffers from performance issues. This patch attempts to address it by compressing the large

Re: [PATCH] erofs-utils: lib: introduce atomic operations

2024-02-28 Thread Gao Xiang
On 2024/2/28 21:22, Yifan Zhao wrote: On 2/28/24 16:21, Gao Xiang wrote: Add some helpers (relaxed semantics) in order to prepare for the upcoming multi-threaded support. For example, compressor may be initialized more than once in different worker threads, resulting in noisy warnings

Re: [PATCH v3 4/4] erofs-utils: mkfs: introduce inner-file multi-threaded compression

2024-02-28 Thread Gao Xiang
erofs_blksiz(sbi))); return false; } @@ -439,26 +527,31 @@ static bool z_erofs_fixup_deduped_fragment(struct z_erofs_vle_compress_ctx *ctx, static int __z_erofs_compress_one(struct z_erofs_vle_compress_ctx *ctx, struct z_erofs_inmem_extent *e) { - static char dstbuf[EROFS_CONFIG_COMPR_MAX_SZ + EROFS_MAX_BLOCK_SIZE]; - struct erofs_inode *inode = ctx->inode; + static char + global_dstbuf[EROFS_CONFIG_COMPR_MAX_SZ + EROFS_MAX_BLOCK_SIZE]; + char *dstbuf = ctx->destbuf ? ctx->destbuf : global_dstbuf; char *dstbuf = ctx->destbuf ? : global_dstbuf; Thanks, Gao Xiang

[PATCH] erofs-utils: lib: introduce atomic operations

2024-02-28 Thread Gao Xiang
`__warnonce` atomic booleans to each erofs_compressor_init(). Cc: Yifan Zhao Signed-off-by: Gao Xiang --- include/erofs/atomic.h | 27 +++ lib/compressor_deflate.c| 11 --- lib/compressor_libdeflate.c | 6 +- lib/compressor_liblzma.c| 5 - 4 files

Re: [PATCH v2] erofs-utils: mkfs: Support tar source without data

2024-02-27 Thread Gao Xiang
On 2024/2/27 23:22, Mike Baynton wrote: On Tue, Feb 27, 2024 at 2:42 AM Gao Xiang wrote: Hi Mike, Just some minor changes for applying to -dev development codebase. Does it look good to you? (I will apply this version to -experimental for testing.) Looks pretty good to me, thank

[PATCH v2] erofs-utils: mkfs: Support tar source without data

2024-02-27 Thread Gao Xiang
or any data after each tar header which was simply discarded by mkfs.erofs. Signed-off-by: Mike Baynton Signed-off-by: Gao Xiang --- Hi Mike, Just some minor changes for applying to -dev development codebase. Does it look good to you? (I will apply this version to -experimental for testing

Re: [PATCH] erofs-utils: mkfs: Support tar source without data

2024-02-26 Thread Gao Xiang
nder the meaning of `-ball` :-) I'm happy with the new naming, and will try this patch later! Thanks, Gao Xiang Thank you for your careful review, it's a simple change but this was motivated by necessity and isn't really my wheelhouse. include/erofs/tar.h | 2 +- lib/tar.c | 2 +-

Re: [PATCH 6.1.y 1/2] erofs: simplify compression configuration parser

2024-02-26 Thread Gao Xiang
Hi Yue, On 2024/2/27 10:22, Yue Hu wrote: From: Gao Xiang [ Upstream commit efb4fb02cef3ab410b603c8f0e1c67f61d55f542 ] Move erofs_load_compr_cfgs() into decompressor.c as well as introduce a callback instead of a hard-coded switch for each algorithm for simplicity. Reviewed-by: Chao Yu

[GIT PULL] erofs fix for 6.8-rc6

2024-02-25 Thread Gao Xiang
Hi Linus, Could you consider this fix for 6.8-rc6? The detailed description is as below and I think it'd be much better to be landed now than later. It has been in -next and no potential merge conflict is observed. Thanks, Gao Xiang The following changes since commit

[PATCH 5.10.y] erofs: fix lz4 inplace decompression

2024-02-23 Thread Gao Xiang
on inplace") Fixes: 598162d05080 ("erofs: support decompress big pcluster for lz4 backend") Cc: stable # 5.4+ Tested-by: Yifan Zhao Signed-off-by: Gao Xiang Link: https://lore.kernel.org/r/20231206045534.3920847-1-hsiang...@linux.alibaba.com --- Adapt 5.10.y codebase due to non-tr

[PATCH 5.15.y] erofs: fix lz4 inplace decompression

2024-02-23 Thread Gao Xiang
on inplace") Fixes: 598162d05080 ("erofs: support decompress big pcluster for lz4 backend") Cc: stable # 5.4+ Tested-by: Yifan Zhao Signed-off-by: Gao Xiang Link: https://lore.kernel.org/r/20231206045534.3920847-1-hsiang...@linux.alibaba.com --- Adapt 5.15.y codebase due to non-tr

Re: [PATCH v2 3/7] erofs-utils: mkfs: add --worker=# parameter

2024-02-22 Thread Gao Xiang
--block-list-file=X X=block_list file\n" +#endif +#ifdef EROFS_MT_ENABLED + " --worker=#set the number of worker threads to # (default=1)\n" --workers=# Thanks, Gao Xiang

[PATCH] erofs-utils: support dumping raw tar streams together

2024-02-22 Thread Gao Xiang
Since commit e3dfe4b8db26 ("erofs-utils: mkfs: support tgz streams for tarerofs"), tgz streams can be converted to EROFS directly. However, many use cases also require raw tar streams. Let's add support for dumping raw streams with `--ungzip=FILE` option. Signed-off-by: Gao Xiang --

Re: [PATCH v2 4/7] erofs-utils: mkfs: optionally print warning in erofs_compressor_init

2024-02-21 Thread Gao Xiang
it(struct erofs_compress *c) ctx->opt.dict_size = c->dict_size; c->private_data = ctx; + if (print_warning) { same here. Thanks, Gao Xiang erofs_warn("EXPERIMENTAL MicroLZMA feature in use. Use at your own risk!");

Re: [PATCH v2 1/7] erofs-utils: introduce multi-threading framework

2024-02-21 Thread Gao Xiang
On 2024/2/20 15:55, Yifan Zhao wrote: Add a workqueue implementation for multi-threading support inspired by xfsprogs. Signed-off-by: Yifan Zhao Suggested-by: Gao Xiang --- configure.ac | 16 + include/erofs/internal.h | 3 + include/erofs/workqueue.h | 38

Re: [PATCH v2] erofs: fix refcount on the metabuf used for inode lookup

2024-02-21 Thread Gao Xiang
buffers for inode lookup") Cc: sta...@vger.kernel.org Signed-off-by: Sandeep Dhavale Reviewed-by: Gao Xiang Thanks, Gao Xiang

[PATCH v2 2/2] erofs-utils: support liblzma auto-detection

2024-02-20 Thread Gao Xiang
The new XZ Utils 5.4 is now available in most Linux distributions. Let's enable liblzma auto-detection as well as get rid of MicroLZMA EXPERIMENTAL warning. Signed-off-by: Gao Xiang --- v2: - fix build errors: https://github.com/erofs/erofsnightly/actions/runs/7982759356 https

Re: [PATCH v1] erofs: fix refcount on the metabuf used for inode lookup

2024-02-20 Thread Gao Xiang
tched; The fix is correct, yet I tend to try to reorganize this snippet for simplicity, how about the following diff (untested)? If it looks good to you, could you resend a formal patch? Thanks! Thanks, Gao Xiang fs/erofs/namei.c | 29 ++--- 1 file changed, 14 i

[PATCH 2/2] erofs-utils: support liblzma auto-detection

2024-02-20 Thread Gao Xiang
The new XZ Utils 5.4 is now available in most Linux distributions. Let's enable liblzma auto-detection as well as get rid of MicroLZMA EXPERIMENTAL warning. Signed-off-by: Gao Xiang --- configure.ac | 54 ++-- lib/compressor_liblzma.c | 3 +-- 2

[PATCH 1/2] erofs-utils: support zlib auto-detection

2024-02-20 Thread Gao Xiang
Fix explicit `--with-zlib` so that it errors out when zlib is unavailable. Signed-off-by: Gao Xiang --- configure.ac | 35 +++ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/configure.ac b/configure.ac index bf6e99f..cd14beb 100644

Re: [syzbot] [erofs?] KMSAN: uninit-value in z_erofs_lz4_decompress (3)

2024-02-19 Thread Gao Xiang
/36e27e0610890...@google.com https://lore.kernel.org/r/bacd170610723...@google.com before I tend to verify a resolved duplicated report: https://syzkaller.appspot.com/bug?extid=6c746eea496f34b3161d Thanks, Gao Xiang [ 30.396149][T1] register_netdevice+0x198f/0x2170 [ 30.396264

Re: [syzbot] [erofs?] KMSAN: uninit-value in z_erofs_lz4_decompress (3)

2024-02-19 Thread Gao Xiang
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master On 2024/2/2 00:57, syzbot wrote: Hello, syzbot tried to test the proposed patch but the build/boot failed: [T1] NFS: Registering the id_resolver key type [ 20.847533][T1] Key type id_resolver

Re: Feature request: erofs-utils mkfs: Efficient way to pipe only file metadata

2024-02-19 Thread Gao Xiang
. Thanks for your detailed explanation. In short, basically i'm not against your proposal, so if you'd like to support a header-only tar-like format, could you submit a formal patch (with your signed-off-by) for me to apply (--tar=header)? Thanks! Gao Xiang Regards, Mike On Sun, Feb 18, 2024

Re: Feature request: erofs-utils mkfs: Efficient way to pipe only file metadata

2024-02-18 Thread Gao Xiang
On 2024/2/19 12:44, Gao Xiang wrote: Hi Mike, On 2024/2/19 11:37, Mike Baynton wrote: Hello erofs developers, I am integrating erofs with overlayfs in a manner similar to what composefs is doing. So, I am interested in making erofs images containing only file metadata and extended

Re: Feature request: erofs-utils mkfs: Efficient way to pipe only file metadata

2024-02-18 Thread Gao Xiang
rrent index mode now. But yes, it could be inefficient if some files are huge. Would some version of this feature be interesting and useful? If so, is the simple way good enough? It wouldn't preclude future addition of things like a sparse tar reader. Yes, I think it's useful to support a simple prototype-like format, but it might take time on my own since there are some other ongoing stuffs to be landed (like multi-threading mkfs support.) Thanks, Gao Xiang Regards, Mike

Re: [PATCH] erofs-utils: lib: fix incorrect usages of `erofs_strerror`

2024-02-09 Thread Gao Xiang
On Thu, Feb 08, 2024 at 09:59:09PM +0800, Tianyi Liu wrote: > `erofs_strerror` accepts a negative argument, > so `errno` should be negatived before passing to it. > > Signed-off-by: Tianyi Liu Thanks, applied! Thanks, Gao Xiang

Re: [PATCH 1/7] erofs-utils: introduce multi-threading framework

2024-02-06 Thread Gao Xiang
Hi, On 2024/2/4 18:33, Yifan Zhao wrote: From: Gao Xiang Add a workqueue implementation based on xfsprogs for multi-threading support. Signed-off-by: Gao Xiang --- ... --- /dev/null +++ b/include/erofs/workqueue.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0

Re: [syzbot] [erofs?] KMSAN: uninit-value in z_erofs_lz4_decompress (3)

2024-02-01 Thread Gao Xiang
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master On 2024/2/1 19:04, syzbot wrote: Hello, syzbot found the following issue on: HEAD commit:9f8413c4a66f Merge tag 'cgroup-for-6.8' of git://git.kerne.. git tree: upstream console+strace:

[GIT PULL] erofs fixes for 6.8-rc3

2024-01-30 Thread Gao Xiang
% on average under a heavy multi-app launch benchmark workload. The remaining one gets rid of unnecessary GFP_NOFS. All commits have been in -next for a while and no potential merge conflict is observed. Thanks, Gao Xiang The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d: Linux

[PATCH v4] erofs: relaxed temporary buffers allocation on readahead

2024-01-26 Thread Gao Xiang
, after applying this patch, it can eventually save 52.14% (3364 -> 1610) on average with no memory reservation. That is particularly useful for embedded devices with limited resources. [1] https://lore.kernel.org/r/20240109074143.4138783-1-guochun...@vivo.com Suggested-by: Gao Xiang Signed-

Re: [PATCH v3] erofs: relaxed temporary buffers allocation on readahead

2024-01-26 Thread Gao Xiang
Hi Yue, On 2024/1/26 18:46, Yue Hu wrote: On Fri, 26 Jan 2024 13:36:16 +0800 Gao Xiang wrote: ... /* @@ -1276,7 +1280,11 @@ static int z_erofs_decompress_pcluster(struct z_erofs_decompress_backend *be, .inplace_io = overlapped

[PATCH v3] erofs: relaxed temporary buffers allocation on readahead

2024-01-25 Thread Gao Xiang
applying this patch, it can eventually save 52.14% (3364 -> 1610) on average with no memory reservation. That is particularly useful for embedded devices with limited resources. [1] https://lore.kernel.org/r/20240109074143.4138783-1-guochun...@vivo.com Suggested-by: Gao Xiang Signed-

Re: [PATCH] erofs: fix infinite loop due to a race of filling compressed_bvecs

2024-01-25 Thread Gao Xiang
On 2024/1/26 12:56, Sandeep Dhavale via Linux-erofs wrote: On Thu, Jan 25, 2024 at 4:01 AM Gao Xiang wrote: I encountered a race issue after lengthy (~594647 sec) stress tests on a 64k-page arm64 VM with several 4k-block EROFS images. The timing is like below: z_erofs_try_inplace_io

Re: [PATCH v2] erofs: relaxed temporary buffers allocation on readahead

2024-01-25 Thread Gao Xiang
On 2024/1/26 11:42, Chunhai Guo wrote: On 2024/1/26 10:47, Gao Xiang wrote: [你通常不会收到来自 hsiang...@linux.alibaba.com 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要] On 2024/1/26 10:41, Chunhai Guo wrote: On 2024/1/22 15:42, Chunhai Guo wrote: On 2024/1/22 12:37, Gao

Re: [PATCH v2] erofs: relaxed temporary buffers allocation on readahead

2024-01-25 Thread Gao Xiang
On 2024/1/26 10:41, Chunhai Guo wrote: On 2024/1/22 15:42, Chunhai Guo wrote: On 2024/1/22 12:37, Gao Xiang wrote: [你通常不会收到来自 hsiang...@linux.alibaba.com 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要] On 2024/1/22 11:49, Chunhai Guo wrote: On 2024/1/22 10:07, Gao

[PATCH] erofs: fix infinite loop due to a race of filling compressed_bvecs

2024-01-25 Thread Gao Xiang
support I/O submission for sub-page compressed blocks") Signed-off-by: Gao Xiang --- fs/erofs/zdata.c | 74 +--- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index 583c062cd0e4..c1c77166b30f 10064

Re: [PATCH] erofs-utils: lib: reset hc to avoid 32-bit overflow of kite-deflate

2024-01-24 Thread Gao Xiang
On 2024/1/24 18:40, Yifan Zhao wrote: On 2024/1/24 17:53, Gao Xiang wrote: Hi Yifan, On 2024/1/24 17:47, Yifan Zhao wrote: On 1/24/24 17:16, Gao Xiang wrote: Yifan reported a "segmentation fault (core dumped)" error days ago with a large dataset (enwik9 x 5).   Let's fix it.

Re: [PATCH] erofs-utils: lib: reset hc to avoid 32-bit overflow of kite-deflate

2024-01-24 Thread Gao Xiang
Hi Yifan, On 2024/1/24 17:47, Yifan Zhao wrote: On 1/24/24 17:16, Gao Xiang wrote: Yifan reported a "segmentation fault (core dumped)" error days ago with a large dataset (enwik9 x 5).   Let's fix it. Reported-by: Yifan Zhao Fixes: 861037f4fc15 ("erofs-utils: add a b

[PATCH] erofs-utils: lib: reset hc to avoid 32-bit overflow of kite-deflate

2024-01-24 Thread Gao Xiang
Yifan reported a "segmentation fault (core dumped)" error days ago with a large dataset (enwik9 x 5). Let's fix it. Reported-by: Yifan Zhao Fixes: 861037f4fc15 ("erofs-utils: add a built-in DEFLATE compressor") Signed-off-by: Gao Xiang --- include/erofs/defs.h | 3 +++

<    1   2   3   4   5   6   7   8   9   10   >