Trying to work with the tests
Ian Kent
raven at themaw.net
Mon Apr 22 23:20:08 AEST 2024
On 22/4/24 19:30, Jingbo Xu wrote:
>
> On 4/22/24 5:12 PM, Gao Xiang wrote:
>> 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.
>>
> "Test if system could recover from previous wrong behaved user daemon."
> from fscache/005 testcase.
>
> I just test fscache/005 on the latest linux master branch and it
> succeeds as expected.
>
> I'm not sure if it is because the code base changes between v5.14 and
> v5.19, since cachefiles/fscache is totally reworked since v5.16.
>
> I see the following patches supporting on demand mode for cachefiles are
> not included in the patch list you gave, but I believe they already
> exist in your source tree, otherwise all fscache related testcases will
> fail.
Yes, it appears a number of cachefiles changes were back ported earlier by
Jeff Layton as part of a RHEL NFS update.
>
> 99302ebd3af7 cachefiles: document on-demand read mode
> 1519670e4fec cachefiles: add tracepoints for on-demand read mode
> 4e4f1788af0e cachefiles: enable on-demand read mode
> 9032b6e8589f cachefiles: implement on-demand read
> 324b954ac80c cachefiles: notify the user daemon when withdrawing cookie
> d11b0b043b40 cachefiles: unbind cachefiles gracefully in on-demand mode
> c8383054506c cachefiles: notify the user daemon when looking up cookie
> a06fac1599c1 cachefiles: extract write routine
I had seen these, which is what lead me to Jeffs' work but I'll check
again, thanks.
>
>
> Anyway is there any hint in the fscache/005.bad?
I am working on getting more info. out of scripts (in an ad-hoc manner)
but it's
proved to be a little difficult so far.
Anyway, thanks for getting back to me on this.
Ian
More information about the Linux-erofs
mailing list