Hi Ian, (+Cc Jingbo here).
On 2024/4/22 16:31, Ian Kent wrote:
I'm new to the list so Hi to all, I'm working with a heavily patched 5.14 kernel and I've gathered together patches to bring erofs up to 5.19 and I'm trying to run the erofs and fscache tests from a checkout of the 1.7.1 repo. (branch experimental-tests-fscache) and I have a couple of fails I can't quite work out so I'm hoping for a little halp.
Thanks for your interest and provide the detailed infos. I guess a modified 5.14 kernel may be originated from RHEL 9? I have a plan to backport the latest EROFS to CentOS stream 9, but currently I'm busy in internal stuffs, so it's still a bit delayed...
For those familiar with erofs development and history it may look like some patches are missing but they may have already been present in the source tree I'm working with ... so just ask if you spot anything ... Current set of patches I have is (the patch name corresponds to commit title, more or less): + erofs-clear-compacted_2b-if-compacted_4b_initial-gt-totalidx.patch + erofs-add-support-for-the-full-decompressed-length.patch + erofs-add-fiemap-support-with-iomap.patch + erofs-remove-the-mapping-parameter-from-erofs_try_to_free_cached_page.patch + erofs-directly-use-wrapper-erofs_page_is_managed-when-shrinking.patch + erofs-dax-support-for-non-tailpacking-regular-file.patch + erofs-fix-deadlock-when-shrink-erofs-slab.patch + erofs-remove-useless-cache-strategy-of-DELAYEDALLOC.patch + erofs-fix-unsafe-pagevec-reuse-of-hooked-pclusters.patch + erofs-remove-the-fast-path-of-per-CPU-buffer-decompression.patch + erofs-decouple-basic-mount-options-from-fs_context.patch + erofs-add-multiple-device-support.patch + erofs-get-compression-algorithms-directly-on-mapping.patch + erofs-introduce-the-secondary-compression-head.patch + erofs-introduce-readmore-decompression-strategy.patch + erofs-rename-some-generic-methods-in-decompressor.patch + libxz-Avoid-overlapping-memcpy-with-invalid-input-with-in-place-decompression.patch + libxz-Add-MicroLZMA-decoder.patch + erofs-lzma-compression-support.patch + erofs-get-rid-of-lru-usage.patch + erofs-dont-trigger-WARN-when-decompression-fails.patch + erofs-rename-lz4_0pading-to-zero_padding.patch + erofs-add-sysfs-interface.patch + erofs-add-sysfs-node-to-control-sync-decompression-strategy.patch + erofs-Replace-zero-length-array-with-flexible-array-member.patch + erofs-clean-up-erofs_map_blocks-tracepoints.patch + erofs-tidy-up-z_erofs_lz4_decompress.patch + erofs-introduce-z_erofs_fixup_insize.patch + erofs-support-unaligned-data-decompression.patch + erofs-support-inline-data-decompression.patch + erofs-add-on-disk-compressed-tail-packing-inline-support.patch + erofs-introduce-meta-buffer-operations.patch + erofs-use-meta-buffers-for-inode-operations.patch + erofs-use-meta-buffers-for-super-operations.patch + erofs-use-meta-buffers-for-xattr-operations.patch + erofs-use-meta-buffers-for-zmap-operations.patch + erofs-fix-fsdax-partition-offset-handling.patch + erofs-avoid-unnecessary-z_erofs-decompressqueue_work-declaration.patch + erofs-fix-small-compressed-files-inlining.patch + erofs-fix-ztailpacking-on-gt-4GiB-filesystems.patch + erofs-use-meta-buffers-for-erofs_read_superblock.patch + erofs-get-rid-of-struct-z_erofs_collector.patch + erofs-clean-up-preload_compressed_pages.patch + erofs-silence-warnings-related-to-impossible-m_plen.patch + erofs-clean-up-z_erofs_extent_lookback.patch + erofs-refine-managed-inode-stuffs.patch + erofs-add-sanity-check-0for-kobject-in-erofs_unregister_sysfs.patch + erofs-use-meta-buffers-for-reading-directories.patch + erofs-use-meta-buffers-for-inode-lookup.patch + erofs-rename-ctime-to-mtime.patch + erofs-Convert-from-invalidatepage-to-invalidate_folio.patch + erofs-fix-use-after-free-of-on-stack-io.patch + erofs-Convert-erofs-zdata-to-read_folio.patch + erofs-Convert-to-release_folio.patch + erofs-do-not-prompt-for-risk-any-more-when-using-big-pcluster.patch + erofs-remove-obsoleted-comments.patch + erofs-refine-on-disk-definition-comments.patch + erofs-fix-buffer-copy-overflow-of-ztailpacking-feature.patch + erofs-make-filesystem-exportable.patch + erofs-support-idmapped-mounts.patch + cachefiles-document-on-demand-read-mode.patch + erofs-make-erofs_map_blocks-generally-available.patch + erofs-add-fscache-mode-check-helper.patch + erofs-register-fscache-volume.patch + erofs-add-fscache-context-helper-functions.patch + erofs-add-anonymous-inode-caching-metadata-for-data-blobs.patch + erofs-add-erofs_fscache_read_folios-helper.patch + erofs-register-fscache-context-for-primary-data-blob.patch + erofs-register-fscache-context-for-extra-data-blobs.patch + erofs-implement-fscache-based-metadata-read.patch + erofs-implement-fscache-based-data-read-for-non-inline-layout.patch + erofs-implement-fscache-based-data-read-for-inline-layout.patch + erofs-implement-fscache-based-data-readahead.patch + erofs-add-fsid-mount-option.patch + erofs-change-to-use-asynchronous-io-for-fscache-readpage_readahead.patch + erofs-scan-devices-from-device-table.patch + erofs-leave-compressed-inodes-unsupported-in-fscache-mode-for-now.patch + erofs-fix-crash-when-enable-tracepoint-cachefiles_prep_read.patch + erofs-get-rid-of-struct-z_erofs_collection.patch + erofs-get-rid-of-label-restart_now.patch + erofs-simplify-z_erofs_pcluster_readmore.patch + erofs-fix-backmost-member-of-z_erofs_decompress_frontend.patch + erofs-missing-hunks.patch The last patch consists of what looks like a few hunks added by Linus to complete a folio pull request that came in at the same time as the 5.19 erofs merge request. I know the list of patches isn't very useful but it should give some idea of what I have and maybe someone can spot a missing patch or so. Anyway, my failing tests are erofs/021, erofs/022, erofs/024 and fscache/005.
I guess the following failure fails as expected: erofs/021 -- uncompressed sub-page block sizes (esp. 512-byte block sizes, since v6.4) erofs/022 -- long xattr prefix (since v6.4) erofs/024 -- deflate algorithm support (since v6.6) So these failures can be skipped on your side, I think I need to modify these tests for gracefully skipping ... That is also why all testcases are marked as "experimental" :-) I'm not quite sure why "fscache/005" fails, hopefully Jingbo could help you on this. Thanks! Gao Xiang
erofs/018 does not run due to "lzma compression is disabled, skipped." message which I think is too old a version of xz. Any insight into cases that could cause these tests to fail would be much appreciated. Ian