2 # SPDX-License-Identifier: GPL-2.0
5 source devlink_lib_spectrum.sh
9 devlink_sp_read_kvd_defaults
15 devlink_sp_size_kvd_to_default
26 log_info "Running profile tests"
28 for i in $KVD_PROFILES; do
30 devlink_sp_resource_kvd_profile_set $i
31 log_test "'$i' profile"
34 # Default is explicitly tested at end to ensure it's actually applied
36 devlink_sp_resource_kvd_profile_set "default"
37 log_test "'default' profile"
46 log_info "Running KVD-minimum tests"
48 for i in $KVD_CHILDREN; do
50 size=$(devlink_resource_get kvd "$i" | jq '.["size_min"]')
51 devlink_resource_size_set "$size" kvd "$i"
53 # In case of linear, need to minimize sub-resources as well
54 if [[ "$i" == "linear" ]]; then
55 for j in $KVDL_CHILDREN; do
56 devlink_resource_size_set 0 kvd linear "$j"
61 devlink_sp_size_kvd_to_default
62 log_test "'$i' minimize [$size]"
73 log_info "Running KVD-maximum tests"
74 for i in $KVD_CHILDREN; do
76 devlink_sp_resource_minimize
78 # Calculate the maximum possible size for the given partition
79 size=$(devlink_resource_size_get kvd)
80 for j in $KVD_CHILDREN; do
81 if [ "$i" != "$j" ]; then
82 min_size=$(devlink_resource_get kvd "$j" | \
84 size=$((size - min_size))
88 # Test almost maximum size
89 devlink_resource_size_set "$((size - 128))" kvd "$i"
91 log_test "'$i' almost maximize [$((size - 128))]"
93 # Test above maximum size
94 devlink resource set "$DEVLINK_DEV" \
95 path "kvd/$i" size $((size + 128)) &> /dev/null
96 check_fail $? "Set kvd/$i to size $((size + 128)) should fail"
97 log_test "'$i' Overflow rejection [$((size + 128))]"
100 if [ "$i" == "hash_single" ] || [ "$i" == "hash_double" ]; then
101 echo "SKIP: Observed problem with exact max $i"
105 devlink_resource_size_set "$size" kvd "$i"
107 log_test "'$i' maximize [$size]"
109 devlink_sp_size_kvd_to_default