2022-04-22 20:16:55

by Takashi Iwai

[permalink] [raw]
Subject: [PATCH 2/5] selftests: firmware: Use smaller dictionary for XZ compression

The xz -9 option leads to an unnecessarily too large dictionary that
isn't really suitable for the kernel firmware loader. Pass the
dictionary size explicitly, instead.

While we're at it, make the xz command call defined in $RUN_XZ for
simplicity.

Fixes: 108ae07c5036 ("selftests: firmware: Add compressed firmware tests")
Signed-off-by: Takashi Iwai <[email protected]>
---
tools/testing/selftests/firmware/fw_filesystem.sh | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/firmware/fw_filesystem.sh b/tools/testing/selftests/firmware/fw_filesystem.sh
index c2a2a100114b..731f011def78 100755
--- a/tools/testing/selftests/firmware/fw_filesystem.sh
+++ b/tools/testing/selftests/firmware/fw_filesystem.sh
@@ -11,6 +11,8 @@ TEST_REQS_FW_SET_CUSTOM_PATH="yes"
TEST_DIR=$(dirname $0)
source $TEST_DIR/fw_lib.sh

+RUN_XZ="xz -C crc32 --lzma2=dict=2MiB"
+
check_mods
check_setup
verify_reqs
@@ -410,9 +412,9 @@ test_request_firmware_nowait_custom()
RANDOM_FILE_PATH=$(setup_random_file)
RANDOM_FILE="$(basename $RANDOM_FILE_PATH)"
if [ "$2" = "both" ]; then
- xz -9 -C crc32 -k $RANDOM_FILE_PATH
+ $RUN_XZ -k $RANDOM_FILE_PATH
elif [ "$2" = "xzonly" ]; then
- xz -9 -C crc32 $RANDOM_FILE_PATH
+ $RUN_XZ $RANDOM_FILE_PATH
fi
config_set_name $RANDOM_FILE
config_trigger_async
@@ -501,7 +503,7 @@ test_request_partial_firmware_into_buf_nofile 2 10
test "$HAS_FW_LOADER_COMPRESS" != "yes" && exit 0

# test with both files present
-xz -9 -C crc32 -k $FW
+$RUN_XZ -k $FW
config_set_name $NAME
echo
echo "Testing with both plain and xz files present..."
--
2.31.1


2022-04-26 05:50:38

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 2/5] selftests: firmware: Use smaller dictionary for XZ compression

On 4/21/22 9:29 AM, Takashi Iwai wrote:
> The xz -9 option leads to an unnecessarily too large dictionary that
> isn't really suitable for the kernel firmware loader. Pass the
> dictionary size explicitly, instead.
>
> While we're at it, make the xz command call defined in $RUN_XZ for
> simplicity.
>
> Fixes: 108ae07c5036 ("selftests: firmware: Add compressed firmware tests")
> Signed-off-by: Takashi Iwai <[email protected]>
> ---
> tools/testing/selftests/firmware/fw_filesystem.sh | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/firmware/fw_filesystem.sh b/tools/testing/selftests/firmware/fw_filesystem.sh
> index c2a2a100114b..731f011def78 100755
> --- a/tools/testing/selftests/firmware/fw_filesystem.sh
> +++ b/tools/testing/selftests/firmware/fw_filesystem.sh
> @@ -11,6 +11,8 @@ TEST_REQS_FW_SET_CUSTOM_PATH="yes"
> TEST_DIR=$(dirname $0)
> source $TEST_DIR/fw_lib.sh
>
> +RUN_XZ="xz -C crc32 --lzma2=dict=2MiB"
> +
> check_mods
> check_setup
> verify_reqs
> @@ -410,9 +412,9 @@ test_request_firmware_nowait_custom()
> RANDOM_FILE_PATH=$(setup_random_file)
> RANDOM_FILE="$(basename $RANDOM_FILE_PATH)"
> if [ "$2" = "both" ]; then
> - xz -9 -C crc32 -k $RANDOM_FILE_PATH
> + $RUN_XZ -k $RANDOM_FILE_PATH
> elif [ "$2" = "xzonly" ]; then
> - xz -9 -C crc32 $RANDOM_FILE_PATH
> + $RUN_XZ $RANDOM_FILE_PATH
> fi
> config_set_name $RANDOM_FILE
> config_trigger_async
> @@ -501,7 +503,7 @@ test_request_partial_firmware_into_buf_nofile 2 10
> test "$HAS_FW_LOADER_COMPRESS" != "yes" && exit 0
>
> # test with both files present
> -xz -9 -C crc32 -k $FW
> +$RUN_XZ -k $FW
> config_set_name $NAME
> echo
> echo "Testing with both plain and xz files present..."
>

Thank you. Looks good to me.

Reviewed-by: Shuah Khan <[email protected]>

thanks,
-- Shuah