On Fri, Sep 18, 2020 at 10:49:09AM +0200, Bohdan Khomutskyi wrote:
Hello,
While working on the change proposal
https://fedoraproject.org/wiki/Changes/OptimizeSquashFS
I discovered that several kernel configuration options are set sub-optimally
in Fedora. In RHEL 8, the optimal configuration is used.
If we set those options to match RHEL 8, a performance improvement could be
achieved while reading the SquashFS filesystem.
Below you can see an excerpt from the configuration help:
Would you be willing to submit a merge request with these changes for
Fedora? Then we can have a discussion and review.
Cheers,
Don
Set in RHEL 8:
SQUASHFS_FILE_DIRECT
    Directly decompress file data into the page cache.
    Doing so can significantly improve performance because
    it eliminates a memcpy and it also removes the lock contention
    on the single buffer.
SQUASHFS_DECOMP_MULTI_PERCPU
    By default Squashfs uses a single decompressor but it gives
    poor performance on parallel I/O workloads when using multiple CPU
    machines due to waiting on decompressor availability.
    This decompressor implementation uses a maximum of one
    decompressor per core. It uses percpu variables to ensure
    decompression is load-balanced across the cores.
Set in Fedora:
SQUASHFS_DECOMP_SINGLE
    Traditionally Squashfs has used single-threaded decompression.
    Only one block (data or metadata) can be decompressed at any
    one time. This limits CPU and memory usage to a minimum.
SQUASHFS_FILE_CACHE
    Decompress file data into an intermediate buffer and then
    memcopy it into the page cache.
The SquashFS filesystem is used on installation medium. So making the change
I propose should improve the user experience during installation. It should
also improve the user experience while booting from Fedora Live image.
Kind regards,
--
Bohdan Khomutskyi
Software engineer
Red Hat
_______________________________________________
kernel mailing list -- kernel(a)lists.fedoraproject.org
To unsubscribe send an email to kernel-leave(a)lists.fedoraproject.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org