Skip to content

icp_blake3_impl tunable broken #13647

@ghost

Description

System information

Type Version/Name
Distribution Name any
Distribution Version any
Kernel Version any
Architecture any
OpenZFS Version master @ 1d3ba0b

Describe the problem you're observing

The icp_blake3_impl module parameter is updated incorrectly at run time, so only "cycle" and "fastest" will reflect being selected.

Having looked at the code (I am in the process of exposing this tunable for FreeBSD), it seems the parameter will only be displayed correctly if it is set at module load time rather than at run time. There is some overly-complicated looking IMPL_PARAM/IMPL_USER distinction that is to blame. It should probably work a lot more like in zfs_fletcher_4_impl in module/zcommon/zfs_fletcher.c.

Describe how to reproduce the problem

# cat /sys/module/zfs/parameters/icp_blake3_impl
cycle [fastest] generic sse2 sse41 %
# echo sse41 > /sys/module/zfs/parameters/icp_blake3_impl
# cat /sys/module/zfs/parameters/icp_blake3_impl
cycle fastest generic sse2 sse41 %
# echo fastest > /sys/module/zfs/parameters/icp_blake3_impl
# cat /sys/module/zfs/parameters/icp_blake3_impl
cycle [fastest] generic sse2 sse41 %

Include any warning/errors/backtraces from the system logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: DefectIncorrect behavior (e.g. crash, hang)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions