Re: [PATCH 16/34] maple_tree: Make test code work without debug enabled

From: kernel test robot
Date: Tue Apr 25 2023 - 23:24:40 EST


Hi Liam,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on linus/master v6.3 next-20230425]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Liam-R-Howlett/maple_tree-Fix-static-analyser-cppcheck-issue/20230425-233958
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20230425140955.3834476-17-Liam.Howlett%40oracle.com
patch subject: [PATCH 16/34] maple_tree: Make test code work without debug enabled
config: openrisc-randconfig-r015-20230423 (https://download.01.org/0day-ci/archive/20230426/202304261147.XQLxtmwo-lkp@xxxxxxxxx/config)
compiler: or1k-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/a51199306b9f48db55117d3357e7a19c845c089c
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Liam-R-Howlett/maple_tree-Fix-static-analyser-cppcheck-issue/20230425-233958
git checkout a51199306b9f48db55117d3357e7a19c845c089c
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=openrisc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=openrisc SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202304261147.XQLxtmwo-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

lib/test_maple_tree.c: In function 'check_ranges':
>> lib/test_maple_tree.c:1078:9: error: implicit declaration of function 'mt_validate' [-Werror=implicit-function-declaration]
1078 | mt_validate(mt);
| ^~~~~~~~~~~
lib/test_maple_tree.c: In function 'check_dup':
>> lib/test_maple_tree.c:2498:9: error: implicit declaration of function 'mt_cache_shrink' [-Werror=implicit-function-declaration]
2498 | mt_cache_shrink();
| ^~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:30,
from include/linux/maple_tree.h:11,
from lib/test_maple_tree.c:10:
lib/test_maple_tree.c: In function 'maple_tree_seed':
>> lib/test_maple_tree.c:2985:38: error: 'maple_tree_tests_passed' undeclared (first use in this function)
2985 | atomic_read(&maple_tree_tests_passed),
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:427:33: note: in definition of macro 'printk_index_wrap'
427 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/printk.h:528:9: note: in expansion of macro 'printk'
528 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
lib/test_maple_tree.c:2984:9: note: in expansion of macro 'pr_info'
2984 | pr_info("maple_tree: %u of %u tests passed\n",
| ^~~~~~~
lib/test_maple_tree.c:2985:38: note: each undeclared identifier is reported only once for each function it appears in
2985 | atomic_read(&maple_tree_tests_passed),
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:427:33: note: in definition of macro 'printk_index_wrap'
427 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/printk.h:528:9: note: in expansion of macro 'printk'
528 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
lib/test_maple_tree.c:2984:9: note: in expansion of macro 'pr_info'
2984 | pr_info("maple_tree: %u of %u tests passed\n",
| ^~~~~~~
>> lib/test_maple_tree.c:2986:38: error: 'maple_tree_tests_run' undeclared (first use in this function)
2986 | atomic_read(&maple_tree_tests_run));
| ^~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:427:33: note: in definition of macro 'printk_index_wrap'
427 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/printk.h:528:9: note: in expansion of macro 'printk'
528 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
lib/test_maple_tree.c:2984:9: note: in expansion of macro 'pr_info'
2984 | pr_info("maple_tree: %u of %u tests passed\n",
| ^~~~~~~
cc1: some warnings being treated as errors


vim +/mt_validate +1078 lib/test_maple_tree.c

e15e06a8392321 Liam R. Howlett 2022-09-06 947
120b116208a087 Liam Howlett 2022-10-28 948 static noinline void check_ranges(struct maple_tree *mt)
e15e06a8392321 Liam R. Howlett 2022-09-06 949 {
120b116208a087 Liam Howlett 2022-10-28 950 int i, val, val2;
120b116208a087 Liam Howlett 2022-10-28 951 unsigned long r[] = {
120b116208a087 Liam Howlett 2022-10-28 952 10, 15,
120b116208a087 Liam Howlett 2022-10-28 953 20, 25,
120b116208a087 Liam Howlett 2022-10-28 954 17, 22, /* Overlaps previous range. */
120b116208a087 Liam Howlett 2022-10-28 955 9, 1000, /* Huge. */
120b116208a087 Liam Howlett 2022-10-28 956 100, 200,
120b116208a087 Liam Howlett 2022-10-28 957 45, 168,
120b116208a087 Liam Howlett 2022-10-28 958 118, 128,
e15e06a8392321 Liam R. Howlett 2022-09-06 959 };
e15e06a8392321 Liam R. Howlett 2022-09-06 960
120b116208a087 Liam Howlett 2022-10-28 961 MT_BUG_ON(mt, !mtree_empty(mt));
120b116208a087 Liam Howlett 2022-10-28 962 check_insert_range(mt, r[0], r[1], xa_mk_value(r[0]), 0);
120b116208a087 Liam Howlett 2022-10-28 963 check_insert_range(mt, r[2], r[3], xa_mk_value(r[2]), 0);
120b116208a087 Liam Howlett 2022-10-28 964 check_insert_range(mt, r[4], r[5], xa_mk_value(r[4]), -EEXIST);
120b116208a087 Liam Howlett 2022-10-28 965 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 966 /* Store */
120b116208a087 Liam Howlett 2022-10-28 967 check_store_range(mt, r[4], r[5], xa_mk_value(r[4]), 0);
120b116208a087 Liam Howlett 2022-10-28 968 check_store_range(mt, r[6], r[7], xa_mk_value(r[6]), 0);
120b116208a087 Liam Howlett 2022-10-28 969 check_store_range(mt, r[8], r[9], xa_mk_value(r[8]), 0);
120b116208a087 Liam Howlett 2022-10-28 970 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 971 mtree_destroy(mt);
120b116208a087 Liam Howlett 2022-10-28 972 MT_BUG_ON(mt, mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 973
120b116208a087 Liam Howlett 2022-10-28 974 check_seq(mt, 50, false);
120b116208a087 Liam Howlett 2022-10-28 975 mt_set_non_kernel(4);
120b116208a087 Liam Howlett 2022-10-28 976 check_store_range(mt, 5, 47, xa_mk_value(47), 0);
120b116208a087 Liam Howlett 2022-10-28 977 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 978 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 979
120b116208a087 Liam Howlett 2022-10-28 980 /* Create tree of 1-100 */
120b116208a087 Liam Howlett 2022-10-28 981 check_seq(mt, 100, false);
120b116208a087 Liam Howlett 2022-10-28 982 /* Store 45-168 */
120b116208a087 Liam Howlett 2022-10-28 983 mt_set_non_kernel(10);
120b116208a087 Liam Howlett 2022-10-28 984 check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0);
120b116208a087 Liam Howlett 2022-10-28 985 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 986 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 987
120b116208a087 Liam Howlett 2022-10-28 988 /* Create tree of 1-200 */
120b116208a087 Liam Howlett 2022-10-28 989 check_seq(mt, 200, false);
120b116208a087 Liam Howlett 2022-10-28 990 /* Store 45-168 */
120b116208a087 Liam Howlett 2022-10-28 991 check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0);
120b116208a087 Liam Howlett 2022-10-28 992 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 993 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 994
120b116208a087 Liam Howlett 2022-10-28 995 check_seq(mt, 30, false);
120b116208a087 Liam Howlett 2022-10-28 996 check_store_range(mt, 6, 18, xa_mk_value(6), 0);
120b116208a087 Liam Howlett 2022-10-28 997 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 998 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 999
120b116208a087 Liam Howlett 2022-10-28 1000 /* Overwrite across multiple levels. */
120b116208a087 Liam Howlett 2022-10-28 1001 /* Create tree of 1-400 */
120b116208a087 Liam Howlett 2022-10-28 1002 check_seq(mt, 400, false);
120b116208a087 Liam Howlett 2022-10-28 1003 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1004 /* Store 118-128 */
120b116208a087 Liam Howlett 2022-10-28 1005 check_store_range(mt, r[12], r[13], xa_mk_value(r[12]), 0);
120b116208a087 Liam Howlett 2022-10-28 1006 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1007 mtree_test_erase(mt, 140);
120b116208a087 Liam Howlett 2022-10-28 1008 mtree_test_erase(mt, 141);
120b116208a087 Liam Howlett 2022-10-28 1009 mtree_test_erase(mt, 142);
120b116208a087 Liam Howlett 2022-10-28 1010 mtree_test_erase(mt, 143);
120b116208a087 Liam Howlett 2022-10-28 1011 mtree_test_erase(mt, 130);
120b116208a087 Liam Howlett 2022-10-28 1012 mtree_test_erase(mt, 131);
120b116208a087 Liam Howlett 2022-10-28 1013 mtree_test_erase(mt, 132);
120b116208a087 Liam Howlett 2022-10-28 1014 mtree_test_erase(mt, 133);
120b116208a087 Liam Howlett 2022-10-28 1015 mtree_test_erase(mt, 134);
120b116208a087 Liam Howlett 2022-10-28 1016 mtree_test_erase(mt, 135);
120b116208a087 Liam Howlett 2022-10-28 1017 check_load(mt, r[12], xa_mk_value(r[12]));
120b116208a087 Liam Howlett 2022-10-28 1018 check_load(mt, r[13], xa_mk_value(r[12]));
120b116208a087 Liam Howlett 2022-10-28 1019 check_load(mt, r[13] - 1, xa_mk_value(r[12]));
120b116208a087 Liam Howlett 2022-10-28 1020 check_load(mt, r[13] + 1, xa_mk_value(r[13] + 1));
120b116208a087 Liam Howlett 2022-10-28 1021 check_load(mt, 135, NULL);
120b116208a087 Liam Howlett 2022-10-28 1022 check_load(mt, 140, NULL);
120b116208a087 Liam Howlett 2022-10-28 1023 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 1024 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 1025 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1026
e15e06a8392321 Liam R. Howlett 2022-09-06 1027
e15e06a8392321 Liam R. Howlett 2022-09-06 1028
120b116208a087 Liam Howlett 2022-10-28 1029 /* Overwrite multiple levels at the end of the tree (slot 7) */
120b116208a087 Liam Howlett 2022-10-28 1030 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1031 check_seq(mt, 400, false);
120b116208a087 Liam Howlett 2022-10-28 1032 check_store_range(mt, 353, 361, xa_mk_value(353), 0);
120b116208a087 Liam Howlett 2022-10-28 1033 check_store_range(mt, 347, 352, xa_mk_value(347), 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1034
120b116208a087 Liam Howlett 2022-10-28 1035 check_load(mt, 346, xa_mk_value(346));
120b116208a087 Liam Howlett 2022-10-28 1036 for (i = 347; i <= 352; i++)
120b116208a087 Liam Howlett 2022-10-28 1037 check_load(mt, i, xa_mk_value(347));
120b116208a087 Liam Howlett 2022-10-28 1038 for (i = 353; i <= 361; i++)
120b116208a087 Liam Howlett 2022-10-28 1039 check_load(mt, i, xa_mk_value(353));
120b116208a087 Liam Howlett 2022-10-28 1040 check_load(mt, 362, xa_mk_value(362));
120b116208a087 Liam Howlett 2022-10-28 1041 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 1042 MT_BUG_ON(mt, !mt_height(mt));
120b116208a087 Liam Howlett 2022-10-28 1043 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1044
120b116208a087 Liam Howlett 2022-10-28 1045 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1046 check_seq(mt, 400, false);
120b116208a087 Liam Howlett 2022-10-28 1047 check_store_range(mt, 352, 364, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1048 check_store_range(mt, 351, 363, xa_mk_value(352), 0);
120b116208a087 Liam Howlett 2022-10-28 1049 check_load(mt, 350, xa_mk_value(350));
120b116208a087 Liam Howlett 2022-10-28 1050 check_load(mt, 351, xa_mk_value(352));
120b116208a087 Liam Howlett 2022-10-28 1051 for (i = 352; i <= 363; i++)
120b116208a087 Liam Howlett 2022-10-28 1052 check_load(mt, i, xa_mk_value(352));
120b116208a087 Liam Howlett 2022-10-28 1053 check_load(mt, 364, NULL);
120b116208a087 Liam Howlett 2022-10-28 1054 check_load(mt, 365, xa_mk_value(365));
e15e06a8392321 Liam R. Howlett 2022-09-06 1055 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 1056 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1057 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1058
120b116208a087 Liam Howlett 2022-10-28 1059 mt_set_non_kernel(5);
120b116208a087 Liam Howlett 2022-10-28 1060 check_seq(mt, 400, false);
120b116208a087 Liam Howlett 2022-10-28 1061 check_store_range(mt, 352, 364, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1062 check_store_range(mt, 351, 364, xa_mk_value(352), 0);
120b116208a087 Liam Howlett 2022-10-28 1063 check_load(mt, 350, xa_mk_value(350));
120b116208a087 Liam Howlett 2022-10-28 1064 check_load(mt, 351, xa_mk_value(352));
120b116208a087 Liam Howlett 2022-10-28 1065 for (i = 352; i <= 364; i++)
120b116208a087 Liam Howlett 2022-10-28 1066 check_load(mt, i, xa_mk_value(352));
120b116208a087 Liam Howlett 2022-10-28 1067 check_load(mt, 365, xa_mk_value(365));
120b116208a087 Liam Howlett 2022-10-28 1068 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 1069 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1070 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1071
120b116208a087 Liam Howlett 2022-10-28 1072
120b116208a087 Liam Howlett 2022-10-28 1073 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1074 check_seq(mt, 400, false);
120b116208a087 Liam Howlett 2022-10-28 1075 check_store_range(mt, 362, 367, xa_mk_value(362), 0);
120b116208a087 Liam Howlett 2022-10-28 1076 check_store_range(mt, 353, 361, xa_mk_value(353), 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1077 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 @1078 mt_validate(mt);
120b116208a087 Liam Howlett 2022-10-28 1079 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1080 mtree_destroy(mt);
120b116208a087 Liam Howlett 2022-10-28 1081 /*
120b116208a087 Liam Howlett 2022-10-28 1082 * Interesting cases:
120b116208a087 Liam Howlett 2022-10-28 1083 * 1. Overwrite the end of a node and end in the first entry of the next
120b116208a087 Liam Howlett 2022-10-28 1084 * node.
120b116208a087 Liam Howlett 2022-10-28 1085 * 2. Split a single range
120b116208a087 Liam Howlett 2022-10-28 1086 * 3. Overwrite the start of a range
120b116208a087 Liam Howlett 2022-10-28 1087 * 4. Overwrite the end of a range
120b116208a087 Liam Howlett 2022-10-28 1088 * 5. Overwrite the entire range
120b116208a087 Liam Howlett 2022-10-28 1089 * 6. Overwrite a range that causes multiple parent nodes to be
120b116208a087 Liam Howlett 2022-10-28 1090 * combined
120b116208a087 Liam Howlett 2022-10-28 1091 * 7. Overwrite a range that causes multiple parent nodes and part of
120b116208a087 Liam Howlett 2022-10-28 1092 * root to be combined
120b116208a087 Liam Howlett 2022-10-28 1093 * 8. Overwrite the whole tree
120b116208a087 Liam Howlett 2022-10-28 1094 * 9. Try to overwrite the zero entry of an alloc tree.
120b116208a087 Liam Howlett 2022-10-28 1095 * 10. Write a range larger than a nodes current pivot
120b116208a087 Liam Howlett 2022-10-28 1096 */
e15e06a8392321 Liam R. Howlett 2022-09-06 1097
120b116208a087 Liam Howlett 2022-10-28 1098 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1099 for (i = 0; i <= 500; i++) {
120b116208a087 Liam Howlett 2022-10-28 1100 val = i*5;
120b116208a087 Liam Howlett 2022-10-28 1101 val2 = (i+1)*5;
120b116208a087 Liam Howlett 2022-10-28 1102 check_store_range(mt, val, val2, xa_mk_value(val), 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1103 }
120b116208a087 Liam Howlett 2022-10-28 1104 check_store_range(mt, 2400, 2400, xa_mk_value(2400), 0);
120b116208a087 Liam Howlett 2022-10-28 1105 check_store_range(mt, 2411, 2411, xa_mk_value(2411), 0);
120b116208a087 Liam Howlett 2022-10-28 1106 check_store_range(mt, 2412, 2412, xa_mk_value(2412), 0);
120b116208a087 Liam Howlett 2022-10-28 1107 check_store_range(mt, 2396, 2400, xa_mk_value(4052020), 0);
120b116208a087 Liam Howlett 2022-10-28 1108 check_store_range(mt, 2402, 2402, xa_mk_value(2402), 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1109 mtree_destroy(mt);
120b116208a087 Liam Howlett 2022-10-28 1110 mt_set_non_kernel(0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1111
120b116208a087 Liam Howlett 2022-10-28 1112 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1113 for (i = 0; i <= 500; i++) {
120b116208a087 Liam Howlett 2022-10-28 1114 val = i*5;
120b116208a087 Liam Howlett 2022-10-28 1115 val2 = (i+1)*5;
120b116208a087 Liam Howlett 2022-10-28 1116 check_store_range(mt, val, val2, xa_mk_value(val), 0);
120b116208a087 Liam Howlett 2022-10-28 1117 }
120b116208a087 Liam Howlett 2022-10-28 1118 check_store_range(mt, 2422, 2422, xa_mk_value(2422), 0);
120b116208a087 Liam Howlett 2022-10-28 1119 check_store_range(mt, 2424, 2424, xa_mk_value(2424), 0);
120b116208a087 Liam Howlett 2022-10-28 1120 check_store_range(mt, 2425, 2425, xa_mk_value(2), 0);
120b116208a087 Liam Howlett 2022-10-28 1121 check_store_range(mt, 2460, 2470, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1122 check_store_range(mt, 2435, 2460, xa_mk_value(2435), 0);
120b116208a087 Liam Howlett 2022-10-28 1123 check_store_range(mt, 2461, 2470, xa_mk_value(2461), 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1124 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 1125 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1126 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1127
120b116208a087 Liam Howlett 2022-10-28 1128 /* Test rebalance gaps */
e15e06a8392321 Liam R. Howlett 2022-09-06 1129 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
120b116208a087 Liam Howlett 2022-10-28 1130 mt_set_non_kernel(50);
120b116208a087 Liam Howlett 2022-10-28 1131 for (i = 0; i <= 50; i++) {
120b116208a087 Liam Howlett 2022-10-28 1132 val = i*10;
120b116208a087 Liam Howlett 2022-10-28 1133 val2 = (i+1)*10;
120b116208a087 Liam Howlett 2022-10-28 1134 check_store_range(mt, val, val2, xa_mk_value(val), 0);
120b116208a087 Liam Howlett 2022-10-28 1135 }
120b116208a087 Liam Howlett 2022-10-28 1136 check_store_range(mt, 161, 161, xa_mk_value(161), 0);
120b116208a087 Liam Howlett 2022-10-28 1137 check_store_range(mt, 162, 162, xa_mk_value(162), 0);
120b116208a087 Liam Howlett 2022-10-28 1138 check_store_range(mt, 163, 163, xa_mk_value(163), 0);
120b116208a087 Liam Howlett 2022-10-28 1139 check_store_range(mt, 240, 249, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1140 mtree_erase(mt, 200);
120b116208a087 Liam Howlett 2022-10-28 1141 mtree_erase(mt, 210);
120b116208a087 Liam Howlett 2022-10-28 1142 mtree_erase(mt, 220);
120b116208a087 Liam Howlett 2022-10-28 1143 mtree_erase(mt, 230);
120b116208a087 Liam Howlett 2022-10-28 1144 mt_set_non_kernel(0);
120b116208a087 Liam Howlett 2022-10-28 1145 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1146 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1147
e15e06a8392321 Liam R. Howlett 2022-09-06 1148 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
120b116208a087 Liam Howlett 2022-10-28 1149 for (i = 0; i <= 500; i++) {
120b116208a087 Liam Howlett 2022-10-28 1150 val = i*10;
120b116208a087 Liam Howlett 2022-10-28 1151 val2 = (i+1)*10;
120b116208a087 Liam Howlett 2022-10-28 1152 check_store_range(mt, val, val2, xa_mk_value(val), 0);
120b116208a087 Liam Howlett 2022-10-28 1153 }
120b116208a087 Liam Howlett 2022-10-28 1154 check_store_range(mt, 4600, 4959, xa_mk_value(1), 0);
120b116208a087 Liam Howlett 2022-10-28 1155 mt_validate(mt);
120b116208a087 Liam Howlett 2022-10-28 1156 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1157 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1158
e15e06a8392321 Liam R. Howlett 2022-09-06 1159 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
120b116208a087 Liam Howlett 2022-10-28 1160 for (i = 0; i <= 500; i++) {
120b116208a087 Liam Howlett 2022-10-28 1161 val = i*10;
120b116208a087 Liam Howlett 2022-10-28 1162 val2 = (i+1)*10;
120b116208a087 Liam Howlett 2022-10-28 1163 check_store_range(mt, val, val2, xa_mk_value(val), 0);
120b116208a087 Liam Howlett 2022-10-28 1164 }
120b116208a087 Liam Howlett 2022-10-28 1165 check_store_range(mt, 4811, 4811, xa_mk_value(4811), 0);
120b116208a087 Liam Howlett 2022-10-28 1166 check_store_range(mt, 4812, 4812, xa_mk_value(4812), 0);
120b116208a087 Liam Howlett 2022-10-28 1167 check_store_range(mt, 4861, 4861, xa_mk_value(4861), 0);
120b116208a087 Liam Howlett 2022-10-28 1168 check_store_range(mt, 4862, 4862, xa_mk_value(4862), 0);
120b116208a087 Liam Howlett 2022-10-28 1169 check_store_range(mt, 4842, 4849, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1170 mt_validate(mt);
120b116208a087 Liam Howlett 2022-10-28 1171 MT_BUG_ON(mt, !mt_height(mt));
e15e06a8392321 Liam R. Howlett 2022-09-06 1172 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1173
e15e06a8392321 Liam R. Howlett 2022-09-06 1174 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
120b116208a087 Liam Howlett 2022-10-28 1175 for (i = 0; i <= 1300; i++) {
120b116208a087 Liam Howlett 2022-10-28 1176 val = i*10;
120b116208a087 Liam Howlett 2022-10-28 1177 val2 = (i+1)*10;
120b116208a087 Liam Howlett 2022-10-28 1178 check_store_range(mt, val, val2, xa_mk_value(val), 0);
120b116208a087 Liam Howlett 2022-10-28 1179 MT_BUG_ON(mt, mt_height(mt) >= 4);
120b116208a087 Liam Howlett 2022-10-28 1180 }
120b116208a087 Liam Howlett 2022-10-28 1181 /* Cause a 3 child split all the way up the tree. */
120b116208a087 Liam Howlett 2022-10-28 1182 for (i = 5; i < 215; i += 10)
120b116208a087 Liam Howlett 2022-10-28 1183 check_store_range(mt, 11450 + i, 11450 + i + 1, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1184 for (i = 5; i < 65; i += 10)
120b116208a087 Liam Howlett 2022-10-28 1185 check_store_range(mt, 11770 + i, 11770 + i + 1, NULL, 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1186
120b116208a087 Liam Howlett 2022-10-28 1187 MT_BUG_ON(mt, mt_height(mt) >= 4);
120b116208a087 Liam Howlett 2022-10-28 1188 for (i = 5; i < 45; i += 10)
120b116208a087 Liam Howlett 2022-10-28 1189 check_store_range(mt, 11700 + i, 11700 + i + 1, NULL, 0);
120b116208a087 Liam Howlett 2022-10-28 1190 if (!MAPLE_32BIT)
120b116208a087 Liam Howlett 2022-10-28 1191 MT_BUG_ON(mt, mt_height(mt) < 4);
e15e06a8392321 Liam R. Howlett 2022-09-06 1192 mtree_destroy(mt);
e15e06a8392321 Liam R. Howlett 2022-09-06 1193
e15e06a8392321 Liam R. Howlett 2022-09-06 1194
e15e06a8392321 Liam R. Howlett 2022-09-06 1195 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
120b116208a087 Liam Howlett 2022-10-28 1196 for (i = 0; i <= 1200; i++) {
120b116208a087 Liam Howlett 2022-10-28 1197 val = i*10;
120b116208a087 Liam Howlett 2022-10-28 1198 val2 = (i+1)*10;
120b116208a087 Liam Howlett 2022-10-28 1199 check_store_range(mt, val, val2, xa_mk_value(val), 0);
120b116208a087 Liam Howlett 2022-10-28 1200 MT_BUG_ON(mt, mt_height(mt) >= 4);
e15e06a8392321 Liam R. Howlett 2022-09-06 1201 }
120b116208a087 Liam Howlett 2022-10-28 1202 /* Fill parents and leaves before split. */
120b116208a087 Liam Howlett 2022-10-28 1203 for (i = 5; i < 455; i += 10)
120b116208a087 Liam Howlett 2022-10-28 1204 check_store_range(mt, 7800 + i, 7800 + i + 1, NULL, 0);
e15e06a8392321 Liam R. Howlett 2022-09-06 1205
120b116208a087 Liam Howlett 2022-10-28 1206 for (i = 1; i < 16; i++)
120b116208a087 Liam Howlett 2022-10-28 1207 check_store_range(mt, 8185 + i, 8185 + i + 1,
120b116208a087 Liam Howlett 2022-10-28 1208 xa_mk_value(8185+i), 0);
120b116208a087 Liam Howlett 2022-10-28 1209 MT_BUG_ON(mt, mt_height(mt) >= 4);
120b116208a087 Liam Howlett 2022-10-28 1210 /* triple split across multiple levels. */
120b116208a087 Liam Howlett 2022-10-28 1211 check_store_range(mt, 8184, 8184, xa_mk_value(8184), 0);
120b116208a087 Liam Howlett 2022-10-28 1212 if (!MAPLE_32BIT)
120b116208a087 Liam Howlett 2022-10-28 1213 MT_BUG_ON(mt, mt_height(mt) != 4);
e15e06a8392321 Liam R. Howlett 2022-09-06 1214 }
e15e06a8392321 Liam R. Howlett 2022-09-06 1215

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests